Spring中@ConfigurationProperties的用法解析
@ConfigurationProperties的用法
作用: 通過(guò)與其他注解配合使用,能夠?qū)崿F(xiàn)Bean的按需配置 可以放哪里: 類上,方法上
作用于方法
使用條件: 當(dāng)將@ConfigurationProperties作用于方法上時(shí),該方法需要有@Bean且所屬類需要有@Configuration 使用場(chǎng)景: 比較常見(jiàn)的就是配置讀寫(xiě)分離的場(chǎng)景
spring.datasource.druid.write.url=jdbc:mysql://localhost:3306/jpa
spring.datasource.druid.write.username=root
spring.datasource.druid.write.password=1
spring.datasource.druid.write.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.read.url=jdbc:mysql://localhost:3306/jpa
spring.datasource.druid.read.username=root
spring.datasource.druid.read.password=1
spring.datasource.druid.read.driver-class-name=com.mysql.jdbc.Driver
@Configuration
public class DruidDataSourceConfig {
@Bean(name = "readDruidDataSource")
@ConfigurationProperties(prefix = "spring.datasource.druid.read")
public DataSource readDruidDataSource() {
return new DruidDataSource();
}
@Primary
@Bean(name = "writeDruidDataSource")
@ConfigurationProperties(prefix = "spring.datasource.druid.write")
public DataSource writeDruidDataSource() {
return new DruidDataSource();
}
}
作用于類
使用場(chǎng)景: 配置數(shù)據(jù)庫(kù)
# 配置文件內(nèi)容
spring.datasource.url=jdbc:mysql://127.0.0.1:8888/test?useUnicode=false&autoReconnect=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
@ConfigurationProperties(prefix = "spring.datasource")
@Component
public class DatasourcePro {
private String url;
private String username;
private String password;
private String driverClassName; // 配置文件中是driver-class-name, 轉(zhuǎn)駝峰命名便可以綁定成
private String type;
// standard getters and setters
}
@Controller
@RequestMapping(value = "/config")
public class ConfigurationPropertiesController {
@Autowired
private DatasourcePro datasourcePro;
@RequestMapping("/test")
@ResponseBody
public Map<String, Object> test(){
Map<String, Object> map = new HashMap<>();
map.put("url", datasourcePro.getUrl());
map.put("userName", datasourcePro.getUsername());
map.put("password", datasourcePro.getPassword());
map.put("className", datasourcePro.getDriverClassName());
map.put("type", datasourcePro.getType());
return map;
}
}總結(jié)
1、該注解有一個(gè) prefix 屬性,根據(jù)指定的前綴來(lái)綁定配置文件中的配置
2、@ConfigurationProperties 和 @value 有著相同的功能,@ConfigurationProperties 其實(shí)就類似于使用多個(gè) @Value 同時(shí)綁定,綁定的是對(duì)象;
3、 @ConfigurationProperties 修飾的POJO類的命名比較嚴(yán)格,必須和 prefix 的后綴名一致, 不然值會(huì)綁定不上。但是配置文件里蛇形命名變量 “driver-class-name” 和 POJO里面轉(zhuǎn)駝峰 命名屬性 “driverClassName” 可以綁定成功。
到此這篇關(guān)于Spring中@ConfigurationProperties的用法解析的文章就介紹到這了,更多相關(guān)@ConfigurationProperties的用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗的解決方案
這篇文章主要介紹了feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
springcloud中Feign超時(shí)提示Read timed out executing
Feign接口調(diào)用分兩層,Ribbon的調(diào)用和Hystrix調(diào)用,理論上設(shè)置Ribbon的時(shí)間即可,但是Ribbon的超時(shí)時(shí)間和Hystrix的超時(shí)時(shí)間需要結(jié)合起來(lái),這篇文章給大家介紹springcloud之Feign超時(shí)提示Read timed out executing POST問(wèn)題及解決方法,感興趣的朋友一起看看吧2024-01-01
IDEA的Web項(xiàng)目右鍵無(wú)法創(chuàng)建Servlet問(wèn)題解決辦法
這篇文章主要介紹了IDEA的Web項(xiàng)目右鍵無(wú)法創(chuàng)建Servlet問(wèn)題解決辦法的相關(guān)資料,在IDEA中新建Servlet時(shí)發(fā)現(xiàn)缺失選項(xiàng),可以通過(guò)在pom.xml文件中添加servlet依賴解決,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
springboot2.0?@Slf4j?log?彩色日志配置輸出到文件
這篇文章主要介紹了springboot2.0 @Slf4j log日志配置輸出到文件(彩色日志),解決方式是使用了springboot原生自帶的一個(gè)log框架,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-08-08
mybatis動(dòng)態(tài)插入list傳入List參數(shù)的實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了mybatis動(dòng)態(tài)插入list,Mybatis 傳入List參數(shù)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04
Java利用Geotools實(shí)現(xiàn)不同坐標(biāo)系之間坐標(biāo)轉(zhuǎn)換
GeoTools 是一個(gè)開(kāi)源的 Java GIS 工具包,可利用它來(lái)開(kāi)發(fā)符合標(biāo)準(zhǔn)的地理信息系統(tǒng)。本文將利用工具包Geotools實(shí)現(xiàn)不同坐標(biāo)系之間坐標(biāo)轉(zhuǎn)換,感興趣的可以了解一下2022-08-08
解決idea check out 切換分支時(shí)找不到需要的分支問(wèn)題
這篇文章主要介紹了解決idea check out 切換分支時(shí)找不到需要的分支問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02

