属性赋值 02 @PropertySource赋值

使用@PropertySource读取外部配置文件中的 k-v 保存到运行的环境变量中
加载完外部的配置文件以后 使用${}取出配置文件中的值
配置类

package com.example.annotations.config;import com.example.annotations.bean.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;@Configuration
@PropertySource(value = {"classpath:/person.properties"})
public class MainConfig4PropertyValues {@Bean("person4PropertyValues")public Person person(){return new Person();}
}

Person.java

package com.example.annotations.bean;import org.springframework.beans.factory.annotation.Value;public class Person {@Value("qd")private String name;@Value("21")private Integer age;@Value("${person.nickName}")private String nickName;public Person(String name, Integer age, String nickName) {this.name = name;this.age = age;this.nickName = nickName;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}public Person() {}public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", nickName='" + nickName + '\'' +'}';}
}

配置文件
person.properties

person.nickName=Aimer

测试

    @Testvoid propertyValuesTest(){//配置类测试AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig4PropertyValues.class);System.out.println("容器创建完毕");//获取beanSystem.out.println("准备获取bean");Object person4PropertyValues = applicationContext.getBean("person4PropertyValues");System.out.println(person4PropertyValues.toString());System.out.println("获取完毕");//关闭容器applicationContext.close();System.out.println("容器已关闭");}

运行结果

扩展:

    @Testvoid propertyValuesTest(){//配置类测试AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig4PropertyValues.class);System.out.println("容器创建完毕");//        //获取bean
//        System.out.println("准备获取bean");
//        Object person4PropertyValues = applicationContext.getBean("person4PropertyValues");
//        System.out.println(person4PropertyValues.toString());
//        System.out.println("获取完毕");//运行环境测试输出System.out.println("运行环境测试输出");ConfigurableEnvironment environment = applicationContext.getEnvironment();String property = environment.getProperty("person.nickName");System.out.println("person.nickName" + " => " + property);//关闭容器applicationContext.close();System.out.println("容器已关闭");}

运行结果

  • 可以使用@ProPertySources注解指定多个PropertySource

【SpringBoot_ANNOTATIONS】属性赋值 02 @PropertySource赋值相关推荐

  1. @value 静态变量_Spring注解驱动开发之八——@Value属性赋值、@PropertySource 加载外部配置文件...

    本文包含以下内容: 建立新的配置类 建立新的测试方法 通过@Value 进行赋值 通过@PropertySource  加载配置文件,并进行注入 拓展@Value  .@PropertySource ...

  2. Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)

    属性取值和赋值过程 一切皆是对象,类型也是对象. 对象包含一个__class__属性指向其所属类型. 对象包含一个__dict__属性指向其所包含的成员(属性和方法). 取值过程(下面是伪代码) 1 ...

  3. C#中字段、属性、只读、构造函数赋值、反射赋值的相关

    C#中字段.属性和构造函数赋值的问题 提出问题 首先提出几个问题: 1.如何实现自己的注入框架? 2.字段和自动属性的区别是什么? 3.字段和自动属性声明时的直接赋值和构造函数赋值有什么区别? 4.为 ...

  4. 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter 创建对象,完成赋值(setter赋值和构造方法赋值) 在控制台输出学生对象的信息

    public class Student {/*1 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter创建对象,完成赋值(setter赋值和构造方法赋 ...

  5. 通过.NET反射动态调用SetValue方法给属性PropertyInfo动态类型赋值

    注意:若不动态转换属性的值,简单调用SetValue方法赋值经常出错!特别是日期类型.带符号的数字类型等. 解决方案: 通过TypeDescriptor.GetConverter方法获取对应数值类型的 ...

  6. python支持链式赋值和多重赋值_Python: 链式赋值的坑

    在我们使用Python的过程中, 经常遇到赋值语句, 就像下面的那样: a = 3 b = 3 可能你会觉得我又要说什么变量赋值就是引用, 这么简单的知识就不讨论啦, 相信聪明的大家肯定都知道的, 我 ...

  7. Spring-使用加密的属性文件02

    导读 概述 实例 DES加密解密工具类 使用密文版的属性文件 修改配置文件引用自定义的EncryptPropertyPlaceholderConfigurer 导读 Spring-使用外部属性文件01 ...

  8. python类对象赋值_Python对象赋值、浅拷贝、深拷贝

    Python中,基本数据类型,理解为常见数据类型:布尔型.整型.浮点型.字符串.列表.元组.字典.集合,随语言不同而不同,但是根据在内存中存储方式的不同,区分开原子类型和容器类型. 对象赋值 对象的赋 ...

  9. 进程中的信号赋值与变量赋值

    进程中的信号赋值与变量赋值 比较对象 信号SIGNAL 变量VARIABLE 基本用法 用于作为电路的信号连线 用于作为进程中局部数据存储单元 适用范围 在整个结构体内的任何地方都能适用 只能在所定义 ...

  10. JAVA移慎_java里面给对象赋值,慎用赋值符号(=) (转)

    java里面给对象赋值,慎用赋值符号(=) (转)[@more@] 对于来说,注意变量名类似于指针,所以请慎用赋值符号(=)! 比如下面的代码: ArrayList alAll = new Array ...

最新文章

  1. 【神经网络】(13) ShuffleNetV2 代码复现,网络解析,附Tensorflow完整代码
  2. Vagrant的用法
  3. MySQL的安装与配置--windows下安装
  4. mysql一对多代码_MySQL实现一对多查询的代码示例
  5. linux 装nano命令,linux下安装 nano 如果没有这个命令的话~~可以看下
  6. uni-calendar更改打点颜色实现签到和缺勤不同打点颜色效果
  7. CPU Cache Line伪共享问题的总结和分析
  8. java 安卓权限_java – Android运行时权限 – 如何实现
  9. [转] GCC 中的编译器堆栈保护技术
  10. php根据ip获取地区的程序代码
  11. 剑指offer——面试题9:求斐波那切数列的四种方法
  12. jenkins vue 打包特别慢_Jenkins 自动化部署
  13. Java 学习笔记(手写版)
  14. MATLAB中LINGO软件及数学规划问题应用
  15. 基于Java+SpringBoot+vue+element实现校园疫情防控系统详细设计和实现
  16. HIVE SQL DDL语句实例
  17. java 事务控制_java中事务的管理
  18. 2022变更调查 举证照片查看器
  19. 抖音超火的动态图如何做 怎么制作GIF
  20. #深入分析# pandas中使用 drop 和 del删除列数据的区别

热门文章

  1. 基于 Token 的身份验证
  2. 持续图片滚动字幕html,使用JavaScript实现连续滚动字幕效果的方法
  3. gets函数没有输入会怎样_如果没有“227事件”,肖战的未来会是怎样的?
  4. 【优化预测】基于matlab天牛须算法优化BP神经网络预测【含Matlab源码 1318期】
  5. 【优化充电】基于matlab蒙特卡洛算法求解电动汽车充电优化问题【含Matlab源码 1164期】
  6. 【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】
  7. 【车间调度】基于matlab粒子群算法求解车间调度问题【含Matlab源码 013期】
  8. python函数式编程模式_Python 函数式编程
  9. python开发助理s_如何使用Python构建自己的AI个人助理
  10. 自己搭建Maven项目下运行项目后Eclipse报错:org.springframework.web.context.ContextLoaderListener