属性赋值 01 @Value赋值

传统方式

public class Person {private String name;private Integer age;private String nickName;public Person() {}public Person(String name, Integer age, String nickName) {this.name = name;this.age = age;this.nickName = nickName;}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;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", nickName='" + nickName + '\'' +'}';}
}

beans.xml

    <context:property-placeholder location="classpath:person.properties" /><bean id="person4PropertyValues" class="com.example.annotations.bean.Person"><property name="age" value="21"/><property name="name" value="qd"/><property name="nickName" value="${person.nickName}"/></bean>

配置文件
person.properties

person.nickName=Aimer

测试

    @Testvoid xmlPropertyValuesTest(){//传统方式ClassPathXmlApplicationContext xmlApplicationContext = new ClassPathXmlApplicationContext("beans.xml");System.out.println("容器创建完毕");//获取beanSystem.out.println("准备获取bean");Object person4PropertyValues = xmlApplicationContext.getBean("person4PropertyValues");System.out.println(person4PropertyValues.toString());System.out.println("获取完毕");//关闭容器xmlApplicationContext.close();System.out.println("容器已关闭");}

运行结果:

注解方式

  1. 基本数值
  2. SPEL表达式 : #{22-1} => 21
  3. ${} :取出配置文件的值 [在运行环境变量中的值]

Person.java

public class Person {@Value("qd")private String name;@Value("#{22-1}")private Integer age;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;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}

配置类

@Configuration
public class MainConfig4PropertyValues {@Bean("person4PropertyValues")public Person person(){return new Person();}
}

测试

    @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("容器已关闭");}

运行结果

注意 无论是beans.xml 还是配置类 都要保证bean的名字不重复

【SpringBoot_ANNOTATIONS】属性赋值 01 @Value赋值相关推荐

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

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

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

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

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

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

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

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

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

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

  6. Spring-使用外部属性文件01

    导读 概述 PropertyPlaceholderConfigurer属性文件 实例 使用PropertyPlaceholderConfigurer属性文件 PropertyPlacerholderC ...

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

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

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

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

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

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

  10. SQL Server中SET赋值和SELECT赋值的区别

    2019独角兽企业重金招聘Python工程师标准>>> 一.SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值 SELECT @VAR1='Y',@VAR ...

最新文章

  1. SAP PM 初级系列10 - 维护通知单相关的配置
  2. 网众无盘服务器 快车挂盘失败 显示 当前磁盘已经为超级工作站模式,网众无盘超级工作站的一些经验总结...
  3. java 日期注解 xml_Spring xml注解+java注解
  4. 【CSS 伪类】顺序
  5. 升级jquery-easyui1.4.5后treegrid无法显示
  6. vue安装less并全局引入less/sass文件
  7. python3多线程第三方库_Python3 多线程
  8. clion编写C++ 使用多线程时候,CMakeLists.txt书写,引用-pthread
  9. Perl 日志分析W3A_system
  10. 每周学算法/读英文/知识点心得分享 3.4 - 3.8
  11. servlet和JSP页面乱码问题
  12. Dubbo学习总结(10)——里程碑式 Dubbo 2.7.5 版本发布,性能提升30%,支持 HTTP/2、TLS、Protobuf等特性。
  13. 音视频技术傻瓜版解析:带你解锁RTMP
  14. 生成网上下载的EF项目对应的数据库
  15. react打包成html5,create-react-app项目打包相关问题
  16. c语言程序设计辅导资料pdf,第一章 C语言程序设计辅导资料(修订版).pdf
  17. iphone7字体风格怎么改_苹果7怎么更改字体样式 苹果手机换好看的字体
  18. 填坑---override、overload、overwrite
  19. mysql 备份数据库
  20. < 知识拓展:CSS 中常用的计量单位有哪些? >

热门文章

  1. Rust: Atom中cargo build error
  2. 机器学习笔记(三十一):集成学习
  3. 知道域名差服务器系统,对DNS域名系统的抓包分析
  4. java实现复数之间加减乘运算_用java实现复数的加减乘除运算(改进第1次)
  5. 【二维码识别】基于matlab GUI 灰度+二值化+校正二维码生成与识别【含Matlab源码 635期】
  6. 深度学习分类pytorch_立即学习AI:02 —使用PyTorch进行分类问题简介
  7. dbscan js 实现_DBSCAN在PySpark上的实现
  8. uber大数据_Uber创建了深度神经网络以为其他深度神经网络生成训练数据
  9. pycharm下防止鼠标拖拽代码字符
  10. java 三个点_Java Object定义三个点如何实现 Java Object定义三个点实现代码