springboot 属性注入

应用(使用)属性

@Value(“${xxx}”)

这种方式是最简单的,经过@Value注解能够将属性值注入进来。this

@ConfigurationProperties

Spring Boot 能够方便的将属性注入到一个配置对象中。例如:spa

my.name=Isea533
my.port=8080
my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com
  • 对应对象:
@ConfigurationProperties(prefix="my")
public class Config {
    private String name;
    private Integer port;
    private List<String> servers = new ArrayList<String>();

    public String geName(){
        return this.name;
    }

    public Integer gePort(){
        return this.port;
    }
    public List<String> getServers() {
        return this.servers;
    }
}

Spring Boot 会自动将prefix="my"前缀为my的属性注入进来。.net

Spring Boot 会自动转换类型,当使用List的时候须要注意在配置中对List进行初始化!code

Spring Boot 还支持嵌套属性注入,例如:server

name=isea533
jdbc.username=root
jdbc.password=root
...

对应的配置类:对象

@ConfigurationProperties
public class Config {
    private String name;
    private Jdbc jdbc;
    class Jdbc {
        private String username;
        private String password;
        //getter...
    }

    public Integer gePort(){
        return this.port;
    }
    public Jdbc getJdbc() {
        return this.jdbc;
    }
}
  •  

jdbc开头的属性都会注入到Jdbc对象中。get

在@Bean方法上使用@ConfigurationProperties

例如:io

@ConfigurationProperties(prefix = "foo")
@Bean
public FooComponent fooComponent() {
    ...
}

Spring Boot 会将foo开头的属性按照名字匹配注入到FooComponent对象中。class

相关文章
相关标签/搜索