Java 如何在Spring引导应用程序中使用lombok.Data注释?
我在POJO类中使用了Java 如何在Spring引导应用程序中使用lombok.Data注释?,java,spring-boot,Java,Spring Boot,我在POJO类中使用了@Data注释,但是没有生成getter和setter。 我使用的IDE是sts(Spring工具套件) //用户POJO类 导入龙目数据; @资料 公共类UserVo{ 私有字符串名称; 私有字符串用户名; 私人字符串电子邮件; 私有字符串移动; 私有字符串密码; } 4.0.0 com.aptitest wt在线测试后端 0.0.1-快照 罐子 wt在线测试后端 在线能力倾向测试 org.springframework.boot spring启动程序父级 1.3.2
@Data
注释,但是没有生成getter和setter。
我使用的IDE是sts(Spring工具套件)
//用户POJO类
导入龙目数据;
@资料
公共类UserVo{
私有字符串名称;
私有字符串用户名;
私人字符串电子邮件;
私有字符串移动;
私有字符串密码;
}
4.0.0
com.aptitest
wt在线测试后端
0.0.1-快照
罐子
wt在线测试后端
在线能力倾向测试
org.springframework.boot
spring启动程序父级
1.3.2.1发布
UTF-8
1.8
org.springframework.data
spring数据jpa
1.9.2.1发布
org.springframework.boot
spring启动程序数据mongodb
org.projectlombok
龙目
1.16.6
org.springframework.boot
春季启动邮件
org.springframework.session
春季会议
org.springframework.boot
弹簧启动启动器验证
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧起动试验
测试
org.springframework.restdocs
SpringRestMVC
测试
org.springframework.boot
springbootmaven插件
您还必须将lombok aus作为代理添加到IDE中。有关详细信息,请参见。有关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>
当在
pom.xml
中使用Lombok时,您需要向类中添加@Setter
和@Getter
注释,或者使用@Data
,其中既包括,首先,您不需要添加@Setter和@Getter@数据包括这两项。其次,您需要将lombok插件添加到您的IDE中(搜索用于STS的lombok插件或启用用于STS的注释处理器)。当您这样做时,您实际上看不到在IDE中生成的getter和setter。这将帮助您解决IDE中的编译时错误。仅此而已。使用Springboot+Lombok研究此示例项目。此类使用@数据: 如果您的IDE有错误,您需要一个插件: “Eclipse和变体将lombok.jar作为java应用程序运行(即通常双击它)以进行安装。还要将lombok.jar添加到您的项目中。支持的变体:Springsource工具套件、JBoss Developer Studio
由Michael Plushnikov开发的IDEA IntelliJ插件增加了对大多数功能的支持。”Spring工具套件IDE基于eclipse 从Lombok官方文件: Eclipse和变体—将lombok.jar作为java应用程序运行(即通常双击它)以进行安装。还要将lombok.jar添加到项目中。支持的变体:Springsource工具套件、JBoss Developer Studio 如果仍然不起作用,此堆栈溢出讨论可能会帮助您:
这里的问题可能与您检查是否实际生成了getter/setter的能力有关
在我的例子中,生成的类在我的实体类上有lombok生成的getter/setter。但我的实体中的所有字段都绑定了空值,除了@Id field。我用的是gradle而不是maven 解决这个问题的方法是在IntellijIDE中安装Lombok插件,并为IDE/项目启用注释处理
在那之后,我可以坚持我的实体只是罚款 Lombok是一个注释处理器-它可以完全访问生成的源代码树。注释处理器通常生成新的源文件,而Lombok通过添加新字段或方法来修改现有的源文件 Lombok提供了很多注释。(见附件) 回答这个问题:Lombok注释不会在开发时生成代码。只有当Java编译器生成抽象源代码树时,才会发生这种情况。因此,不要期望在添加注释时代码会神奇地改变 但是,您需要在特定的IDE中解析它们,以便正确添加所有依赖项和导入。下面给出了在首选IDE中解析Lombok注释的方法。您还可以进行Maven项目并解决这些问题() IntelliJ Idea 1) 启用批注处理 文件->设置->构建、执行、部署->编译器-> 注释处理器->(根据给出的图像勾选复选框 (见下文) 2) 安装/更新Lombok插件() 文件->设置->插件->搜索Lombok插件->更新或 安装 Eclipse 按照中的步骤操作。
- Lombok是一个非常方便的工具,用于最小化样板代码,并提供许多其他特性,如延迟加载、线程安全或不变性。这就是它在开发人员社区中变得非常流行的原因
- 如果Lombok位于类路径中,那么只需在类中添加两个注释,它就可以轻松地摆脱所有getter&setter方法、类构造函数、hashcode和equals方法等
- 要使用龙目山,你需要
developmentOnly 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency>
import lombok.Data; import lombok.NonNull; public @Data class Project { @Id private @NonNull String id; private @NonNull String name; private @NonNull String description; }