spring @value和@@PropertySource注解简单使用

Posted yangxiaohui227

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring @value和@@PropertySource注解简单使用相关的知识,希望对你有一定的参考价值。

@Value注解:可以使用注入基本字符串 EL表达式,从配置文件读取数据
@PropertySource用于引入单个配置文件
@PropertySources用于引入多个配置文件
@PropertySource或者@PropertySources引入的数据都是存在环境变量ConfigurableEnvironment中的
在resouces文件夹下新建一个cat.properties文件,写入内容parent=tiger
public class Cat {
    @Value("猫") //直接注入字符串
    private String name;
    @Value("#{12+2}") //支持EL表达式
    private int age;
    @Value("${parent}") //支持配置文件读取
    private String parent;
    public Cat() {
        System.out.println("猫被初始化");
    }

    @Override
    public String toString() {
        return "Cat{" +
                "name=\'" + name + \'\\\'\' +
                ", age=" + age +
                ", parent=\'" + parent + \'\\\'\' +
                \'}\';
    }
}
@Import({Cat.class})
@PropertySources({@PropertySource(value ="cat.properties")})
public class Appconfig {
}
public class Demo {
    public static void main(String[] args) {

        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Appconfig.class);
        Cat bean = context.getBean(Cat.class);
        System.out.println(bean); //Cat{name=\'猫\', age=14, parent=\'tiger\'}
        ConfigurableEnvironment environment = context.getEnvironment();
        System.out.println(environment.getProperty("parent")); //tiger


    }
}

 

 

 

 




以上是关于spring @value和@@PropertySource注解简单使用的主要内容,如果未能解决你的问题,请参考以下文章

spring 通过@Value 获取properties文件中设置了属性 ,与@Value # 和$的区别

Spring @Value的$和#用法区别

kotlin spring @value 注解

2021-12-29 Spring中@Autowired和@Value的预解析和属性注入

Spring boot @ConfigurationProperties 和@Value

品Spring:对@Autowired和@Value注解的处理方法