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

Spring?Boot?中?@Value注解的使用示例詳解

 更新時間:2025年05月16日 09:55:32   作者:wdwc2  
@Value是Spring提供的一個注解,用于從配置文件或其他來源(如系統(tǒng)環(huán)境變量、SpEL表達式)中讀取值并注入到Bean的字段或方法參數中,這篇文章主要介紹了SpringBoot中@Value注解的使用,需要的朋友可以參考下

一、前言

在 Spring Boot 項目中通常需要從 application.propertiesapplication.yml 配置文件中讀取配置信息。@Value 注解提供了一種簡單的方式來將配置值注入到 Spring 組件中。

二、@Value 注解簡介

@Value 是 Spring 提供的一個注解,用于從配置文件或其他來源(如系統(tǒng)環(huán)境變量、SpEL 表達式)中讀取值并注入到 Bean 的字段或方法參數中。其基本語法如下:

@Value("${property.key}")
private String propertyValue;

三、@Value 注解的常見用法

1. 讀取 application.properties 或 application.yml 配置值

(1)配置文件示例

application.properties

app.name=Spring Boot Demo
app.version=1.0.0

application.yml

app:
  name: Spring Boot Demo
  version: 1.0.0

(2)Java 代碼示例

@Component
public class AppConfig {
    @Value("${app.name}")
    private String appName;
    @Value("${app.version}")
    private String appVersion;
    public void printConfig() {
        System.out.println("Application Name: " + appName);
        System.out.println("Application Version: " + appVersion);
    }
}

(3)測試輸出

Application Name: Spring Boot Demo

Application Version: 1.0.0

2. 使用 @Value 設置默認值

如果配置文件中未定義某個屬性,則 @Value 注解可以提供一個默認值。默認值的語法是 :${defaultValue}

@Component
public class DefaultValueExample {
    @Value("${app.author:Unknown Author}")
    private String author;
    public void printAuthor() {
        System.out.println("Application Author: " + author);
    }
}

如果 application.propertiesapplication.yml 中未配置 app.author,則輸出:

Application Author: Unknown Author

3. 讀取系統(tǒng)環(huán)境變量和 Java 運行時參數

@Value 也可以用于讀取系統(tǒng)環(huán)境變量或 -D 方式傳遞的 JVM 運行參數:

@Component
public class EnvConfig {
    @Value("${JAVA_HOME}")
    private String javaHome;
    @Value("${user.name}")
    private String userName;
    public void printSystemProperties() {
        System.out.println("JAVA_HOME: " + javaHome);
        System.out.println("User Name: " + userName);
    }
}

如果運行環(huán)境變量設置了 JAVA_HOME=/usr/lib/jvm/java-11-openjdk,則輸出:

JAVA_HOME: /usr/lib/jvm/java-11-openjdk
User Name: admin

4. 結合 Spring Expression Language (SpEL)

@Value 注解支持 Spring 表達式語言(SpEL),可用于動態(tài)計算值。

(1)基本 SpEL 表達式

@Component
public class SpELExample {
    @Value("#{2 * 5}")
    private int result;
    public void printResult() {
        System.out.println("Result: " + result);
    }
}

輸出:

Result: 10

(2)引用 Bean 的屬性

@Component
public class AnotherBean {
    private String message = "Hello from AnotherBean";
    public String getMessage() {
        return message;
    }
}
@Component
public class BeanReferenceExample {
    @Autowired
    private AnotherBean anotherBean;
    @Value("#{anotherBean.message}")
    private String messageFromAnotherBean;
    public void printMessage() {
        System.out.println(messageFromAnotherBean);
    }
}

輸出:

Hello from AnotherBean

5. 讀取數組、集合和 Map 類型數據

(1)讀取數組

app.servers=192.168.1.1,192.168.1.2,192.168.1.3
@Component
public class ArrayConfig {
    @Value("${app.servers}")
    private String[] servers;
    public void printServers() {
        System.out.println(Arrays.toString(servers));
    }
}

輸出:

[192.168.1.1, 192.168.1.2, 192.168.1.3]

(2)讀取 List

@Component
public class ListConfig {
    @Value("#{'${app.servers}'.split(',')}")
    private List<String> serverList;
    public void printServerList() {
        System.out.println(serverList);
    }
}

輸出:

[192.168.1.1, 192.168.1.2, 192.168.1.3]

(3)讀取 Map

app.db.config=username:admin,password:123456,url:jdbc:mysql://localhost:3306/test
@Component
public class MapConfig {
    @Value("#{${app.db.config}}")
    private Map<String, String> dbConfig;
    public void printDbConfig() {
        System.out.println(dbConfig);
    }
}

輸出:

{username=admin, password=123456, url=jdbc:mysql://localhost:3306/test}

四、@Value 和 @ConfigurationProperties 對比

特性@Value@ConfigurationProperties
作用范圍適用于單個值注入適用于整個配置對象映射
支持的數據類型主要用于 String、基本類型、數組可綁定復雜對象(如 List、Map、自定義對象)
代碼簡潔性適用于少量配置參數適用于大量配置參數
是否支持 SpEL支持不支持

示例:@ConfigurationProperties 用法

app.name=Spring Boot Demo
app.version=1.0.0
@Configuration
@ConfigurationProperties(prefix = "app")
public class AppProperties {
    private String name;
    private String version;
    // getter & setter
}

五、總結

  • @Value 注解用于將配置文件中的值注入到 Spring 組件中。
  • @Value 可用于讀取 application.properties 或 application.yml 中的值,并支持默認值。
  • @Value 還能用于讀取環(huán)境變量、JVM 運行參數和 SpEL 表達式。
  • @Value 可以解析數組、List、Map 等數據結構。
  • 對于復雜配置推薦使用 @ConfigurationProperties,而 @Value 適用于簡單值注入。

到此這篇關于Spring Boot 中 @Value注解的使用示例詳解的文章就介紹到這了,更多相關Spring Boot @Value注解使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java使用pdfbox實現給pdf文件加圖片水印

    Java使用pdfbox實現給pdf文件加圖片水印

    有時候需要給pdf加水印,市面上工具都是收費的要會員,還是自食其力吧;嘗試過 spire.pdf.free 那個超過10頁就不行了!所以本文還是使用了pdfbox,感興趣的可以了解一下
    2022-11-11
  • 5個JAVA入門必看的經典實例

    5個JAVA入門必看的經典實例

    這篇文章主要為大家詳細介紹了5個JAVA入門必看的經典實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • spring?boot教程之建立第一個HelloWorld

    spring?boot教程之建立第一個HelloWorld

    這篇文章主要介紹了spring?boot教程之建立第一個HelloWorld的相關資料,需要的朋友可以參考下
    2022-08-08
  • SpringBoot使用Redis緩存MySql的方法步驟

    SpringBoot使用Redis緩存MySql的方法步驟

    本文主要介紹了SpringBoot使用Redis緩存MySql的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Maven最佳實踐之一個好的parent依賴基礎

    Maven最佳實踐之一個好的parent依賴基礎

    今天小編就為大家分享一篇關于Maven最佳實踐之一個好的parent依賴基礎,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java字符串逆序方法詳情

    Java字符串逆序方法詳情

    這篇文章主要介紹了Java字符逆序,字符逆序主要原理就是將一個字符串str的內容顛倒過來,并輸出,下文操作分享需要的小伙伴可以參考一下
    2022-03-03
  • RocketMQ消息生產者是如何選擇Broker示例詳解

    RocketMQ消息生產者是如何選擇Broker示例詳解

    這篇文章主要為大家介紹了RocketMQ消息生產者是如何選擇Broker示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 詳細解讀Java編程中面向字符的輸入流

    詳細解讀Java編程中面向字符的輸入流

    這篇文章主要介紹了Java中面向字符的輸入和輸出流,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • Java里遍歷Map集合的多種方法總結

    Java里遍歷Map集合的多種方法總結

    Java中的Map是一種鍵值對映射的數據結構,它提供了一些常用的方法用于獲取、添加、刪除和修改元素,在Java中,有多種方式可以遍歷Map,本文將介紹其中的四種常用方式,并比較它們之間的優(yōu)缺點,需要的朋友可以參考下
    2024-07-07
  • springmvc參數為對象,數組的操作

    springmvc參數為對象,數組的操作

    這篇文章主要介紹了springmvc參數為對象,數組的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

名山县| 扎兰屯市| 陆川县| 靖安县| 綦江县| 通海县| 独山县| 吴川市| 无棣县| 肇源县| 增城市| 孝昌县| 来安县| 迁安市| 霍城县| 富民县| 伊金霍洛旗| 台州市| 鸡东县| 阳泉市| 获嘉县| 江阴市| 吉木乃县| 昌宁县| 灵璧县| 攀枝花市| 丹巴县| 秀山| 安徽省| 沙洋县| 兰溪市| 杭锦后旗| 周宁县| 阆中市| 临夏县| 永丰县| 镇平县| 望城县| 扶绥县| 日照市| 那曲县|