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

相關文章
相關標籤/搜索