最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@PropertySource 無法讀取配置文件的屬性值解決方案

 更新時間:2021年06月15日 10:26:20   作者:pink_soda  
這篇文章主要介紹了@PropertySource 無法讀取配置文件的屬性值解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

原來Person類這樣寫: 只寫了@PropertySource注解

@Component
@PropertySource(value = {"classpath:person.properties"})
public class Person {
   
    private String lastName;
    private int age;
    private boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
...
}

運行后找不到配置文件中的值:

在這里插入圖片描述

解決方法:

加上@ConfigurationProperties注解:

@Component
@ConfigurationProperties(prefix = "person")
@PropertySource(value = {"classpath:person.properties"})
public class Person {

運行,獲取到配置文件中的值:

在這里插入圖片描述

為啥呢??

因為 @ConfigurationProperties(prefix = “person”)表示該類的屬性值為配置中的屬性值,找前綴為person的屬性。

首先從全局配置文件中找是否有person對應的屬性值,如果有那么就輸出全局配置中的屬性值;如果沒有,@PropertySource意思是屬性來源,從@PropertySource指定的路徑中找到對應的配置文件,進行賦值。

@Value和@PropertySource讀配置文件采坑留念

一、 網(wǎng)上查到的方式:

直接 @PropertySource加載文件@Value讀取屬性,

Environment.getProperty()獲取屬性。

結果發(fā)現(xiàn)@Value只能拿到"${ips}",獲取不到配置文件里的屬性。

@Controller
@PropertySource("classpath:queryScoreIPList.properties")
public class UserController {
 @Value("${ips}")
 private String ips;
 @Autowired
 private Environment environment;
 
 public void user() {
  System.err.println(ips);
 System.err.println(environment.getProperty("ips"));
 }
}

二、 其他方式:

兩種方式加載配置文件,

@Value正常獲取屬性,

Environment.getProperty()獲取不到屬性。

<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:queryScoreIPList.properties</value>
   </list>
  </property>
</bean> 
<context:property-placeholder ignore-unresolvable="true" 
  location="classpath:queryScoreIPList.properties" /> 

三、非要@PropertySource+@Value也可以:

spring配置里裝配PropertySourcesPlaceholderConfigurer或配置context:property-placeholder,

代碼里@PropertySource加載配置文件,

@Value獲取屬性,Environment.getProperty()正常獲取屬性。

<!--  <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"/>  -->
<context:property-placeholder/>
@Controller
@PropertySource("classpath:queryScoreIPList.properties")
public class UserController {
 @Value("${ips}")
 private String ips;
 
 public void user() {
  System.err.println(ips);
 }
}

總結:

1、@Value從PropertySourcesPlaceholderConfigurer類的PropertySources集合中獲取屬性。

2、PropertySourcesPlaceholderConfigurer初始化時會將Environment作為PropertySource放到集合中。

3、@PropertySource注解只加載配置文件到Environment。

4、啟動時@PropertySource注解初始化早于PropertySourcesPlaceholderConfigurer(與@PropertySource所在類和PropertySourcesPlaceholderConfigurer裝配順序無關),并且@PropertySource加載的配置在xml文件中可以正常獲取。

com.controller.user.UserController.java

@Controller
@PropertySource(value="classpath:propList.properties")
public class UserController { 
 @Value("${ips}")
 private String ips;
 public void user() {
  System.err.println(ips);  
  System.err.println(environment.getProperty("ips"));
 }
}

applicationContext.xml

<context:component-scan base-package="com.dao"/>
 <context:component-scan base-package="com.controller"/>
  <context:property-placeholder location="${location}"/>  

propList.properties

location:classpath:queryScoreIPList.properties

以上代碼可以正常獲取queryScoreIPList.properties文件中的ips屬性。希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • java多線程編程之使用Synchronized塊同步變量

    java多線程編程之使用Synchronized塊同步變量

    我們可以通過synchronized塊來同步特定的靜態(tài)或非靜態(tài)方法。要想實現(xiàn)這種需求必須為這些特性的方法定義一個類變量,然后將這些方法的代碼用synchronized塊括起來,并將這個類變量作為參數(shù)傳入synchronized塊
    2014-01-01
  • Java?IO之流的分類詳解

    Java?IO之流的分類詳解

    這篇文章主要為大家介紹了Java?IO之流的分類,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Mybatis中3種關聯(lián)關系的實現(xiàn)方法示例

    Mybatis中3種關聯(lián)關系的實現(xiàn)方法示例

    這篇文章主要給大家介紹了關于Mybatis中3種關聯(lián)關系的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Mybatis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • maven的安裝配置使用詳解

    maven的安裝配置使用詳解

    這篇文章主要介紹了maven的安裝配置使用詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java構造方法和方法重載詳解

    Java構造方法和方法重載詳解

    大家好,本篇文章主要講的是Java構造方法和方法重載詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java數(shù)據(jù)結構之線段樹詳解

    Java數(shù)據(jù)結構之線段樹詳解

    線段樹是一種二叉搜索樹,與區(qū)間樹相似,它將一個區(qū)間劃分成一些單元區(qū)間,每個單元區(qū)間對應線段樹中的一個葉結點。本文將介紹線段樹的Java實現(xiàn)代碼,需要的可以參考一下
    2022-01-01
  • Java調用Deepseek實現(xiàn)項目代碼審查

    Java調用Deepseek實現(xiàn)項目代碼審查

    這篇文章主要為大家詳細介紹了Java如何調用Deepseek實現(xiàn)項目代碼審查功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-02-02
  • SpringBoot業(yè)務邏輯異常的處理方法介紹

    SpringBoot業(yè)務邏輯異常的處理方法介紹

    本篇文章為大家展示了如何在SpringBoot中統(tǒng)一處理邏輯異常,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲
    2022-09-09
  • 關于Mybatis使用collection分頁問題

    關于Mybatis使用collection分頁問題

    項目中mybatis分頁的場景是非常高頻的,當使用ResultMap并配置collection做分頁的時候,我們可能會遇到獲取當前頁的數(shù)據(jù)少于每頁大小的數(shù)據(jù)問題。接下來通過本文給大家介紹Mybatis使用collection分頁問題,感興趣的朋友一起看看吧
    2021-11-11
  • 詳解RSA加密算法的原理與Java實現(xiàn)

    詳解RSA加密算法的原理與Java實現(xiàn)

    這篇文章主要和大家分享非對稱加密中的一種算法,那就是 RSA 加密算法。本文介紹了RSA算法的原理與Java實現(xiàn),感興趣的小伙伴可以嘗試一下
    2022-10-10

最新評論

安多县| 黔江区| 蒲城县| 吐鲁番市| 五家渠市| 印江| 辽宁省| 无棣县| 深州市| 临沧市| 峨边| 海林市| 茶陵县| 肃南| 柯坪县| 安溪县| 定安县| 竹山县| 池州市| 清流县| 新宁县| 舒城县| 江都市| 包头市| 唐海县| 贵定县| 沾化县| 闵行区| 额尔古纳市| 柳江县| 长宁县| 响水县| 攀枝花市| 荆州市| 闻喜县| 三河市| 新田县| 海南省| 阿克| 康乐县| 闻喜县|