文章目录
- 3、@Getter/@Setter
- 4、@ToString
- 5、@RequiredArgsConstructor
- 6、@NonNull
- 7、@Value
- 8、@AllArgsConstructor
- 9、@NoArgsConstructor
一、如何添加Lombok?
1、引入包
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency>
2、IDEA添加Lombok
点击File-- Settings设置界面,然后在左侧找到Plugins, 在右侧找到Lombok点击安装即可。
二、Lombok注解
1、@Slf4j
作用:@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解。可以在项目的配置文件中配置日志输出的地址,一般会用在接口层和关键的业务层。在正常的日志输出会写一行长的代码,如下所示:
private final Logger logger = LoggerFactory.getLogger(当前类名.class);
为了节省代码,我们可以用@Slf4j
来代替这一行代码。
应用代码:
@Slf4j public class BookController { log.info("这是日志输出"); }
2、@Data
作用: 主要用于实体类上,是以下注解的集合:@ToString
、 @EqualsAndHashCode
、@Getter
、@Setter
、 @RequiredArgsConstructor
应用代码:
@Data public class Book { private String userName; private String passWord; }
3、@Getter/@Setter
作用: 作用类上,生成所有成员变量的getter/setter
方法;作用于成员变量上,生成该成员变量的getter/setter
方法。可以设定访问权限及是否懒加载等。
应用代码:
@Getter @Setter public class Book { String title; String author; }
相当于:
public class Book { String title; String author; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
4、@ToString
作用: 作用于类,覆盖默认的toString()
方法,默认情况下,将打印所有非静态字段。如果要跳过某些字段,可以用注释这些字段@ToString.Exclude
。另外,可以使用精确指定要被toString方法包含的字段,先设置@ToString(onlyExplicitlyIncluded = true)
,然后使用@ToString.Include
标记每个要包含的字段。
应用代码:
@Getter @Setter @ToString public class Student { private String name; private int age; }
5、@RequiredArgsConstructor
作用: 在我们写controller或者Service层的时候,需要注入很多的mapper接口或者另外的service接口,这时候就会写很多的@AutoWired
注解,代码看起来很乱,所以使用@RequiredArgsConstructor(onConstructor =@_(@Autowired))
,写在类上可以代替@AutoWired
注解,需要注意的是在注入时需要用final定义,或者使用@notnull
注解。
应用代码:
@RequiredArgsConstructor public class User { private final String userName; @NonNull private String passWord; }
6、@NonNull
作用: 主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
应用代码:
@Data public class User { private final String userName; @NonNull private String passWord; }
7、@Value
作用:@Value
的作用是通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值。
应用代码:
@Value("normal") private String normal; // 注入普通字符串
8、@AllArgsConstructor
作用: 生成全参构造器
应用代码:
@Data //生成getter,setter等函数 @AllArgsConstructor //生成全参数构造函数 public class Book { String name; String age; }
9、@NoArgsConstructor
作用: 生成无参构造函数
应用代码:
@Data //生成getter,setter等函数 @NoArgsConstructor//生成无参构造函数 public class Book { String name; String age; }
以上只是对Lombok部分注解做了简单的解释和应用,具体实践操作还是要根据项目的需要去应用,去看源码研究原理。
上一篇:Java开发核心注解总结(一)
下一篇:Mybatis核心注解总结(三)
有什么问题欢迎和我交流。或者关注我的微信公众号码上言
获得更多的学习。