从零学springboot——自定义properties文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mazhen1991/article/details/79521524

当我们需要定义某些配置属性的时候,我们可以在springboot默认的application.properties文件中定义,如果要使用则直接使用@Value注解注入即可,如果是在xml文件中使用,也可以使用$来引用,但是将所有的属性都写入一个文件,会比较杂乱,这里介绍如何自定义properties。

  • 创建一个properties文件(这里以jdbc举例)
  • 在创建的jdbc.properties文件中写入数据库连接属性
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
  • 自定义一个config类:
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
@PropertySource("classpath:properties/jdbc.properties")
public class DataSourceConfig {

    private String url;
    private String username;
    private String password;
    private String driverClassName;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getDriverClassName() {
        return driverClassName;
    }

    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
}

这里就是一个普通的bean,注解@Configuration相当于就是@Component,将这个类交给了spring容器管理,另外两个注解则是告知去哪个properties文件读取什么前缀的key。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    String value() default "";
}

注意:只要我们指定了@PropertySource并注入spring容器,那么这个properties就能被使用了。

  • 此时,我们要使用其中的属性,直接将这个对象注入即可。

猜你喜欢

转载自blog.csdn.net/mazhen1991/article/details/79521524
今日推荐