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

springboot如何通過@Value,@ConfigurationProperties獲取配置

 更新時間:2022年03月18日 17:24:47   作者:darkwb09  
這篇文章主要介紹了springboot如何通過@Value,@ConfigurationProperties獲取配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

通過@Value,@ConfigurationProperties獲取配置

spring boot 獲取配置項(xiàng)值

使用版本是1.5.4

舉例一個線程池的配置:

在application.yml添加配置項(xiàng)及值

? ? # 線程池配置
? ? taskexecutor:
? ? ? corePoolSize: 5
? ? ? maxPoolSize: 10
? ? ? queueCapacity: 25

通過@Value 獲取值

@Configuration
@EnableAsync
public class ExecutorConfig {
? ? @Value("${taskexecutor.corePoolSize}")
? ? private int corePoolSize;
? ? @Value("${taskexecutor.maxPoolSize}")
? ? private int maxPoolSize;
? ? @Value("${taskexecutor.queueCapacity}")
? ? private int queueCapacity;
? ? @Bean
? ? public Executor getAsyncExecutor() {
? ? ? ? ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
? ? ? ? executor.setCorePoolSize(corePoolSize);
? ? ? ? executor.setMaxPoolSize(maxPoolSize);
? ? ? ? executor.setQueueCapacity(queueCapacity);
? ? ? ? executor.setThreadNamePrefix("TaskExecutor-");
? ? ? ? executor.initialize();
? ? ? ? return executor;
? ? }
? ? }

通過@ConfigurationProperties 獲取值 

? ? @Configuration
? ? @EnableAsync
? ? @ConfigurationProperties(ignoreUnknownFields = false,prefix = "taskexecutor")
? ? public class ExecutorConfig {
? ? private int corePoolSize;
? ? private int maxPoolSize;
? ? private int queueCapacity;
? ? @Bean
? ? public Executor getAsyncExecutor() {
? ? ? ? ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
? ? ? ? executor.setCorePoolSize(corePoolSize);
? ? ? ? executor.setMaxPoolSize(maxPoolSize);
? ? ? ? executor.setQueueCapacity(queueCapacity);
? ? ? ? executor.setThreadNamePrefix("TaskExecutor-");
? ? ? ? executor.initialize();
? ? ? ? return executor;
? ? }
? ? }

通過@ConfigurationProperties加載配置文件,將配置項(xiàng)與bean及屬性關(guān)聯(lián),指定ignoreUnknownFields當(dāng)有屬性未匹配到值時會拋出異常,用prefix指定配置項(xiàng)的前綴。

@ConfigurationProperties還支持層級結(jié)構(gòu)、 布爾、集合等類型的值注入

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-typesafe-configuration-properties

說下@ConfigurationProperties和@Value區(qū)別

 @Configuration@Value
功能批量注入配置文件中的屬性一個個指定
松散綁定(松散語法)支持不支持
SPEL語法不支持支持
JSR303數(shù)據(jù)校驗(yàn)支持不支持
復(fù)雜類型封裝支持不支持

配置文件yml還是properties他們都能獲取到值;

如果說, 只是在某個業(yè)務(wù)邏輯中需要獲取一項(xiàng)配置文件中的某項(xiàng)值, 使用@Value

如果說,專門編寫了一個javaBean 來和配置文件進(jìn)行映射,我們就直接使用@ConfigurationProperties;

配置文件注入值數(shù)據(jù)校驗(yàn)

@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
 
    /**
     * <bean class="Person">
     *      <property name="lastName" value="字面值/${key} 從環(huán)境變量,配置文件中獲取值/#{Spel}"></property>
     * </bean>
     */
    //Value("${person.last-name}")
    //lastName必須為郵箱格式
    @Email
    private String lastName;
    //@Value("#{11*2}")
    private Integer age;
    //@Value("true")
    private Boolean boss;
    private Date birth;
    private Map<String, Object> maps;
    private List<Object> list;
    private Dog dog;

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

相關(guān)文章

  • Java 二叉樹遍歷的常用方法

    Java 二叉樹遍歷的常用方法

    二叉樹的遍歷可以說是解決二叉樹問題的基礎(chǔ)。我們常用的遍歷方式無外乎就四種 前序遍歷、中序遍歷、后續(xù)遍歷、層次遍歷 這四種。
    2021-05-05
  • springboot中引入日志文件生成的配置詳解

    springboot中引入日志文件生成的配置詳解

    本文主要介紹了springboot中引入日志文件生成的配置詳解,包括日志級別的設(shè)置、日志格式的配置以及日志輸出的位置等,從而幫助開發(fā)者更好地進(jìn)行開發(fā)與調(diào)試
    2023-10-10
  • 第一次使用Android Studio時你應(yīng)該知道的一切配置(推薦)

    第一次使用Android Studio時你應(yīng)該知道的一切配置(推薦)

    這篇文章主要介紹了第一次使用Android Studio時你應(yīng)該知道的一切配置(推薦) ,需要的朋友可以參考下
    2017-09-09
  • 使用httpclient實(shí)現(xiàn)免費(fèi)的google翻譯api

    使用httpclient實(shí)現(xiàn)免費(fèi)的google翻譯api

    這篇文章主要介紹了使用httpclient實(shí)現(xiàn)免費(fèi)的google翻譯api的方法,大家參考使用吧
    2014-01-01
  • 深入剖析Java ReentrantLock的源碼

    深入剖析Java ReentrantLock的源碼

    ReentrantLock和Synchronized都是Java開發(fā)中最常用的鎖,與Synchronized這種JVM內(nèi)置鎖不同的是,ReentrantLock提供了更豐富的語義。本文就來深入剖析一下ReentrantLock源碼,需要的可以參考一下
    2022-11-11
  • spring常用注解開發(fā)一個RESTful接口示例

    spring常用注解開發(fā)一個RESTful接口示例

    這篇文章主要為大家介紹了使用spring常用注解開發(fā)一個RESTful接口示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • PowerJob的TransportServiceAware工作流程源碼解讀

    PowerJob的TransportServiceAware工作流程源碼解讀

    這篇文章主要介紹了PowerJob的TransportServiceAware工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Java調(diào)用groovy腳本的方式分享

    Java調(diào)用groovy腳本的方式分享

    Groovy?是一種基于?JVM?的動態(tài)語言,與?Java?語言緊密集成,可以很方便地在?Java?項(xiàng)目中使用。本文為大家整理了Java調(diào)用groovy腳本的幾種方式,希望對大家有所幫助
    2023-04-04
  • Java多線程volatile原理及用法解析

    Java多線程volatile原理及用法解析

    這篇文章主要介紹了Java多線程volatile原理及用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot+Vue跨域配置(CORS)問題得解決過程

    SpringBoot+Vue跨域配置(CORS)問題得解決過程

    在使用 Spring Boot 和 Vue 開發(fā)前后端分離的項(xiàng)目時,跨域資源共享(CORS)問題是一個常見的挑戰(zhàn),接下來,我將分享我是如何一步步解決這個問題的,包括中間的一些試錯過程,希望能夠幫助到正在經(jīng)歷類似問題的你
    2024-08-08

最新評論

恩平市| 绥德县| 普格县| 平顺县| 印江| 米脂县| 汤阴县| 汤原县| 奈曼旗| 丰台区| 澄江县| 黄浦区| 兴安县| 永嘉县| 桑日县| 宣武区| 津南区| 巴塘县| 陇西县| 镇沅| 大田县| 贞丰县| 城固县| 江城| 筠连县| 嘉义县| 玉屏| 龙游县| 汝阳县| 阳山县| 揭东县| 夏河县| 临夏县| 延寿县| 商都县| 商丘市| 法库县| 酉阳| 临泽县| 舞阳县| 元江|