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

SpringBoot的@Value注解如何設置默認值

 更新時間:2023年02月13日 10:20:54   作者:程序新視界  
這篇文章主要介紹了SpringBoot的@Value注解如何設置默認值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@Value注解設置默認值

在Spring Boot中,如果使用@Value注解對屬性進行賦值,但如果在配置文件或啟動參數(shù)中未指定對應的參數(shù)值,則會拋出異常。異常信息往往是對應注入屬性的類實例化失敗。

此時,需要對@Value對應的值進行配置,或設置默認值。

設置方法如下:

@RestController
public class ConfigController {
?? ?// ①未指定默認值
?? ?@Value("${user.username}")
?? ?private String username;
?? ?
?? ?// ②指定默認值為“unknown”
?? ?@Value("${projectName:unknown}")
?? ?private String projectName;
}

針對以上兩個@Value的使用,如果username對應的屬性值未在application.properties文件中配置或未在java -jar命令中傳遞參數(shù),那么啟動時將拋出異常。

而針對第二種方式,通過“:”指定如果獲取不到該參數(shù)值時所使用的默認值,則啟動時不會出現(xiàn)異常信息。

@Value注解默認值使用及效果測試

使用@Value注解的代碼

注意事項:

(1)注解修飾的變量不能是final、static。

(2)使用@Component修飾所在類交給spring管理。

(3)使用時要用@Autowried注入,不能new對象。

(4)${address-config:浙江省杭州市西湖區(qū)} address-config為配置文件屬性名,如果配置文件沒有配則使用默認值,當前默認值為‘浙江省杭州市西湖區(qū)’。

注意使用的是${} 而不是 #{}

User.java

package com.oashiro.example.test;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class User{
    public String address;

    @Value("${address-config:浙江省杭州市西湖區(qū)}")
    public void steAddress(String address){
        this.address=address;
    }

    public String getAddress(){
        return this.address;
    }

    @Override
    public String toString() {
        return "User{" +
                "address='" + address + '\'' +
                '}';
    }
}

Junit測試

UserTest.java

package com.oashiro.example.test;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;

@SpringBootTest
class UserTest {

    @Autowired
    private User user;

    @BeforeEach
    public void setup(){
        System.out.println("開始測試1");
    }
    
	@AfterEach
    public void teardown(){
        System.out.println("測試結束1");
    }

    @Test
    public void printUser(){
        System.out.println(user);
        //預期結果(浙江?。┡c實際獲取的默認結果(浙江省杭州市西湖區(qū))作對比
        assertEquals("浙江省",user.getAddress());
    }
}

測試結果

在這里插入圖片描述

總結

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

相關文章

  • 解析springboot包裝controller返回值問題

    解析springboot包裝controller返回值問題

    這篇文章主要介紹了springboot包裝controller返回值問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 簡單了解Java編程中拋出異常的方法

    簡單了解Java編程中拋出異常的方法

    這篇文章主要介紹了Java編程中拋出異常的方法,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-11-11
  • Java輕松使用工具類實現(xiàn)獲取MP3音頻時長

    Java輕松使用工具類實現(xiàn)獲取MP3音頻時長

    在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用工具類來獲取一個MP3音頻文件的時間長度,感興趣的同學繼續(xù)往下閱讀吧
    2021-10-10
  • Java定時器Timer的源碼分析

    Java定時器Timer的源碼分析

    通過源碼分析,我們可以更深入的了解其底層原理。本文將通過Timer的源碼,帶大家深入了解Java?Timer的使用,感興趣的小伙伴可以了解一下
    2022-11-11
  • Maven項目外部jar包導入的實現(xiàn)示例

    Maven項目外部jar包導入的實現(xiàn)示例

    在Maven項目里,我們經常需要導入jar包依賴,本文主要介紹了Maven項目外部jar包導入的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • RestTemplate發(fā)送請求時Cookie的影響及注意事項說明

    RestTemplate發(fā)送請求時Cookie的影響及注意事項說明

    這篇文章主要介紹了RestTemplate發(fā)送請求時Cookie的影響及注意事項說明,具有很好的參考價值,希望對大家有所幫助。
    2023-07-07
  • idea全局設置Maven配置的實現(xiàn)步驟

    idea全局設置Maven配置的實現(xiàn)步驟

    本文主要介紹了idea全局設置Maven配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • java中的Struts2攔截器詳解

    java中的Struts2攔截器詳解

    本篇文章主要介紹了java中的Struts2攔截器淺解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • SpringBoot redis分布式緩存實現(xiàn)過程解析

    SpringBoot redis分布式緩存實現(xiàn)過程解析

    這篇文章主要介紹了SpringBoot redis分布式緩存實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • java的Jackson將json字符串轉換成泛型List

    java的Jackson將json字符串轉換成泛型List

    這篇文章主要介紹了java的Jackson將json字符串轉換成泛型List ,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-02-02

最新評論