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

Spring注解@Value在controller無法獲取到值的解決

 更新時間:2021年11月18日 10:48:46   作者:Thinkingcao  
這篇文章主要介紹了Spring注解@Value在controller無法獲取到值的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、前言

說到@Value注解,用過的應(yīng)該都知道,這是Spring3的一個注解,通過@value注解的方式獲取properties文件中的屬性值,大大簡化了我們讀取配置文件的代碼

想要通過@Value注解讀取配置文件屬性的值,那么首先必須要配置properties文件的加載,讓Spring將properties的文件中的內(nèi)容加載進Spring容器中進行管理,從而可以實現(xiàn)通過@Value注解讀取配置文件屬性的值。

二、properties加入到Spring容器中有兩種方式

1、以注入bean的形式

<bean id="appProperty"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <array>
            <value>classpath:weixin.properties</value>
        </array>
    </property>
</bean>

2、以下面這種形式

加載多個properties文件使用,隔開

	
    <!-- 加載配置屬性文件 -->
	<context:property-placeholder ignore-unresolvable="true"        
	location="classpath:jeesite.properties,classpath:weixin.properties" />

三、將properties注冊到Spring容器

1、weixin.properties內(nèi)容以鍵值對(key = value)形式存放

2、@Value使用

以 @Value("${key}")的形式獲取properties中key對應(yīng)的value值 , 以下為獲取value值得代碼截圖

5、存在問題

問題 :但是上述步驟還存在一個問題,就是我在Service中通過 @Value("${token}") 可以獲取到token的值,但是在controller中無法獲取到token的值,若要在Controller層也使用@Value訪問properties配置的話,需要在xxx-servlet.xml(我這里是Spring-mvc.xml)中也定義properties配置文件。

解決 : 必須在Spring-mvc.xml中加入

	
    <!-- 加載配置屬性文件 -->
	<context:property-placeholder ignore-unresolvable="true"        
	location="classpath:jeesite.properties,classpath:weixin.properties" />

四、總結(jié)

如上所示,同樣的代碼,寫在在業(yè)務(wù)層,運行時能取到正確的值,但在控制層卻取得了@Value注解中的Key(@Value注解有個特點,如果取不到值,那么不是返回一個null,而是返回Key)。

原因是controller注冊在dispatcherservlet-servlet.xml代表的Spring MVC的容器中,而service則注冊在application-context.xml代表的Spring的容器中。

如果context:property-placeholder只注冊在Spring的容器中,那么自然只有業(yè)務(wù)層的類可以取到enable-upload-image的值,而控制器取不到值。 解決方法就是把各種context:property-placeholder在兩個容器中都注冊一下。如:

并且現(xiàn)在可以從屬性文件讀取,這只是@Value其中一小部分用法,詳細請查閱資料,這次記錄只是記錄我在項目中所遇到的問題,方便記憶,以防止自己以后再入坑,有紕漏請指出,不喜勿噴!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot創(chuàng)建可執(zhí)行jar包的實例教程

    Spring Boot創(chuàng)建可執(zhí)行jar包的實例教程

    這篇文章主要介紹了Spring Boot創(chuàng)建可執(zhí)行jar包的實例教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 關(guān)于spring事務(wù)傳播行為非事務(wù)方式的理解

    關(guān)于spring事務(wù)傳播行為非事務(wù)方式的理解

    這篇文章主要介紹了對spring事務(wù)傳播行為非事務(wù)方式的全面理解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中BufferedReader與BufferedWriter類的使用示例

    Java中BufferedReader與BufferedWriter類的使用示例

    BufferedReader與BufferedWriter分別繼承于Reader和Writer類,分別為字符的讀取和寫入添加緩沖功能,這里我們就來看一下Java中BufferedReader與BufferedWriter類的使用示例:
    2016-06-06
  • JAVA實現(xiàn)的簡單萬年歷代碼

    JAVA實現(xiàn)的簡單萬年歷代碼

    這篇文章主要介紹了JAVA實現(xiàn)的簡單萬年歷代碼,涉及Java日期操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Java編程中的equals方法使用全解

    Java編程中的equals方法使用全解

    這篇文章主要介紹了Java編程中的equals方法使用全解,是Java入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Java實現(xiàn)24點小游戲

    Java實現(xiàn)24點小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)24點小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java多線程 兩階段終止模式Two-Phase Termination Patter

    Java多線程 兩階段終止模式Two-Phase Termination Patter

    這篇文章主要介紹了Java多線程 兩階段終止模式Two-Phase Termination Patter,該模式有兩個角色,分別是Terminator,終止者,負責接收終止請求,執(zhí)行終止處理,處理完成后再終止自己。TerminationRequester終止請求發(fā)出者,用來向Terminator發(fā)出終止請求,需要的朋友可以參考一下
    2021-10-10
  • Zookeeper連接超時問題與拒絕連接的解決方案

    Zookeeper連接超時問題與拒絕連接的解決方案

    今天小編就為大家分享一篇關(guān)于Zookeeper連接超時問題與拒絕連接的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 詳解如何在Java中加密和解密zip文件

    詳解如何在Java中加密和解密zip文件

    在本文中,我們來學習如何用Zip4j庫創(chuàng)建受密碼保護的壓縮文件并將其解壓,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2022-09-09
  • Java IO流常用字節(jié)字符流原理解析

    Java IO流常用字節(jié)字符流原理解析

    這篇文章主要介紹了Java IO流常用字節(jié)字符流原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03

最新評論

泉州市| 本溪| 伊川县| 体育| 阿坝县| 辽阳县| 湖州市| 工布江达县| 涟水县| 汝城县| 武隆县| 托克托县| 红安县| 永仁县| 玛曲县| 三河市| 黄平县| 金乡县| 辽阳县| 名山县| 怀化市| 苗栗县| 金川县| 沁源县| 慈溪市| 苍南县| 田阳县| 犍为县| 伊宁县| 莆田市| 寿光市| 东乌| 景泰县| 武穴市| 察雅县| 汨罗市| 淮安市| 衡东县| 朔州市| 余姚市| 霍邱县|