我@Data在POJO类中使用了注释,但是没有生成getter和setter.我使用的IDE是sts(Spring Tool Suite)
//User POJO Class
import lombok.Data;
@Data
public class UserVo {
private String name;
private String userName;
private String email;
private String mobile;
private String password;
}
Run Code Online (Sandbox Code Playgroud)
<!-- pom.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.aptitest</groupId>
<artifactId>wt-online-test-backend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>wt-online-test-backend</name>
<description>Online Aptitude Test</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.9.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
这里的问题可能与您检查是否实际生成了getter/setter的能力有关.
如果您的IDE告诉您没有生成getter/setter - IDE可能是错误的.它可能不会选择生成的getter/setter; 对于您的IDE - 确保您有相关的插件.当你提到STS时,这很可能是你的问题.尝试与您的案例相关的链接之一:
使用独立于IDE的Maven构建来确保Lombok生成它应该的内容.
小智 6
对于Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)
对于Gradle:
developmentOnly 'org.springframework.boot:spring-boot-devtools'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
Run Code Online (Sandbox Code Playgroud)
Lombok是一个注释处理器 - 它可以完全访问生成的源代码树。注释处理器通常会生成新的源文件,而 Lombok 通过添加新的字段或方法来修改现有的源文件。
Lombok 提供了很多注解。(见完整列表)
回答这个问题:Lombok 注释不会在开发时生成代码。它仅在 Java 编译器生成抽象源树时发生。所以不要指望每次添加注释时代码都会神奇地改变。
但是,您需要在您的特定 IDE 中解决它们,以便正确添加所有依赖项和导入。下面给出了在首选 IDE 中解析 Lombok 注释的方法。您还可以选择 Maven 项目并解决这些问题(Project Lombok Maven 存储库)。
智能理念
1) 开启注解处理
文件 -> 设置 -> 构建、执行、部署 -> 编译器 -> 注释处理器 ->(根据下图勾选复选框)
2) 安装/更新 Lombok 插件(见这个)
文件 -> 设置 -> 插件 -> 搜索 Lombok 插件 -> 更新或安装
蚀
按照此链接中的这些步骤操作。
| 归档时间: |
|
| 查看次数: |
56573 次 |
| 最近记录: |