欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用@value注解取不到application.xml配置文件中的值問題

 更新時(shí)間:2022年03月21日 11:30:32   作者:jgsdh.com  
這篇文章主要介紹了使用@value注解取不到application.xml配置文件中的值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@value注解取不到application.xml的值

報(bào)錯(cuò)信息

今天從碼云上拉下來代碼,突然發(fā)現(xiàn)系統(tǒng)跑不起來了,報(bào)錯(cuò)信息如下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.cache.type' in value "${spring.cache.type}"

開發(fā)組最近都忙著寫業(yè)務(wù)層代碼,一般來說不會(huì)碰配置文件里的東西,莫名其妙就出現(xiàn)了這個(gè)錯(cuò)誤。

原來代碼

Java代碼如下:

@Configuration
public class ShiroConfig {    
    @Value("${spring.cache.type}")
    private String cacheType;
    @Value("${server.session-timeout}")
    private int tomcatTimeout;
}

配置文件:

pom.xml原文件:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

問題原因

pom.xml中的resource設(shè)置的不正確

pom.xml修改后:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
</build>

思考

比較神奇的是,修改pom文件后啟動(dòng)成功了,然后再把它改回原來的樣子,也不會(huì)報(bào)錯(cuò)了。Maven clean,Rebuild Project等操作后重啟也都可以的。有點(diǎn)搞不懂。

拓展閱讀

  • resources:描述工程中資源的位置 
  • targetPath:指定build資源到哪個(gè)目錄,默認(rèn)是base directory
  • filtering:指定是否將filter文件(即build下的filters里定義的*.property文件)的變量值在這個(gè)resource文件有效,例如上面就指定那些變量值在configuration文件無效。
  • directory:指定屬性文件的目錄,build的過程需要找到它,并且將其放到targetPath下,默認(rèn)的directory是${basedir}/src/main/resources
  • includes:指定包含文件的patterns,符合樣式并且在directory目錄下的文件將會(huì)包含進(jìn)project的資源文件。
  • excludes:指定不包含在內(nèi)的patterns,如果inclues與excludes有沖突,那么excludes勝利,那些符合沖突的樣式的文件是不會(huì)包含進(jìn)來的。
  • testResources:這個(gè)模塊包含測(cè)試資源元素,其內(nèi)容定義與resources類似,不同的一點(diǎn)是默認(rèn)的測(cè)試資源路徑是${basedir}/src/test/resources,測(cè)試資源是不部署的。

一般情況下:

如果沒有指定resources,自動(dòng)會(huì)將classpath下的src/main/java下的.class文件和src/main/resources下的.xml文件放到target里頭的classes文件夾下的package下的文件夾里。

如果設(shè)定了resources,那么默認(rèn)的就會(huì)失效,就會(huì)以指定的includes和excludes為準(zhǔn)。

例如,為了使打包的jar包里頭包含.java源文件。

工具類@Value取不到值

工具類里@Value取不到值,如下圖

原因是new的對(duì)象

改為

EncryptIdCardUtil類方法改為非靜態(tài)方法,ConnectService類由new改為@Autowired注入

RiskService里也由直接調(diào)用EncryptIdCardUtil里的靜態(tài)方法,改為EncryptIdCardUtil類@Autowired注入

就可以了

總結(jié):

1.@Value不能靜態(tài)成員上使用;

2.使用@Value讀取屬性值的類對(duì)象需要交給spring容器管理。

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

相關(guān)文章

  • 基于JVM性能監(jiān)控命令介紹

    基于JVM性能監(jiān)控命令介紹

    下面小編就為大家?guī)硪黄贘VM性能監(jiān)控命令介紹。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 解決SpringBoot運(yùn)行Test時(shí)報(bào)錯(cuò):SpringBoot Unable to find

    解決SpringBoot運(yùn)行Test時(shí)報(bào)錯(cuò):SpringBoot Unable to find

    這篇文章主要介紹了SpringBoot運(yùn)行Test時(shí)報(bào)錯(cuò):SpringBoot Unable to find a @SpringBootConfiguration,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring負(fù)載均衡LoadBalancer使用詳解

    Spring負(fù)載均衡LoadBalancer使用詳解

    這篇文章主要介紹了Spring負(fù)載均衡LoadBalancer使用詳解,Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客戶端負(fù)載均衡器, 用來替代Ribbon,Spring官方提供了兩種客戶端都可以使用loadbalancer,需要的朋友可以參考下
    2023-11-11
  • 詳解Mybatis極其(最)簡(jiǎn)(好)單(用)的一個(gè)分頁(yè)插件

    詳解Mybatis極其(最)簡(jiǎn)(好)單(用)的一個(gè)分頁(yè)插件

    這篇文章主要介紹了詳解Mybatis極其(最)簡(jiǎn)(好)單(用)的一個(gè)分頁(yè)插件,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-12-12
  • Java Web實(shí)現(xiàn)添加定時(shí)任務(wù)的方法示例

    Java Web實(shí)現(xiàn)添加定時(shí)任務(wù)的方法示例

    這篇文章主要介紹了Java Web實(shí)現(xiàn)添加定時(shí)任務(wù)的方法,涉及java web定時(shí)任務(wù)控制類定義、調(diào)用及監(jiān)聽器定義、添加等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java多線程繼承Thread類詳解

    Java多線程繼承Thread類詳解

    Java多線程的兩種實(shí)現(xiàn)方式:繼承Thread類 & 實(shí)現(xiàn)Runable接口,今天我們來學(xué)習(xí)下繼承Thread類,希望大家能夠喜歡
    2016-06-06
  • IDEA2020.2.3

    IDEA2020.2.3 "reading maven projects"卡住的問題

    這篇文章主要介紹了IDEA2020.2.3 "reading maven projects"卡住的問題及問題原因探究,通過多種方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-10-10
  • Spring中@Async用法詳解及簡(jiǎn)單實(shí)例

    Spring中@Async用法詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Spring中@Async用法詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java中計(jì)算時(shí)間差的方法

    Java中計(jì)算時(shí)間差的方法

    這篇文章主要介紹了Java中計(jì)算時(shí)間差的方法,實(shí)例分析了java常見的三種計(jì)算時(shí)間差的技巧,需要的朋友可以參考下
    2015-06-06
  • idea2023.3安裝及配置詳細(xì)圖文教程

    idea2023.3安裝及配置詳細(xì)圖文教程

    IDEA全稱IntelliJ?IDEA,是Java語(yǔ)言對(duì)的集成開發(fā)環(huán)境,IDEA在業(yè)界被認(rèn)為是公認(rèn)最好的Java開發(fā)工具,這篇文章主要給大家介紹了關(guān)于idea2023.3安裝及配置的相關(guān)資料,需要的朋友可以參考下
    2023-11-11

最新評(píng)論