lombok 相关问题

Project Lombok是一个通过Annotations减少java中样板代码并编译时间代码生成的工具。

多模块maven项目中JDK升级到JDK17时,Lombok 1.18.26无法找到符号

我在 JDK8 中使用 Lombok,一切正常。但是,当我尝试升级到 JDK17 时,编译失败并出现错误 错误:找不到符号 [错误]符号:类生成器 不能

回答 2 投票 0

我们如何使用 lombok 为 2 个相同的对象创建相同的哈希码值?

我正在尝试单例设计模式。当我这样做时,service1和service2的hashcode值是相同的。但是我希望通过Lombok生成hashcode值。当我使用@EqualsAndHas...

回答 1 投票 0

是否可以在 @RequiredArgsConstructor(onConstructor = @__(@Autowired)) 中添加限定符?

如果我想在构造函数依赖注入上使用注释@Qualifier,我会得到如下所示的内容: 公共类示例{ 私有最终 ComponentExample 组件; ...

回答 3 投票 0

构造函数基础依赖注入不起作用?

这是我第一次遇到这个错误 `描述: com.team.zah.blog.service.Impl.PostServiceImpl 中构造函数的参数 0 需要类型为“com.team.zah.blog.repository”的 bean。

回答 1 投票 0

Lombok 不生成 getter 和 setter 或构造函数,甚至 Spring Boot 项目中的 @Data 的问题

我使用 Spring Boot 来初始化我的项目,事实上,我通过 Spring Boot 包含了 Lombok 依赖项,并配置了 Lombok 插件,如下所示: 我使用的IDE是Eclipse 我使用 Spring Boot 来初始化我的项目,事实上,我通过 Spring Boot 包含了 Lombok 依赖项并配置了 Lombok 插件,如下所示: 我使用的IDE是Eclipse <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.springbootExample</groupId> <artifactId>SpringBoot_Example</artifactId> <version>0.0.1-SNAPSHOT</version> <name>SpringBoot_Example</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</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-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>12.4.2.jre11</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </pluginRepository> </pluginRepositories> </project> 但是,当我在名为department.java的实体类中使用它时,Lombok似乎没有按预期工作。即使使用 @Data、@NoArgsConstructor、@AllArgsConstructor 和 @Builder 对类进行注释后,问题仍然存在。 package com.springbootExample.SpringBoot_Example.entity; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @Entity @Data @NoArgsConstructor @AllArgsConstructor @Builder public class department { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long departmentID; @NotBlank(message = "Please add department name") // @Length(max = 20, min = 10) // @Size // @Email // @Positive // @Negative // @PositiveOrZero // @Future // @Past // @FutureOrPresent private String departmentName; private String departmentAdress; private String departmentCode; } 在另一个配置Java类中,我也无法使用部门类的getter和setter方法。 package com.springbootExample.SpringBoot_Example.service; import java.util.List; import java.util.Objects; import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.springbootExample.SpringBoot_Example.entity.department; import com.springbootExample.SpringBoot_Example.error.departmentExceptionHandling; import com.springbootExample.SpringBoot_Example.repository.departmentRepository; @Service public class departmentServiceImplement implements departmentService{ @Autowired private departmentRepository dr; @Override public department saveDepartment(department dp) { return dr.save(dp); } @Override public List<department> fetchDepartment() { return dr.findAll(); } @Override public department fetchDepartmentById(Long departmentID) throws departmentExceptionHandling { Optional<department> dpt = dr.findById(departmentID); if(!dpt.isPresent()) { throw new departmentExceptionHandling("Department was not found"); } return dpt.get(); } @Override public void deleteDepartmentById(Long departmentID) { dr.deleteById(departmentID); } @Override public department updateDepartment(Long departmentID, department dp) { department dep = dr.findById(departmentID).get(); if(Objects.nonNull(dp.getDepartmentName()) && !"".equalsIgnoreCase(dp.getDepartmentName())) { dep.setDepartmentName(dp.getDepartmentName()); } if(Objects.nonNull(dp.getDepartmentCode()) && !"".equalsIgnoreCase(dp.getDepartmentCode())) { dep.setDepartmentCode(dp.getDepartmentCode()); } if(Objects.nonNull(dp.getDepartmentAdress()) && !"".equalsIgnoreCase(dp.getDepartmentAdress())) { dep.setDepartmentAdress(dp.getDepartmentAdress()); } return dr.save(dep); } @Override public department fetchDepartmentByName(String departmentName) { return departmentRepository.findByDepartmentNameIgnoreCase(departmentName); } } 错误显示为 The method getDepartmentName() is undefined for the type department The method getDepartmentCode() is undefined for the type department The method getDepartmentAdress() is undefined for the type department 我尝试了多种解决方案,例如更新 IDE、更改 Lombok 插件、安装 Lombok,但都没有解决问题。 如果有人遇到类似的问题并且知道如何解决它,我将非常感谢您的帮助。 提前谢谢您。 这些注释将在编译之前执行。在 Gradle 中,您需要使用 annotationProcessor <lombok> 来实现此目的。您添加的是默认范围,可能是runtime或compile(不确定)。对于 Maven,您必须使用 annotationProcessor 的等效项,here(在问题本身中)对此进行了解释。

回答 1 投票 0

mapstruct 仅当源 bean 和目标 bean 都使用 lombok 为父级时才转换父级字段

如下所示,我有扩展 BasicEntity 的 OpenSecretEntity 和扩展 BasicDto 的 OpenSecretDto 。 当我使用 OpenSecretStructMapper 和 mapstruct 的 @Mapper 将 OpenSecretEntity 转换为

回答 1 投票 0

Lombok 和@Autowired

如果我将 Lombok 连接到项目,如何使用 @autowired 注释注入 Bean? 这些链接上的答案似乎不稳定(支持?): Spring + Lombok:我可以@Autowired @Setter 斯...

回答 4 投票 0

为什么使用@Wither时Lombok无法编译?

我使用的是Lombok 1.18.8: 仅编译 'org.projectlombok:lombok:1.18.8' 这是我与 @Wither 的简单课程: @枯萎 公共类用户{ 私有 int a; } 但是withA()方法并没有出现...

回答 3 投票 0

Lombok @SuperBuilder - 将对象从一个子类转换为另一个子类,保留父类的字段

我需要将一个类的实例转换为“兄弟”类(两者都继承自同一个父类),而无需显式设置公共/父类字段。我们的目标是让这个“ma...

回答 1 投票 0

Thymeleaf 无法识别 Lombok getter 和 setter

Lombok 插件已安装。使用 IntelliJ 15。模型结构显示了 getter 和 setter,但我从 Thymeleaf 收到以下错误。 错误: bean 类的无效属性“postTitle”[...

回答 2 投票 0

Lombok/Eclipse 问题 - 我可以编译但无法运行

我遇到了 Lombok 或 Eclipse 的问题,不确定是哪一个。我有一个 Spring Boot maven 项目,我正在使用 Lombok。我已将其添加到我的 pom.xml 文件中,并且我已使用 lombok 安装来...

回答 4 投票 0

lombok 是如何工作的?

今天我遇见了lombok。 我非常想知道它是如何运作的。 Java Geek 文章提供了一些线索,但对我来说并不完全清楚: Java 6 删除了 apt 并启用了 javac 管理注释,

回答 4 投票 0

@Builder注解的继承类

我需要从具有 @Builder 注释的依赖项继承一个超类(我无法修改此类),同时我希望我的子类具有构建器模式。我尝试使用@buil...

回答 1 投票 0

如何在(现代)gradle中生成QueryDSL mongoDB和lombok

让 QueryDSL 和 lombok 一起工作并不简单,特别是因为 querydsl 的 gradle 文档最多也缺乏。 我想避免使用仍然依赖于...的autdated插件

回答 2 投票 0

龙目岛@AllArgsConstructor 的错误?

启动我的 Spring Boot 应用程序时出现以下错误: be.mypackage.dataimport.soft99.transformers.visit.VisitTransformer 中构造函数的参数 17 需要类型为“java....

回答 1 投票 0

使用 lombok superbuilder 时忽略 null 值

我遇到了使用 Lombok SuperBuilder 为我的类创建构造函数的情况 无论如何,我可以使用构建器创建一个对象而不创建空值吗? @数据 @超级建造者 公共...

回答 2 投票 0

Spring Boot 从 2.7 迁移到 3.0.1 Lombok 问题`找不到 sybol`

这篇文章 Spring Boot 3 Lombok 我已经读过,这正是我的问题,但解决方案对我没有帮助。 从 Spring Boot 2.7 迁移到 3.0.1 时出现此问题。根据l的版本...

回答 3 投票 0

Gradle 无法构建 lombok 注解类

我已将我的项目从 Maven 更改为 gradle。但我这个命令出错了 ./gradlew构建--扫描 对于其中有 lombok 的项目。 网上的方法我都试过了,没用。该...

回答 2 投票 0

使用lombok时如何将空字符串数据设置为null?

我的实体类用lombok注释 @实体 @数据 @Table(名称=“t_mmc_client”) 公共类 TMmcClient 实现可序列化 { .... 虽然一些 Integer 属性...

回答 1 投票 0

在 Springboot 中将 HttpRequest 中的值绑定到对象时获取 null 值

我创建了一个 Webhook 服务器,它接受来自第 3 方 (Twilio) 的 POST 请求以进行消息传递回调,并将其反序列化为一个对象。 pojo 对象具有相同的

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.