springboot的@Value中#和$區(qū)別詳解
@Value中$的使用
@Value注解的作用主要可以給屬性直接賦值、也可以讀取配置文件中的值給屬性賦值。
$用來(lái)讀取配置文件中的值。
package com.morris.spring.boot.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
@Data
public class AtValueConfig {
// 直接賦值
@Value("hello")
private String hello; // hello
// 讀取配置文件中的value.name
@Value("${value.name}")
private String name; // morris
// 讀取配置文件中的value.age,不存在給個(gè)默認(rèn)值
@Value("${value.age:18}")
private Integer age; // 18
private Integer num;
// 通過(guò)set方法注入,這樣可以對(duì)類型不匹配的異常進(jìn)行捕獲
@Value("${value.num:xxx}")
public void setNum(String num) {
try {
this.num = Integer.parseInt(num);
} catch (Exception e) {
// ignore
}
}
}
@Value中#的使用
#其實(shí)是Spring Expression Language (SpEL)表達(dá)式,可以在注入屬性前進(jìn)行一些簡(jiǎn)單的計(jì)算等邏輯。
@Value(“#{}”)中使用關(guān)系操作符:
// Relational Operators 關(guān)系操作符
@Value("#{2 == 2}")
private boolean b1; // true
@Value("#{2 < 1}")
private boolean b2; // false
@Value("#{2 > 1}")
private boolean b3; // true
@Value(“#{}”)中使用邏輯操作符:
// Logical Operators 邏輯操作符
@Value("#{true && false}")
private boolean b4; // false
@Value("#{true || false}")
private boolean b5; // true
@Value("#{!false}")
private boolean b6; // true
@Value(“#{}”)中使用算數(shù)操作符:
// Mathematical Operators 算數(shù)操作符
// Addition
@Value("#{1 + 1}")
private int two; // 2
@Value("#{'test' + ' ' + 'string'}")
private String testString; // 'test string'
// Subtraction
@Value("#{1 - -3}")
private int four; // 4
@Value("#{1000.00 - 1e4}")
private double d; // -9000.0
// Multiplication
@Value("#{-2 * -3}")
private int six; // 6
@Value("#{2.0 * 3e0 * 4}")
private double twentyFour; // 24.0
// Division
@Value("#{6 / -3}")
private int minusTwo; // -2
@Value("#{8.0 / 4e0 / 2}")
private double one; // 1.0
// Modulus
@Value("#{7 % 4}")
private int three; // 3
@Value("#{18 / 5 % 3}")
private int zero; // 0
// Operator precedence
@Value("#{1+2-3*8}")
private int minusTwentyOne; // -21
@Value(“#{}”)中使用方法:
// 使用方法
@Value("#{'abc'.substring(1, 3)}")
private String bc; // bc
@Value("#{'123'.length}")
private int num; // 3
@Value中#和$結(jié)合使用
@Value中#和$結(jié)合使用注入list:
// 注入list
@Value("#{${value.list:'123,456,789'}.split(',')}")
private List<String> list;
@Value中#和$結(jié)合使用注入array:
// 注入數(shù)組
@Value("#{${value.array:'123,456,789'}.split(',')}")
private List<String> array;
@Value中#和$結(jié)合使用注入map:
// 注入map
@Value("#{${value.map:{'name':'morris','age':18}}}")
private Map<String, String> map;
到此這篇關(guān)于springboot的@Value中#和$區(qū)別詳解的文章就介紹到這了,更多相關(guān)@Value中#和$區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談線性表的原理及簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇淺談線性表的原理及簡(jiǎn)單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Java值得使用Lambda的8個(gè)場(chǎng)景合集
可能對(duì)不少人來(lái)說(shuō),Lambda顯得陌生又復(fù)雜,覺得Lambda會(huì)導(dǎo)致代碼可讀性下降,但畢竟2023年了,JDK都出了那么多新版本,是時(shí)候試試Lambda了2023-08-08
SpringMVC DispatcherServlet組件實(shí)現(xiàn)解析
這篇文章主要介紹了SpringMVC DispatcherServlet組件實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
idea快速實(shí)現(xiàn)將SpringBoot項(xiàng)目打包Docker鏡像并部署
本文主要介紹了idea快速實(shí)現(xiàn)將SpringBoot項(xiàng)目打包Docker鏡像并部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Spring boot+beetl+i18n國(guó)際化處理的方法
這篇文章主要介紹了Spring boot+beetl+i18n國(guó)際化處理的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Java中自動(dòng)裝箱、拆箱引起的耗時(shí)詳解
這篇文章主要給大家介紹了關(guān)于Java中自動(dòng)裝箱、拆箱引起的耗時(shí)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn)
這篇文章主要介紹了淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
HashMap紅黑樹入門(實(shí)現(xiàn)一個(gè)簡(jiǎn)單的紅黑樹)
紅黑樹(Red Black Tree) 是一種自平衡二叉查找樹,是在計(jì)算機(jī)科學(xué)中用到的一種數(shù)據(jù)結(jié)構(gòu),典型的用途是實(shí)現(xiàn)關(guān)聯(lián)數(shù)組。 紅黑樹發(fā)明時(shí)被稱為平衡二叉B樹,后來(lái)修改為如今的“紅黑樹”2021-06-06
SpringMVC @RequestMapping注解應(yīng)用方法示例講解
通過(guò)@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09

