亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)容加載進(jìn)Spring容器中進(jìn)行管理,從而可以實(shí)現(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ù)層,運(yùn)行時能取到正確的值,但在控制層卻取得了@Value注解中的Key(@Value注解有個特點(diǎn),如果取不到值,那么不是返回一個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其中一小部分用法,詳細(xì)請查閱資料,這次記錄只是記錄我在項(xiàng)目中所遇到的問題,方便記憶,以防止自己以后再入坑,有紕漏請指出,不喜勿噴!

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

相關(guān)文章

  • Pulsar源碼徹底解決重復(fù)消費(fèi)問題

    Pulsar源碼徹底解決重復(fù)消費(fèi)問題

    這篇文章主要為大家介紹了Pulsar源碼徹底解決重復(fù)消費(fèi)問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 每日六道java新手入門面試題,通往自由的道路

    每日六道java新手入門面試題,通往自由的道路

    這篇文章主要為大家分享了最有價值的6道java面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對hashCode方法的設(shè)計(jì)、垃圾收集的堆和代進(jìn)行剖析,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 全面解析SpringBoot配置文件

    全面解析SpringBoot配置文件

    這篇文章主要為大家全面的解析SpringBoot-配置文件,文中附含詳細(xì)的圖文示例代碼,以便同學(xué)們能更好的理解,有需要的同學(xué)可以借鑒參考下
    2021-09-09
  • Mybatis 開發(fā)注解快速入門

    Mybatis 開發(fā)注解快速入門

    mybatis是一個支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。這篇文章主要介紹了Mybatis 開發(fā)注解快速入門的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • spring利用squertz實(shí)現(xiàn)定時任務(wù)

    spring利用squertz實(shí)現(xiàn)定時任務(wù)

    spring squertz是一個強(qiáng)大的定時任務(wù)處理方式。下面這篇文章主要介紹了spring利用squertz實(shí)現(xiàn)定時任務(wù)的相關(guān)資料,文中介紹的很詳細(xì),對大家具有一定的參考借鑒價值,需要的朋友們下面來一起看看吧。
    2017-01-01
  • Java yield()線程讓步實(shí)現(xiàn)過程解析

    Java yield()線程讓步實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Java yield()線程讓步實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • RestTemplate的URL請求示例

    RestTemplate的URL請求示例

    這篇文章主要為大家介紹了RestTemplate的URL請求示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 解決springboot使用logback日志出現(xiàn)LOG_PATH_IS_UNDEFINED文件夾的問題

    解決springboot使用logback日志出現(xiàn)LOG_PATH_IS_UNDEFINED文件夾的問題

    這篇文章主要介紹了解決springboot使用logback日志出現(xiàn)LOG_PATH_IS_UNDEFINED文件夾的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Spring中屬性注入的幾種方式以及復(fù)雜屬性的注入詳解

    Spring中屬性注入的幾種方式以及復(fù)雜屬性的注入詳解

    這篇文章主要介紹了Spring中屬性注入的幾種方式以及復(fù)雜屬性的注入詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析

    Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析

    這篇文章主要介紹了Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評論