javascript
在Spring Boot中使用 @ConfigurationProperties 注解
@ConfigurationProperties根據(jù)類型校驗和管理application中的bean。
Spring Boot 使用一些松的規(guī)則來綁定屬性到@ConfigurationProperties?bean 并且支持分層結(jié)構(gòu)(hierarchical structure)。
開始創(chuàng)建一個@ConfigurationProperties?bean:
?mail.properties 文件
mail.host=localhost mail.port=25 mail.smtp.auth=false mail.smtp.starttls-enable=false mail.from=me@localhost mail.username= mail.password=上例中我們用@ConfigurationProperties注解就可以綁定屬性了。ignoreUnknownFields = false告訴Spring Boot在有屬性不能匹配到聲明的域的時候拋出異常。開發(fā)的時候很方便!?prefix?用來選擇哪個屬性的prefix名字來綁定。
請注意setters 和 getters 需要在@ConfigurationProperties?bean中創(chuàng)建! 與@Value注解相反, 這帶來了代碼中的一些困擾 (特別是簡單的業(yè)務(wù)中,個人觀點).
OK,但是我們需要用屬性來配置 application. 有至少兩種方式來創(chuàng)建@ConfigurationProperties。即可以搭配@Configuration?注解來提供 @Beans 也可以單獨使用并注入 @Configuration bean。
方案2
我們和上面例子一樣注解屬性,然后用 Spring的@Autowire來注入 mail configuration bean:
@Configuration @EnableConfigurationProperties(MailProperties.class)public class MailConfiguration { @Autowired private MailProperties mailProperties; @Bean public JavaMailSender javaMailSender() {// omitted for readability }}請注意@EnableConfigurationProperties注解。 這個注解告訴Spring Boot?使能支持@ConfigurationProperties。如果不指定會看到如下異常:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [demo.mail.MailProperties] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}注意: 還有其他辦法 (Spring Boot 總是有其他辦法!) 讓@ConfigurationProperties?beans 被添加 – 用@Configuration或者?@Component注解, 這樣就可以在 component scan時候被發(fā)現(xiàn)了。
不過也有采用讀文件的方式去做的
這個就不詳細(xì)展開了
spring.profiles.active=testdb application.propreries 里面可以這樣配置分支來區(qū)分線上 @Profile("testdb")然后通過這個注解去執(zhí)行
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhujiabin/p/9856876.html
總結(jié)
以上是生活随笔為你收集整理的在Spring Boot中使用 @ConfigurationProperties 注解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一图看懂hadoop分布式文件存储系统H
- 下一篇: 练习五:整数顺序排列