目录:
@Data
@component
@Data注解
@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;
引入lombok:要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。
引入lombok步骤如下:
在maven中添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
在编译器中添加插件
使用方式:
直接在相应的实体类上加上@Data注解即可;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private String address;
private Integer age;
private String hobbit;
private String phone;
}
与Lombok相关的注解:
@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造
@Setter : 注在属性上,提供 set 方法
@Getter : 注在属性上,提供 get 方法
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
@component
有接口有实现类就加在实现类上。
它的作用就是实现bean的注入,交给spring容器管理,在别的地方要使用的时候Autowired一下就可以。
把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
衍生出来的注解:
@Controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层@Service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
与之关联的注解
@Autowired:自动根据类型注入
@Qualifier(“名称”):指定自动注入的id名称
@Resource(“名称”)
@ PostConstruct 自定义初始化
@ PreDestroy 自定义销毁
@Slf4j
这个@Sl4j注解一般是写在serviceImpl层的,一般日志都关注于业务代码的问题。
与lombok插件相关的注解。(即要安装Lombok插件)
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;
类上面添加@Sl4j注解,然后使用log打印日志;
举例:
log.info("#RabbitBrokerImpl.sendKernel# send to rabbitmq, messageId: {}", message.getMessageId());