@AllArgsConstructor与@Value共用的问题解决

平时我们用lombok的方式来实现Bean的构造函数方式的注入,但是当遇到@Value注解的时候,就会出现问题,看下面这段代码:

复制代码
@RestController
@AllArgsConstructor
@RequestMapping("test")
public class TestController {

    @Value("${test}")
    private String test;

    private TestService testService;

    @GetMapping()
    public String get() {
        System.out.println(test);
        return testService.get();
    }
}
复制代码

启动项目的时候,会抛出异常

复制代码
***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.good.base.controller.TestController required a bean of type 'java.lang.String' that could not be found.


Action:

Consider defining a bean of type 'java.lang.String' in your configuration.
复制代码

如何解决这个问题呢?
其实很简单,将AllArgsConstructor改成RequiredArgsConstructor,然后把需要注入的bean改成final类型的,就可以了

复制代码
@RestController
@RequiredArgsConstructor
@RequestMapping("test")
public class TestController {

    @Value("${test}")
    private String test;

    private final TestService testService;

    @GetMapping()
    public String get() {
        System.out.println(test);
        return testService.get();
    }
}
复制代码

 

posted @   乖怪丶  阅读(816)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2020-04-02 MySQL Explain详解
2020-04-02 Java面试题大汇总
2019-04-02 BootStrap table动态增删改表格内数据
2019-04-02 Js中JSON.stringify()与JSON.parse()与eval()详解及使用案例
2019-04-02 Bootstrap switch 切换状态踩坑
2019-04-02 字符串数组去重
欢迎这位客官来到《@AllArgsConstructor与@Value共用的问题解决 - 乖怪丶 - 博客园》
点击右上角即可分享
微信分享提示