使用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-------------解决问题能够正确使用

具体原因不明。猜想是不是对表达式的支持上的问题

猜你喜欢

转载自www.cnblogs.com/sunshine99/p/10555898.html