我在POJO类中使用了@Data
注释,但是没有生成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;
}
<!-- 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>
答案 0 :(得分:6)
此处的问题可能与您检查是否实际生成了getter / setter的能力有关。
如果您的IDE告诉您没有生成getter / setter - IDE可能是错误的。它可能不会选择生成的getter / setter;对于您的IDE - 确保您有相关的插件。当你提到STS时,这很可能是你的问题。 尝试与您的案例相关的链接之一:
使用独立于IDE的Maven构建来确保Lombok生成它应该的内容。
答案 1 :(得分:5)
<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>
答案 2 :(得分:2)
Lombok 是注释处理器-它具有对生成的源树的完全访问权限。注解处理器通常会生成新的源文件,而Lombok通过添加新的字段或方法来修改现有文件。
龙目岛(Lombok)提供了很多注释。 (请参见full List)
要回答这个问题:Lombok批注不会在开发时生成代码。仅当Java编译器生成抽象源树时才会发生。因此,不要期望在添加注释时代码会发生神奇的变化。
但是,您需要在特定的IDE中解决它们,以便正确添加所有依赖项和导入。下面给出了在首选IDE中解析Lombok批注的方法。您还可以进行Maven项目并解决这些问题(Project Lombok Maven repository)。
IntelliJ Idea
1)启用注释处理
文件->设置->构建,执行,部署->编译器-> 注释处理器->(根据给定的图像选中该复选框 下面)
2)安装/更新Lombok插件(see this)
文件->设置->插件->搜索Lombok插件->更新或 安装
Eclipse
遵循this link中的这些步骤。
答案 3 :(得分:1)
首先,您不需要添加@Setter和@Getter。 @Data包括这两个。
其次,您需要将lombok插件添加到IDE中。(搜索STS的lombok插件或为STS启用注释处理器)。当你这样做时,你真的不会在IDE中看到生成的getter和setter。这将有助于您在IDE中完成编译时错误。多数民众赞成。
答案 4 :(得分:1)
Spring Tool Suite IDE基于eclipse。
来自官方的Lombok文档: https://projectlombok.org/download.html
Eclipse和变体 - 将lombok.jar作为Java应用程序运行(通常是双击它)以进行安装。还要将lombok.jar添加到您的项目中。支持的变体:Springsource Tool Suite,JBoss Developer Studio
如果它仍然无效,此Stack Overflow讨论可能对您有所帮助:
答案 5 :(得分:1)
1。下载Lombok Jar文件
在您的maven项目中添加以下依赖项,以使其首先在本地存储库中下载。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
现在对新创建的项目执行 mvn全新安装命令,以将该jar下载到本地存储库中。
2。开始安装Lombok
一旦将jar下载到本地存储库中,请从命令提示符转到jar位置,然后运行以下命令java -jar lombok-1.16.18.jar,lombok提供的Lombok安装窗口会打招呼。 / p>
现在单击“指定位置”按钮,然后在eclipse安装文件夹下找到eclipse.exe路径,如下所示。
现在单击“安装/更新”按钮,我们应该在Eclipse中完成安装Lombok。
所有设置正确完成后,您可以使用Lombok的所有提供的jar。
赞:
有关更多详细信息:
答案 6 :(得分:0)
您还必须将lombok aus代理添加到IDE中。有关详细信息,请参阅https://projectlombok.org/download.html。
答案 7 :(得分:0)
在我的例子中,生成的类在我的实体类上有lombok生成的getter / setter。但是除了@Id字段之外,我仍然在为我的实体中的所有字段绑定空值。我正在使用gradle而不是maven。
解决这个问题的方法是在IntelliJ CE IDE中安装Lombok插件,并启用IDE /项目的注释处理。
之后我能够坚持我的实体!
答案 8 :(得分:0)
在使用Spring Boot时,您可以省略lombok的版本(该版本将从Spring Boot父POM继承)。还要检查您的IDE是否配置正确!
答案 9 :(得分:0)
请按照以下步骤操作:(100%工作)
[https://projectlombok.org/download][1]
例如:
import lombok.Data;
import lombok.NonNull;
public @Data class Project {
@Id
private @NonNull String id;
private @NonNull String name;
private @NonNull String description;
}
答案 10 :(得分:0)
您需要安装lombok jar并将其添加到eclipse用户的构建路径中。
https://howtodoinjava.com/automation/lombok-eclipse-installation-examples/#lombok-eclipse
或者,您可以在 Eclipse 中从源代码生成 getter 和 setter 并丢弃 @Data 注释
答案 11 :(得分:-1)
使用Springboot + Lombok研究此示例项目。这个类使用@Data: https://github.com/raulvillalbamedina/exampleApiHateoas/blob/master/src/main/java/com/rvillalba/exampleApiHateoas/entity/Example.java
如果你的IDE有错误,你需要一个插件: “Eclipse和变体运行lombok.jar作为java应用程序(通常是双击它)来安装。还要将lombok.jar添加到你的项目中。支持的变种:Springsource Tool Suite,JBoss Developer Studio IDEA IntelliJ由Michael Plushnikov开发的插件增加了对大多数功能的支持。“
答案 12 :(得分:-5)
您需要添加@Setter&amp; @Getter对该类的注释