首先回顾下在xml中我们是如何为spring的bean进行属性赋值呢?

大体是这样的

    <bean id="person" class="com.atguigu.bean.Person"  scope="prototype" ><property name="age" value="18"></property><property name="name" value="zhangsan"></property></bean>

这样就能够为person对象的agename属性进行赋值。

那使用@Value注解怎么做呢?又如何取出配置文件中的值呢,就像取出jdbc.properties中的值一样。

public class Person {//使用@Value赋值;//1、基本数值//2、可以写SpEL; #{}//3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)@Value("张三")private String name;@Value("#{20-2}")private Integer age;@Value("${person.nickName}")private String nickName;// 省略了getter、setter等
}

配置类:

//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {@Beanpublic Person person(){return new Person();}}

写个测试方法测试一下:

public class IOCTest_PropertyValue {AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);@Testpublic void test01(){printBeans(applicationContext);System.out.println("=============");Person person = (Person) applicationContext.getBean("person");System.out.println(person);ConfigurableEnvironment environment = applicationContext.getEnvironment();String property = environment.getProperty("person.nickName");System.out.println(property);applicationContext.close();}private void printBeans(AnnotationConfigApplicationContext applicationContext){String[] definitionNames = applicationContext.getBeanDefinitionNames();for (String name : definitionNames) {System.out.println(name);}}}

打印出结果:

mainConfigOfPropertyValues
person
=============
Person [name=张三, age=18, nickName=小李四]
小李四

这两个注解非常简单,@Value注解支持不仅支持简单赋值,还支持spring El表达式赋值,关于springEL表达式,可以参考这篇:springEL表达式

@PropertySource 就是导入外部的配置文件。
注意:在@Value中,使用springEL表达式使用#,引入配置文件中的值使用$,此文也有体现。

今天就这么多。

转载于:https://www.cnblogs.com/heliusKing/p/11396493.html

九、Spring中使用@Value和@PropertySource为属性赋值相关推荐

  1. 事务例子_Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现...

    Spring中事务的使用示例.属性及使用中可能出现的问题 前言 本专题大纲如下: 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用 ...

  2. Spring中的Bean配置

    IOC&DI概述 OPC(Inversion of Control):其思想是反转资源获取的方向.传统的资源查找方式要求组件向容器发起请求查找资源.作为回应,容器适时的返回资源.而应用了IOC ...

  3. Spring中DI介绍

    文章目录 Spring中DI介绍 一.基于XML配置注入依赖 1. 有参构造函数注入依赖 2. set方法注入依赖 3. 注入自定义类型 4. 注入集合类型 二.基于注解形式注入依赖 1. @Valu ...

  4. Spring初使用:使用Spring为对象的属性赋值

    目录 为基本类型(及其包装类)属性赋值 通过xml配置文件的方式 使用Set方法赋值 使用有参构造方法赋值 通过注解的方式 使用 @Value 注解赋值 为引用类型属性赋值 指定赋值 使用Set方法赋 ...

  5. Spring框架—IOC容器—属性赋值的几种方式

    目录 一.常用的赋值方式 1.1 set注入 1.1.1 ApplicationContext.xml配置文件 1.1.2 测试类: 1.1.2 控制台输出: 1.2 构造注入 1.2.1 修改Stu ...

  6. Spring中的九种设计模式

    一. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. ...

  7. 九种设计模式在Spring中的应用

    Spring中涉及的设计模式总结 1.简单工厂(非23种设计模式中的一种) 实现方式: BeanFactory.Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获 ...

  8. 详解设计模式在Spring中的应用

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了 ...

  9. 这些Spring中的设计模式,你都知道吗?

    来自: itxxz.com/a/javashili/tuozhan/2014/0601/7.html 设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆 ...

最新文章

  1. 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
  2. java中哈夫曼编码所用的函数_数据结构(java语言描述)哈夫曼编码
  3. mysql是如何管理数据_【MySQL】如何管理数据库
  4. linux Rootkit:x86与ARM的内联内核函数Hooking
  5. 反转链表 IIPython解法
  6. Xlua文件在热更新中调用方法
  7. 接口文档下的渗透测试(Swagger)
  8. mysql缓存怎么防止缓存击穿_带你搞明白什么是缓存穿透、缓存击穿、缓存雪崩...
  9. caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记
  10. 如何防范和应对Redis勒索,腾讯云教你出招
  11. 如何设置Mac定时重启
  12. echart 最小值_EchartJS平均线、最大值、最小值
  13. java爬虫搜狗微信_搜狗微信公众号文章抓取
  14. 【免费域名】freenom免费申请域名步骤
  15. 签约新闻 | 出版发行行业又一位老牌企业的数字化转型,扬帆起航!
  16. WebRTC源码中turnserver的使用方法
  17. 郭敬明道歉承认作品抄袭:如何维护互联网作品版权信息
  18. mosquitto服务器搭建及配置
  19. 有瓶颈设备的多级生产计划问题
  20. 【CS231n】十五、深度学习的高效算法和硬件设计

热门文章

  1. 《是碰巧还是执着?python所阅读的每一场知识点,唯一的共同点就是——参赛选手中,有详解Python的装饰器!》
  2. git 查看代码量_学会这三个命令,你就不再是git只会用三板斧的菜鸟了
  3. keil 快捷键_KEIL 那些编辑技巧与方法
  4. 收藏 | 从头训练深度监督目标检测
  5. php内支持sqlite,PHP能不能和sqlite搭配
  6. 决策树随笔-深度AI科普团队
  7. 数据部门如何All In AI
  8. 计算机考试的基础知识高考,计算机考试基础知识试题..doc
  9. 电梯管理php,写字楼物业电梯管理规定
  10. 提高网站性能的常见方法