使用Lombok @RequiredArgsConstructor而不使用@Autowired

问题描述 投票:0回答:1

“我正在学习英语,这是我第一次用英语写作。可能会有一些错误,请多多包涵。

我正在尝试使用STS4在浏览器中显示数据库信息列表。但是,尝试在 UserService.java 类中使用 Lombok 不起作用。

具体来说,在 UserService.java 类中只写一个构造函数,例如 private final UserRepository userRepository;不起作用。

以下是我已经采取的步骤:

我将以下两行代码添加到 application.properties 文件 spring.thymeleaf.check-template-location=false 中。 spring.jpa.open-in-view=false

从SpringToolSuite4.ini文件中删除了lombok.jar,并删除了lombok.jar导入信息。然后通过在“帮助”>“安装新软件”中输入 STS4 的 https://projectlombok.org/p2 重新安装该软件。安装成功完成。

在pom.xml文件中指定Lombok的版本为1.18.30,但问题并未解决。错误消息是“正在复制 lombok 的托管版本 1.18.30”。所以这不相关。

我怀疑STS4 IDE没有正确处理导入语句和注释,因为当我写 private Final UserRepository userRepository; 时我收到一条错误消息,指出该语句不能为空 我收到一条警告消息,指出该语句不能为空。

有人可以给我一些反馈吗?提前谢谢您。”

我尝试过的:我尝试在 UserService.java 类中使用 Lombok。具体来说,我编写了一个构造函数,例如 private Final UserRepository userRepository;在 UserService.java 类中。此外,我向 application.properties 文件添加了特定的代码行,从 SpringToolSuite4.ini 文件中删除了 lombok.jar,并通过在“帮助”>“安装新软件”中输入 STS4 的 https://projectlombok.org/p2 重新安装它。我还在pom.xml文件中指定了Lombok的版本为1.18.30。

我的期望:我期望通过执行这些步骤,Lombok 能够正确运行并私有最终 UserRepository userRepository;不会为空。

java spring spring-boot spring-data-jpa lombok
1个回答
0
投票

如果您想在服务类中使用

@RequiredArgConstructor
自动装配依赖项,您可以这样做:

@Service
@RequiredArgsConstructor
public class UserService {
    private final UserRepository userRepository;

    // Your methods here
}

关于这个问题:

pom.xml文件中指定Lombok的版本为1.18.30, 但问题并没有解决。错误消息是“正在复制” lombok 的托管版本 1.18.30’。

这表明该版本已在您的 Maven 配置中的其他位置进行管理。因此,如果我理解正确,您只需手动添加 Lombok 库,并将其作为依赖项添加到您的

pom.xml
文件中,这很可能导致此问题。 您可以在终端中运行以下命令并在此处显示输出吗:

mvn dependency:tree
© www.soinside.com 2019 - 2024. All rights reserved.