SpringBoot bean依賴屬性配置詳細(xì)介紹
創(chuàng)建實體類
@Data public class Cat { private String name; private Integer age; }
@Data public class Mouse { private String name; private Integer age; }
配置文件application.yml使用固定格式為屬性注入數(shù)據(jù)
cartoon:
cat:
name: "圖多蓋洛"
age: 5
mouse:
name: "泰菲"
age: 6
業(yè)務(wù)類定義業(yè)務(wù)功能bean,在引導(dǎo)類通常使用@Import導(dǎo)入,解耦強制加載bean
使用@EnableConfigurationProperties注解設(shè)定使用屬性類時加載bean
@Data //當(dāng)加載CartoonCatAndMouse類時將CartoonProperties類加載成bean,不用不加載,解耦合 @EnableConfigurationProperties(CartoonProperties.class) public class CartoonCatAndMouse { private Cat cat; private Mouse mouse; private CartoonProperties cartoonProperties; public CartoonCatAndMouse(CartoonProperties cartoonProperties){ this.cartoonProperties = cartoonProperties; cat = new Cat(); cat.setName(cartoonProperties.getCat()!=null && StringUtils.hasText(cartoonProperties.getCat().getName()) ? cartoonProperties.getCat().getName() : "tom"); cat.setAge(cartoonProperties.getCat()!=null && cartoonProperties.getCat().getAge()!=null ? cartoonProperties.getCat().getAge() : 3); mouse = new Mouse(); mouse.setName(cartoonProperties.getMouse()!=null && StringUtils.hasText(cartoonProperties.getMouse().getName()) ? cartoonProperties.getMouse().getName() : "jerry"); mouse.setAge(cartoonProperties.getMouse()!=null && cartoonProperties.getMouse().getAge()!=null ? cartoonProperties.getMouse().getAge() : 4); } public void play(){ System.out.println(cat.getAge()+"歲的"+cat.getName()+"和"+ mouse.getAge()+"歲的"+mouse.getName()+"打起來了"); } }
將業(yè)務(wù)功能bean運行需要的資源抽取長獨立的屬性類,設(shè)置讀取配置文件的信息
@Data //類與配置文件綁定 @ConfigurationProperties(prefix = "cartoon") public class CartoonProperties { private Cat cat; private Mouse mouse; }
測試:
@SpringBootApplication //當(dāng)運行時將CartoonCatAndMouse類加載成bean,不允許不加載 @Import(CartoonCatAndMouse.class) public class Demo15SpringbootBeanpropertiesApplication { public static void main(String[] args) { ConfigurableApplicationContext ctx = SpringApplication.run(Demo15SpringbootBeanpropertiesApplication.class, args); CartoonCatAndMouse bean = ctx.getBean(CartoonCatAndMouse.class); bean.play(); } }
總結(jié):
- 業(yè)務(wù)bean的屬性可以為其設(shè)定默認(rèn)值
- 當(dāng)需要設(shè)置時通過配置文件傳遞屬性
- 業(yè)務(wù)bean應(yīng)盡量避免設(shè)置強制加載,而是根據(jù)需要導(dǎo)入后加載,降低spring容器管理bean的強度
到此這篇關(guān)于SpringBoot bean依賴屬性配置詳細(xì)介紹的文章就介紹到這了,更多相關(guān)SpringBoot bean依賴屬性配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis映射文件之常用標(biāo)簽及特殊字符的處理方法
這篇文章主要介紹了Mybatis映射文件常用標(biāo)簽及特殊字符的處理,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05SpringAnimation 實現(xiàn)菜單從頂部彈出從底部消失動畫效果
最近做項目遇到這樣一個需求,要求實現(xiàn)一種菜單,菜單從頂部彈入,然后從底部消失,頂部彈入時,有一個上下抖動的過程,底部消失時,先向上滑動,然后再向下滑動消失。下面給大家?guī)砹藢崿F(xiàn)代碼,感興趣的朋友一起看看吧2018-05-05老生常談Java網(wǎng)絡(luò)編程TCP通信(必看篇)
下面小編就為大家?guī)硪黄仙U凧ava網(wǎng)絡(luò)編程TCP通信(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05Spring擴展BeanFactoryPostProcessor使用技巧詳解
這篇文章主要為大家介紹了Spring擴展BeanFactoryPostProcessor使用技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09java基于控制臺的學(xué)生學(xué)籍管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java基于控制臺的學(xué)生學(xué)籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07SpringCloud解決Feign異步回調(diào)問題(SpringBoot+Async+Future實現(xiàn))
這篇文章主要介紹了SpringCloud解決Feign異步回調(diào)問題(SpringBoot+Async+Future實現(xiàn)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11