使用spring中4.2.6版本使用@Value取值失败,结果为${xxx}的情况
环境:spring 4.2.6
使用全注解来获取值的时候发生@Value为写好的表达式
简单的代码:
实体类:
public class RichMan {
@Value(value="${richMan.name}")
private String name ;
@Value("99123")
private String money;
@Value("#{55}")
private int age;
properties文件:
richMan.name = \u738B\u9707\u6797
richMan.money = 99999999
richMan.age = 66
配置类:
@PropertySource(value= {"classpath:floor.properties"})
@Configuration
public class MainValueConfigu {
@Lazy(value=true)
@Bean(name = "richMan")
public RichMan getRichMan() {
return new RichMan();
}
测试类:
@Test
public void testValueProperties() {
RichMan bean = (RichMan)aca.getBean("richMan");
System.out.println(bean);
ConfigurableEnvironment env = aca.getEnvironment();
System.out.println(env.getProperty("richMan.name"));
}
结果为:
init----${richMan.name}
RichMan [name=${richMan.name}, money=99123, age=55]
王震林
###############################################
能够从环境里面通过.getEnvironment();取出值来。但是设置的值没有通过表达式取出来。
解决办法:
把spring版本升级为4.3.12-------------解决问题能够正确使用
具体原因不明。猜想是不是对表达式的支持上的问题