讨论依赖注入的时候,通常讨论的是一个bean引用注入到另一个bean的属性或者构造器参数中。bean装配的另一个方面是将值注入到bean的属性或者构造器参数中。避免硬编码的方式就是运行时确定值。

spring解决办法是

1)属性占位符

2)spring语言表达式(SpEL)

@PropertySource(“”)注解标注属性源

装配属性的方法1)使用Environment 相关方法检索。2)解析属性占位符 3) spring表达式语言

1. Environment常用方法

String getProperty(String key);
String getProperty(String key, String defaultValue);
<T> T getProperty(String key, Class<T> targetType);
<T> T getProperty(String key, Class<T> targetType, T defaultValue);

2. 占位符使用方法在配置文件中${"..."} 如果是扫描方式或者自动装配使用@Value("${...}")注解

如果要使用占位符,需要配置 PropertySourcesPlaceholderConfigurer

@Bean
public PropertySourcesPlaceholderConfigurer placeholderConfigurer(){
return new PropertySourcesPlaceholderConfigurer();
}

spring in action小结3 运行时值注入的更多相关文章

  1. Spring入门(九):运行时值注入

    Spring提供了2种方式在运行时注入值: 属性占位符(Property placeholder) Spring表达式语言(SpEL) 1. 属性占位符 1.1 注入外部的值 1.1.1 使用Envi ...

  2. Spring实战(八)bean装配的运行时值注入——属性占位符和SpEL

    前面涉及到依赖注入,我们一般哦都是将一个bean引用注入到另一个bean 的属性or构造器参数or Setter参数,即将为一个对象与另一个对象进行关联. bean装配的另一个方面是指将一个值注入到b ...

  3. spring in action小结4.1

    1 横切关注点:可以被描述为影响应用多处的功能.横切关注点可以被模块化为特殊的类,这些类被称为切面. 2 AOP自己的术语,通知(Advice).切点(pointcut).连接点(joinpoint) ...

  4. spring in action小结2

    1 @Component注解声明的类都会创建为bean,并且bean的id为首字母小写的类名. 2 解决bean自动装配奇异性问题,可以使用@Qualifier("name")限定 ...

  5. Spring in action记录

    最近一段时间重新学习了一遍SPRING,现在对这些笔记整理一下,一来算是对之前的学习有一个交代,二来当是重新学习一次,三来可以留下备份 这次学习中以SPRING IN ACTION 4这学习资料,整书 ...

  6. spring in action 4th --- quick start

    读spring in action. 环境搭建 quick-start依赖注入 面向切面 1.环境搭建 jdk1.8 gradle 2.12 Intelij idea 2016.2.1 1.1创建一个 ...

  7. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-007-给BEAN运行时注入值placeholder、@Value

    一.用placeholder给bean运行时注入值的步骤 Spring取得placeholder的值是用${...} 1.声明placeholder bean (1)java方式 In order t ...

  8. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-006-给bean运行时注入值(Environment,Property文件)

    一. 直观的给bean注入值如下: @Bean public CompactDisc sgtPeppers() { return new BlankDisc( "Sgt. Pepper's ...

  9. spring in action 学习十一:property placeholder Xml方式实现避免注入外部属性硬代码化

    这里用到了placeholder特有的一个语言或者将表达形式:${},spring in action 描述如下: In spring wiring ,placeholder values are p ...

随机推荐

  1. Linux的进程优先级NI和PR

    为什么要有进程优先级? 这似乎不用过多的解释,毕竟自从多任务操作系统诞生以来,进程执行占用cpu的能力就是一个必须要可以人为控制的事情.因为有的进程相对重要,而有的进程则没那么重要. 进程优先级起作用 ...

  2. struts2 action通配符

    首先,看一个struts2的配置文件: <package name="actions" extends="struts-default" namespac ...

  3. boa cgi程序cgi_header: unable to find LFLF

    ftp必须用二进制模式上传才可以 sqlite3 arm-linux-gcc hello.c -o hello.cgi -I /cgi/include -L /cgi/lib -static -lsq ...

  4. Python学习 —— 阶段综合练习三

    Python学习 —— 阶段综合练习三 综合之前文件与文件夹操作的学习,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 目录文件遍历(二层目录结构) 1).  ...

  5. VB开发ActiveX控件的一些记录

    注意,下面很多语句的用法,不能放在Private Sub UserControl_Initialize()里使用,要放在Private Sub UserControl_InitProperties() ...

  6. 杭电OJ——1032 The 3n + 1 problem

    The 3n + 1 problem Problem Description Problems in Computer Science are often classified as belongin ...

  7. js 中三层引号问题

    方式1: '[{"Company": "XYZ","Description": "\"TEST\"" ...

  8. Node.js:Stream(流)

    Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出). Node.js,Str ...

  9. 让editplus支持sql编辑

    摘自: http://www.cnblogs.com/yeminglong/archive/2011/10/15/2212991.html 让editplus支持sql编辑 时比较喜欢用editplu ...

  10. [Grunt + AngularJS] Using ng-annotate for min-safe AngularJS

    When you minify your code with a tool like Uglify, the resulting minified file will rename variables ...