中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot怎么通過@Value,@ConfigurationProperties獲取配置

發布時間:2022-03-19 08:56:26 來源:億速云 閱讀:210 作者:iii 欄目:開發技術

本篇內容主要講解“springboot怎么通過@Value,@ConfigurationProperties獲取配置”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot怎么通過@Value,@ConfigurationProperties獲取配置”吧!

通過@Value,@ConfigurationProperties獲取配置

spring boot 獲取配置項值

使用版本是1.5.4

舉例一個線程池的配置:

在application.yml添加配置項及值

    # 線程池配置
    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加載配置文件,將配置項與bean及屬性關聯,指定ignoreUnknownFields當有屬性未匹配到值時會拋出異常,用prefix指定配置項的前綴。

@ConfigurationProperties還支持層級結構、 布爾、集合等類型的值注入

說下@ConfigurationProperties和@Value區別

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

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

如果說, 只是在某個業務邏輯中需要獲取一項配置文件中的某項值, 使用@Value

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

配置文件注入值數據校驗

@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
 
    /**
     * <bean class="Person">
     *      <property name="lastName" value="字面值/${key} 從環境變量,配置文件中獲取值/#{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;

到此,相信大家對“springboot怎么通過@Value,@ConfigurationProperties獲取配置”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安吉县| 阜平县| 岗巴县| 阜宁县| 青浦区| 嵊泗县| 乐亭县| 郯城县| 五峰| 松滋市| 赤峰市| 桐梓县| 灵璧县| 米脂县| 巴彦淖尔市| 信阳市| 禄丰县| 鄂尔多斯市| 大冶市| 遵义市| 加查县| 青龙| 元氏县| 长乐市| 垣曲县| 武汉市| 虹口区| 手游| 油尖旺区| 元江| 阜康市| 海南省| 长葛市| 武乡县| 彰化市| 巩义市| 武邑县| 江孜县| 阜新| 长泰县| 新龙县|