基于@AllArgsConstructor與@Value共用的問(wèn)題解決
@AllArgsConstructor與@Value共用的問(wèn)題解決
平時(shí)我們用lombok的方式來(lái)實(shí)現(xiàn)Bean的構(gòu)造函數(shù)方式的注入,但是當(dāng)遇到@Value注解的時(shí)候,就會(huì)出現(xiàn)問(wèn)題,
看下面這段代碼
/** * @author sunhan */ @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(); } }
啟動(dòng)項(xiàng)目的時(shí)候,會(huì)拋出異常
***************************
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.
如何解決這個(gè)問(wèn)題呢?
其實(shí)很簡(jiǎn)單,將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(); } }
參考:這里
@AllArgsConstructor導(dǎo)致@value注入失敗
@AllArgsConstructor @RestController @RequestMapping("xx/xx" ) public class WxUserController extends BaseController { private final WxUserService service; private final PointsDetailService pointsDetailService; private final WxUserPointsService wxUserPointsService; @Value("${points.registerPoints}") private int registerPoints; ................................ }
直接項(xiàng)目啟動(dòng)失敗,報(bào)錯(cuò)如下:
解決方法
本人是去掉@AllArgsConstructor,使用@autowired進(jìn)行注入,應(yīng)該還有別的方法可以解決這個(gè)沖突,我沒有試
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot中優(yōu)雅的獲取yml文件工具類
今天小編就為大家分享一篇關(guān)于Spring Boot中優(yōu)雅的獲取yml文件工具類,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Spring?Boot使用線程池處理上萬(wàn)條數(shù)據(jù)插入功能
這篇文章主要介紹了Spring?Boot使用線程池處理上萬(wàn)條數(shù)據(jù)插入功能,使用步驟是先創(chuàng)建一個(gè)線程池的配置,讓Spring Boot加載,用來(lái)定義如何創(chuàng)建一個(gè)ThreadPoolTaskExecutor,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-08-08Spring Boot非Web項(xiàng)目運(yùn)行配置的方法教程
這篇文章主要介紹了Spring Boot非Web項(xiàng)目運(yùn)行配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09解析MyBatisPlus解決邏輯刪除與唯一索引的兼容問(wèn)題
這篇文章主要介紹了MyBatisPlus解決邏輯刪除與唯一索引的兼容問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04SpringBoot實(shí)現(xiàn)分頁(yè)功能
這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Java?SpringMVC實(shí)現(xiàn)自定義攔截器
這篇文章主要為大家詳細(xì)介紹了SpringMVC實(shí)現(xiàn)自定義攔截器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03java Iterator.remove()實(shí)例方法分析
在本篇文章里小編給大家整理了一篇關(guān)于java Iterator.remove()實(shí)例方法分析,有興趣的朋友們跟著學(xué)習(xí)下。2021-01-01