《Spring源码解析》笔记

  1. 使用@Value赋值;
    1、基本数值
    2、可以写SpEL #{}
    3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)

1.创建一个类Person

其中使用到了第一种和第二种,直接使用@Value进行赋值

  1. public class Person {
  2. @Value("张三")
  3. private String name;
  4. @Value("#{20-2}")
  5. private Integer age;
  6.  
  7. @Value("${person.nickName}")
  8. private String nickName;
  9. public String getNickName() {
  10. return nickName;
  11. }
  12. public void setNickName(String nickName) {
  13. this.nickName = nickName;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public Integer getAge() {
  22. return age;
  23. }
  24. public void setAge(Integer age) {
  25. this.age = age;
  26. }
  27.  
  28. public Person(String name, Integer age) {
  29. super();
  30. this.name = name;
  31. this.age = age;
  32. }
  33. public Person() {
  34. super();
  35. // TODO Auto-generated constructor stub
  36. }
  37. @Override
  38. public String toString() {
  39. return "Person [name=" + name + ", age=" + age + ", nickName=" + nickName + "]";
  40. }

2、如果希望使用第三种,那么${}

首先需要创建一个person.properties文件,内容如下:

  1. person.nickName=\u5C0F\u674E\u56DB

在配置类中需要使用注解PropertySource,将配置文件里面的信息加载到运行环境中。

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

  1. @PropertySource(value={"classpath:/person.properties"})
  2. @Configuration
  3. public class MainConfigOfPropertyValues {
  4.  
  5. @Bean
  6. public Person person(){
  7. return new Person();
  8. }
  9.  
  10. }

随机推荐

  1. scala 实现算法

    快速排序 def sort(xs: Array[Int]): Array[Int] = if (xs.length <= 1) xs else { val pivot = xs(xs.lengt ...

  2. .Net平台调用の初识

    前言 工作过程中难免遇到混合编程,现在我们要谈的是C#和c++语言的编程.C#要调用C++的库目前可选主要有两种方式:Com技术和平台调用(P/Invoke).现在我们要谈的是P/Invoke技术. ...

  3. 从身份证号提取生日并更新到生日字段中的SQL语句

    1:根据身份证号 更新 生日字段 SQL update 学生信息 ,)+,)+,) 2:根据身份证号 更新 性别字段 SQL update 学生信息 set 性别='男' and substring( ...

  4. 开启SSH 使用SSH登录工具连接虚拟机

    修改sshd_config文件,命令为:vi /etc/ssh/sshd_config将#PermitRootLogin without-password注释去掉修改为PermitRootLogin ...

  5. TOP和PS aux命令显示出来的栏目所代表的意思

    USER: 行程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的记忆体使用率 VSZ: 占用的虚拟记忆体大小 RSS: 占用的记忆体大小 TTY: 终端的次要装置号码 ...

  6. Codeforces 1151E 统计贡献

    题意:给你一个数组a,设函数f(l, r)为数组a中权值在[l, r]之间的连通块的数目,比如a = [1, 3, 2, 1], f(1, 2) = 2, 连通块是位置1和位置3,4.问Σ(i = 1 ...

  7. cmake 支持-lpthread

    set(CMAKE_BUILD_TYPE "Release") if( CMAKE_BUILD_TYPE STREQUAL "Debug" )    set(C ...

  8. 了解linux web的监听工具

    zabbix cacti Nagios 本想安装的,但是安装需要一个 空的服务器,因为服务器已经有安装 LAMP,故没有去了解 尝试了 cacti ,因为本地环境版本问题,只能使用0.8.8a版本,并 ...

  9. 前端mockjs模拟图片验证码

    ps:mockjs在进行相同的双数次请求的时候,会出现请求404的状况,希望有大佬帮解决下 首先创建dom <img id='bbn' src="" alt="图图 ...

  10. Spring Cloud (Spring Cloud Stream)解析

    执行脚本目录 /bin windows 在其单独的目录 快速上手 下载并且解压kafka压缩包 运行服务 以Windows为例,首先打开cmd: 1.  启动zookeeper: bin\window ...