亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

青海省| 台江县| 龙井市| 宁阳县| 抚远县| 南投市| 厦门市| 浪卡子县| 福清市| 西峡县| 蒙山县| 南木林县| 翼城县| 化德县| 墨玉县| 民和| 寿阳县| 正镶白旗| 修水县| 泊头市| 新乡市| 南康市| 乐东| 赤壁市| 色达县| 晋宁县| 乌苏市| 阿城市| 宁河县| 黔南| 常德市| 南澳县| 长泰县| 太保市| 光山县| 新干县| 吐鲁番市| 天峨县| 绥中县| 永德县| 明溪县|