溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spring通過(guò)配置文件和注解實(shí)現(xiàn)屬性賦值的方法

發(fā)布時(shí)間:2020-08-03 11:46:02 來(lái)源:億速云 閱讀:223 作者:小豬 欄目:編程語(yǔ)言

這篇文章主要講解了Spring通過(guò)配置文件和注解實(shí)現(xiàn)屬性賦值的方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

通過(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、可以寫SpEL; #{}
  //3、可以寫${};取出配置文件【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");

看完上述內(nèi)容,是不是對(duì)Spring通過(guò)配置文件和注解實(shí)現(xiàn)屬性賦值的方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI