SpringBoot的注解@Configuration @value 的区别

@ConfigurationProperties(prefix="connection ")//与bean结合,为属性赋值通过指定类名来绑定该类的属性,支持松散语法,从属性文件获取类的属性,默认从全局配置文件中获取值;

我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了

@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {

    private String username;
    private String remoteAddress;
    private String password ;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getRemoteAddress() {
        return remoteAddress;
    }
    public void setRemoteAddress(String remoteAddress) {
        this.remoteAddress = remoteAddress;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

}

属性松散绑定
表示驼峰式、下划线(_)、短横线(-)

标准方式
person.firstName

方式一
大写用-
person.first-name

方式二
大写用_
person.first_name

三种方式,都可以使用
推荐,属性书写方式
PERSON_FIRST_NAME

@value(" ")  格式  ${  }

可以从配置文件单个获取属性值,只能取出一些简单的值,不能获取map,List等复杂类型的封装

配置文件yml还是properties他们都能获取:

我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@value

如果,专门编写了一个JavaBean来和配置文件进行映射;那我们直接使用@ConfigurationProperties一次性全部获取

猜你喜欢

转载自www.cnblogs.com/shitulaoma/p/12464707.html