环境: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 = 99999999richMan.age = 66配置类:
@PropertySource(value= {"classpath:floor.properties"})
@Configurationpublic 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-------------解决问题能够正确使用
具体原因不明。猜想是不是对表达式的支持上的问题