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

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

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

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

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

此時(shí),需要對(duì)@Value對(duì)應(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;
}

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

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

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

使用@Value注解的代碼

注意事項(xiàng):

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

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

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

(4)${address-config:浙江省杭州市西湖區(qū)} address-config為配置文件屬性名,如果配置文件沒(méi)有配則使用默認(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測(cè)試

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("開(kāi)始測(cè)試1");
    }
    
	@AfterEach
    public void teardown(){
        System.out.println("測(cè)試結(jié)束1");
    }

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

測(cè)試結(jié)果

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

最新評(píng)論