Spring Boot提倡基於Java的配置。這兩篇博文主要介紹springboot 一些常用的註解介紹@value通過@Value可以將外部的值動態註入到Bean中。添加application.properties的屬性,方便後面演示。 ...
Spring Boot提倡基於Java的配置。這兩篇博文主要介紹springboot 一些常用的註解介紹
v@value
通過@Value可以將外部的值動態註入到Bean中。
添加application.properties的屬性,方便後面演示。
domain.name=cnblogs
@Value("字元串1") private String testName; // 註入普通字元串 @Value("#{systemProperties['os.name']}") private String systemPropertiesName; // 註入操作系統屬性 @Value("#{ T(java.lang.Math).random() * 100.0 }") private double randomNumber; //註入表達式結果 @Value("${domain.name}") private String domainName; // 註入application.properties的配置屬性
效果如下:
v@Import
SpringBoot 的 @Import 用於將指定的類實例註入之Spring IOC Container中。
package com.cnblogs.demo; public class Dog { }
package com.cnblogs.demo; public class Cat { }
在啟動類中需要獲取Dog和Cat對應的bean,需要用註解@Import註解把Dog和Cat的bean註入到當前容器中。
package com.cnblogs.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Import; //@SpringBootApplication @ComponentScan /*把用到的資源導入到當前容器中*/ @Import({Dog.class, Cat.class}) public class App { public static void main(String[] args) throws Exception { ConfigurableApplicationContext context = SpringApplication.run(App.class, args); System.out.println(context.getBean(Dog.class)); System.out.println(context.getBean(Cat.class)); context.close(); } }
v@ImportResource
Spring Boot裡面沒有Spring的配置文件,我們自己編寫的配置文件,也不能自動識別;想讓Spring的配置文件生效,載入進來;@ImportResource標註在一個配置類上.
@ImportResource(locations = {"classpath:applicationContext.xml"}) @SpringBootApplication public class SpringBootConfigApplication { public static void main(String[] args) { SpringApplication.run(SpringBootConfigApplication.class, args); } }
v@PropertySource
自定義配置文件名稱,多用於配置文件與實體屬性映射。
person.properties
person.lastName=Jack
person.age=18
person.birth=2018/12/9
person.boss=true
person.maps.key1=value1
person.maps.key2=value2
person.lists=a,b,c
person.dog.name=tom
person.dog.age=1
@PropertySource(value = {"classpath:person.properties"}) @ConfigurationProperties(prefix = "person") @Component public class Person { private String lastName; private Integer age; private boolean isBoss; private Date birth; private Map<String, Object> maps; private List<Object> lists; private Dog dog; ...setter/getter/toString... }
這樣一個註解(@PropertySource(value = {"classpath:person.properties"})
)就可以搞定不在主配置里讀取,按照不同的功能模塊劃分出不同的配置文件。
v補充
@Bean註解用在方法上,作用:將方法的返回值添加到容器中;容器中這個組件預設的id就是方法名。springboot不推崇使用配置文件,推崇使用全配置方式開發,如何定義一個配置類呢?在類名上加@Configuration標簽標明這是一個配置類,方法上則用@Bean
作 者:請叫我頭頭哥
出 處:http://www.cnblogs.com/toutou/
關於作者:專註於基礎平臺的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!