Spring通過(guò)配置文件和注解實(shí)現(xiàn)屬性賦值
前言
在實(shí)際開(kāi)發(fā)當(dāng)中,Spring中bean的屬性直接賦值用的不是太多,整理這方面的資料,做一個(gè)小結(jié),以備后續(xù)更深入的學(xué)習(xí)。
通過(guò)配置文件的方式
以配置文件的方式啟動(dòng)spring容器時(shí),可以使用property標(biāo)簽的value給bean的屬性賦值,賦值的形式有以下幾種:
<--通過(guò)context:property-placeholder將properties文件中的值加載的環(huán)境變量中(properties中的屬性值最終是以環(huán)境變量的形式存儲(chǔ)的)>
<context:property-placeholder location="classpath:person.properties"/>
<bean id="person" class="com.atneusoft.bean.Person" >
<--①通過(guò)基本數(shù)值直接賦值-->
<property name="name" value="zhangsan"></property>
<--②通過(guò)${}取出配置文件中的值-->
<property name="age" value="${person.age}"></property>
<--③通過(guò)Spring的El表達(dá)式-->
<--<property name="age" value="10*2"></property>-->
</bean>
classpath下的properties文件內(nèi)容
person.age=\u5C0F\u674E\u56DB
通過(guò)注解的方式
使用properties的value對(duì)應(yīng)的注解給屬性賦值
//使用@PropertySource讀取外部配置文件中的k/v保存到運(yùn)行的環(huán)境變量中;加載完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
@Bean
public Person person(){
return new Person();
}
}
public class Person {
//使用@Value賦值;
//1、基本數(shù)值
//2、可以寫(xiě)SpEL; #{}
//3、可以寫(xiě)${};取出配置文件【properties】中的值(在運(yùn)行環(huán)境變量里面的值)
@Value("張三")
private String name;
@Value("#{20-2}")
private Integer age;
/* @Value("${person.age}") private Integer age;*/
}
注:
外部配置文件中的k/v保存到運(yùn)行的環(huán)境變量中,可以直接在環(huán)境變量中取出對(duì)應(yīng)的值
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);
ConfigurableEnvironment environment = applicationContext.getEnvironment();
String property = environment.getProperty("person.age");
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java整合Redis實(shí)現(xiàn)坐標(biāo)附近查詢(xún)功能
這篇文章主要介紹了Java整合Redis實(shí)現(xiàn)坐標(biāo)附近查詢(xún),我們可以在redis服務(wù)器使用命令 help xxx 查看指令的具體用法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2023-11-11
利用java監(jiān)聽(tīng)器實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)
過(guò)去使用ASP和ASP.NET兩種編程的時(shí)候,都寫(xiě)過(guò)在線人數(shù)統(tǒng)計(jì)能,實(shí)現(xiàn)功能挺簡(jiǎn)單的!今天使用java來(lái)實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)有點(diǎn)另類(lèi),是通過(guò)Java監(jiān)聽(tīng)器實(shí)現(xiàn)的,需要的朋友可以參考下2015-09-09
springboot如何獲取application.yml里值的方法
這篇文章主要介紹了springboot如何獲取application.yml里的值,文章圍繞主題相關(guān)自資料展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
JAVA實(shí)現(xiàn)長(zhǎng)連接(含心跳檢測(cè)Demo)
這篇文章主要介紹了JAVA實(shí)現(xiàn)長(zhǎng)連接(含心跳檢測(cè)Demo),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解
這篇文章主要介紹了Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
詳解如何在SpringBoot項(xiàng)目中使用統(tǒng)一返回結(jié)果
在一個(gè)完整的項(xiàng)目中,如果每一個(gè)控制器的方法都返回不同的結(jié)果,那么對(duì)項(xiàng)目的維護(hù)和擴(kuò)展都會(huì)很麻煩。因此,本文為大家準(zhǔn)備了SpringBoot項(xiàng)目中使用統(tǒng)一返回結(jié)果的方法,需要的可以參考一下2022-10-10

