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

SpringBoot中@Value注入失敗問題解決步驟

 更新時(shí)間:2025年09月19日 12:10:10   作者:待續(xù)301  
本文給大家介紹SpringBoot中@Value注入失敗問題解決步驟,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

SpringBoot中@Value注入失敗問題解決步驟

1. 第一步檢測語法是否正確

@Value("${aes.key}")
private String key;
@Value("${aes.secret}")
private String secret;

2.第二步檢測配置文件中是否有進(jìn)行配置

aes:
  key: xxxx
  secret: xxxxxxx

3.第三步檢測類是否增加了能被spring管理的注解

在spring中,使用了spring的注解,那么就需要使用spring來進(jìn)行管理對象,而不能自己進(jìn)行new,否則就會(huì)導(dǎo)致失敗。例如類 @Controller @Service @Component 等能被spring管理的注解

4.第四步檢測配置yml

若有多個(gè)配置必須每個(gè)配置中都添加上配置

aes:
  key: xxxx
  secret: xxxxxxx

5.第五步

application.ymlbootStrap.yml在同一目錄下,則bootStrap.yml的加載順序要高于application.yml,如果當(dāng)前配置文件名稱為application.yml,即使配置文件中存在所使用的屬性key,使用@Value注解也會(huì)報(bào)錯(cuò),因?yàn)樵趩?dòng)項(xiàng)目時(shí)@Value只能檢索到優(yōu)先及最高的配置文件,也就是bootStrap.yml

原理:

  • bootstrap.yml用于應(yīng)用程序上下文的引導(dǎo)階段,由父Spring ApplicationContext加載。bootstrap.yml 可以理解成系統(tǒng)級別的一些參數(shù)配置,這些參數(shù)一般是不會(huì)變動(dòng)的。
  • application.yml可以用來定義應(yīng)用級別的,如果搭配 spring-cloud-config 使用 application.yml 里面定義的文件可以實(shí)現(xiàn)動(dòng)態(tài)替換。

補(bǔ)充:Spring Boot 項(xiàng)目中 @Value 注解失效問題

Spring Boot 項(xiàng)目中 @Value 注解失效問題

問題描述

在 Spring Boot 項(xiàng)目中,我們使用 @Value 注解從 application.yml 配置文件中注入配置值。但是,由于同事直接 new 創(chuàng)建了含有 @Value 注解的類實(shí)例,導(dǎo)致注解失效。

配置文件 application.yml

# ${service-model} 讀取的是 pom.xml 文件中自定義的屬性,可以直接定義,例如:test
service-model: ${service-model}

實(shí)體類 Demo

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class Demo {
    @Value("${service-model}")
    private String serviceModel;
    public void getValue() {
        System.out.println("serviceModel = " + serviceModel);
    }
}
// 輸出結(jié)果為 null,因?yàn)?@Value 注解失效

處理邏輯

由于 @Value 注解失效,我們使用 SnakeYAML 庫直接讀取 yml 配置文件并獲取配置信息。

導(dǎo)入依賴

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.31</version>
</dependency>

創(chuàng)建讀取配置工具類 YamlUtil

import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
/**
 * 獲取 YAML 配置文件參數(shù)
 */
public class YamlUtil {
    public static Map<String, Object> getConfigInfo(String fileName) {
        Yaml yaml = new Yaml(new Constructor(Map.class));
        Map<String, Object> config = new HashMap<>();
        try (InputStream inputStream = YamlUtil.class.getClassLoader().getResourceAsStream(fileName)) {
            // 加載 YAML 文件
            config = yaml.load(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return config;
    }
}

使用方法

import lombok.extern.slf4j.Slf4j;
@Slf4j
public class Demo {
    public void getValue() {
        Map<String, Object> configInfo = YamlUtil.getConfigInfo("application.yml");
        String serviceModel = (String) configInfo.get("service-model");
        System.out.println("serviceModel = " + serviceModel);
    }
}
// 輸出結(jié)果為 "test",因?yàn)橥ㄟ^ YamlUtil 成功讀取了配置文件

總結(jié)

通過上述步驟,我們解決了 @Value 注解失效的問題,并提供了一個(gè)替代方案來讀取配置文件中的值。這樣可以確保即使在 @Value 注解無法正常工作的情況下,也能正確地獲取配置信息。

到此這篇關(guān)于SpringBoot中@Value注入失敗問題解決步驟的文章就介紹到這了,更多相關(guān)SpringBoot @Value注入失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

宁陵县| 渝北区| 兴安盟| 自贡市| 潜山县| 红河县| 南郑县| 连城县| 建湖县| 富蕴县| 类乌齐县| 北流市| 土默特左旗| 镇赉县| 邯郸市| 侯马市| 滨州市| 龙川县| 岑巩县| 伽师县| 武隆县| 信宜市| 惠来县| 汶上县| 开原市| 托克逊县| 顺义区| 山丹县| 岗巴县| 宜宾市| 保定市| 普格县| 扎兰屯市| 扶风县| 津市市| 柯坪县| 镇巴县| 苏尼特左旗| 东丽区| 宁波市| 遂平县|