12、spring注解学习(属性赋值)——@PropertySource加载外部配置文件

1、创建person类

复制代码
public class Person {
    
    /*
     * 使用@Value赋值:
     *     1、基本数值
     *     2、可以写SpEl;#{}
     *     3、可以写${}、取出配置文件中(例如properties文件)的值(运行环境变量里面的值)
     */
    @Value("张三")
    private String name;
    @Value("#{20-2}")
    private Integer age;
    
    private String school;
    
    public Person() {
        super();
    }
    public Person(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public Integer getAge() {
        return age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    
    public String getSchool() {
        return school;
    }
    public void setSchool(String school) {
        this.school = school;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", school=" + school + "]";
    }
}
复制代码

2、创建要加载的外部文件

3、spring配置类中加载外部配置文件

复制代码
/**
 * 测试bean的属性赋值的配置
 */
@Configuration
@PropertySource(value= {"classpath:/person.properties"})
public class MainConfigOfPropertyValue {
    
    @Bean("person")
    public Person person() {
        return new Person();
    }
}
复制代码

4、在person类中的属性赋外部文件中定义的值

复制代码
public class Person {
    
    /*
     * 使用@Value赋值:
     *     1、基本数值
     *     2、可以写SpEl;#{}
     *     3、可以写${}、取出配置文件中(例如properties文件)的值(运行环境变量里面的值)
     */
    @Value("张三")
    private String name;
    @Value("#{20-2}")
    private Integer age;
    
    @Value("${person.school}")
    private String school;
    public Person() {
        super();
    }
    public Person(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public Integer getAge() {
        return age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    
    public String getSchool() {
        return school;
    }
    public void setSchool(String school) {
        this.school = school;
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", school=" + school + "]";
    }
}
复制代码

5、定义测试方法进行测试

    @Test
    public void test01() {
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValue.class);
        Object bean = applicationContext.getBean("person");
        System.out.println(bean);
    }

得到结果:

 

 外部文件赋值成功。

posted @   Arbitrary233  阅读(479)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示