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

SpringBoot的@Value注解如何設(shè)置默認(rèn)值

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

@Value注解設(shè)置默認(rèn)值

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

此時,需要對@Value對應(yīng)的值進(jìn)行配置,或設(shè)置默認(rèn)值。

設(shè)置方法如下:

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

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

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

@Value注解默認(rèn)值使用及效果測試

使用@Value注解的代碼

注意事項:

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

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

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

(4)${address-config:浙江省杭州市西湖區(qū)} address-config為配置文件屬性名,如果配置文件沒有配則使用默認(rèn)值,當(dāng)前默認(rèn)值為‘浙江省杭州市西湖區(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("測試結(jié)束1");
    }

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

測試結(jié)果

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

最新評論

聊城市| 达日县| 云南省| 喜德县| 绥德县| 奈曼旗| 南陵县| 巩留县| 弥渡县| 美姑县| 阳江市| 靖边县| 桐梓县| 西乌珠穆沁旗| 丁青县| 马边| 华蓥市| 香格里拉县| 宜宾市| 平湖市| 南城县| 普宁市| 乡宁县| 七台河市| 商洛市| 潞城市| 金秀| 绥芬河市| 攀枝花市| 瑞昌市| 饶平县| 含山县| 二手房| 治县。| 大同市| 水城县| 凤城市| 革吉县| 丹巴县| 博客| 邻水|