## lombok第一个环境
### 1.引入依赖
```xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
```
### 2.使用提供注解
```java
@Data
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
@Data注解: 自动给对象提供 GET SET ToString hashCode equals 等方法
```
----
### 1.@Data注解
- @Data 用在类上
- 用来生成对象中GET SET ToString HashCode equals等相关方法
- 具体用法
```java
@Data
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
```
### 2.@Getter and @Setter
- 用在类上
- 用来只生成对应GET SET方法
- 具体用法
```java
@Getter
@Setter
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
```
### 3.@ToString
- 用在类上
- 用来生成toString方法
### 4.@AllArgsConstructor And @NoArgsConstructor
- 用在类上
- 用来生成全部参数构造方法 和 无参数构造方法
- 具体用法
```java
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
```
### 5.@Accessors
- 用在类上
- 用来给类中set方法开启链式调用 chain属性: 用来指定是否开启SET方法链式调用 true 开启 false 不开启
- 具体用法
```java
@Data
@Accessors(chain = true)
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
user.setId("21").setName("xiaochen").setAge(23).setBir(new Date());
```
### 6.@Slf4j
- 用在类上
- 用来快速给类中定义一个日志变量
- 原理
- 在对应类上加入这个注解相当于在这个类中声明了一个日志对象
```java
private Logger log = LoggerFactory.getLogger(this.getClass());
```
- 具体用法
```java
@Controller
@RequestMapping("user")
@Slf4j
public class UserController {
@RequestMapping("findAll")
public String findAll(){
log.info("进入findAll方法");
log.info("姓名:[{}],年龄:[{}]",name,age);
return "index";
}
}
```
---
## idea中如何安装lombok
**注意:默认在idea中不支持lombok语法,写上之后没有任何效果,需要在idea中额外安装插件才可以继续使用lombok**
Preferences | Plugins --> 搜索lombok 下载安装 安装完成重启idea即可
![image-20200617170840697](Lombok工具使用.assets/image-20200617170840697.png)
**安装完成之后出现如下问题的解决方案:**
![image-20200617171018512](Lombok工具使用.assets/image-20200617171018512.png)
- 解决方案:
![image-20200617171215540](Lombok工具使用.assets/image-20200617171215540.png)
---