spring boot 的注解

1. 获取配置文件属性值

配置文件获取属性值,最开始的方法是:

@Value("${a.b.c}")
private String aBC;

这种方式,只要这样写就OK 了。

2. spring boot 中 有另一种:

@ConfigurationProperties(value = "a.b")
public class OrderCenterKafkaConfig {

    private String c;

}

这种方式,不需要在 属性字段上加注解,但是需要在 类上加注解,并且 带了个 value,这个value 就是配置文件中 属性配置项的 共有的前缀。

但是,在使用这个注解的时候,需要一些注意的地方:

添加依赖:

        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<version>2.1.17.RELEASE</version>
		</dependency>

sping boot 启动类添加注解:

@EnableConfigurationProperties
@ConfigurationPropertiesScan

配置类 必须有 set 方法

@Data

 这样才可以使用 这个注解,麻烦是麻烦了点,但是 用起来倒是挺方便。

dynamic-datasource-spring-boot-starter-2.5.4.jar中的应用:

属性配置方式:

# Mysql 数据源配置
spring.datasource.dynamic.datasource.master.url = jdbc:mysql://localhost:3306/test
spring.datasource.dynamic.datasource.master.username = root
spring.datasource.dynamic.datasource.master.password = test123
spring.datasource.dynamic.datasource.master.driver-class-name = com.mysql.cj.jdbc.Driver

@Getter
@Setter
@ConfigurationProperties(prefix = "spring.datasource.dynamic")
public class DynamicDataSourceProperties {

    /**
     * 必须设置默认的库,默认master
     */
    private String primary = "master";

    // 省略    

    /**
     * 每一个数据源
     */

    // 这个 datasource 是配置中的 一个层级,这个层级下可以配置多个 属性体, 用map 接收

/*
spring.datasource.dynamic.datasource.master.url = jdbc:mysql://localhost:3306/test
spring.datasource.dynamic.datasource.master.username = root
spring.datasource.dynamic.datasource.master.password = test123
spring.datasource.dynamic.datasource.master.driver-class-name = com.mysql.cj.jdbc.Driver


spring.datasource.dynamic.datasource.follow.url = jdbc:mysql://localhost:3306/test
spring.datasource.dynamic.datasource.follow.username = root
spring.datasource.dynamic.datasource.follow.password = test123
spring.datasource.dynamic.datasource.follow.driver-class-name = com.mysql.cj.jdbc.Driver

datasource  是map的变量名

master/follow 是key

url,username,password,driver-class-name 是 value中的属性

*/
     
    private Map<String, DataSourceProperty> datasource = new LinkedHashMap<>();


    // 省略

}

@Data
@Accessors(chain = true)
public class DataSourceProperty {
   
    // 省略

    /**
     * JDBC driver
     */
    private String driverClassName;
    /**
     * JDBC url 地址
     */
    private String url;
    /**
     * JDBC 用户名
     */
    private String username;
    /**
     * JDBC 密码
     */
    private String password;

    // 省略

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值