欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring中@ConfigurationProperties的用法解析

 更新時(shí)間:2023年11月07日 11:19:31   作者:張紫娃  
這篇文章主要介紹了Spring中@ConfigurationProperties的用法解析,傳統(tǒng)的Spring一般都是基本xml配置的,后來(lái)spring3.0新增了許多java config的注解,特別是spring boot,基本都是清一色的java config,需要的朋友可以參考下

@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)文章

最新評(píng)論