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

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

 更新時間:2022年03月18日 17:24:47   作者:darkwb09  
這篇文章主要介紹了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還支持層級結構、 布爾、集合等類型的值注入

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

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

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

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

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

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

配置文件注入值數據校驗

@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;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

    Java 二叉樹遍歷的常用方法

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

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

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

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

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

    使用httpclient實現免費的google翻譯api

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

    深入剖析Java ReentrantLock的源碼

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

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

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

    PowerJob的TransportServiceAware工作流程源碼解讀

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

    Java調用groovy腳本的方式分享

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

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

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

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

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

最新評論

永清县| 和田县| 中超| 禹城市| 江西省| 镇康县| 屏东县| 施秉县| 铜川市| 财经| 麟游县| 英吉沙县| 菏泽市| 金塔县| 东港市| 青铜峡市| 樟树市| 仪陇县| 喜德县| 穆棱市| 菏泽市| 花垣县| 井陉县| 涿鹿县| 台前县| 宜城市| 崇仁县| 和龙市| 祁东县| 马山县| 甘孜| 邵东县| 故城县| 阳高县| 珠海市| 新巴尔虎左旗| 松溪县| 博兴县| 宁化县| 中江县| 五常市|