2013-01-18 100 views
1

我需要在啓動時添加一堆支持DB的屬性。 爲了測試整個事情的作品,我開始用這個(以下ds.username財產來自catalina.properties它的存在只是爲了驗證我沒有破壞任何東西。):Spring 3.1 ConfigurableWebApplicationContext屬性@Value未解析

public class PropertiesInitializer implements ApplicationContextInitializer<ConfigurableWebApplicationContext> { 
@Override 
public void initialize(ConfigurableWebApplicationContext ctx) { 
try { 
    props.put("hello", "goodbye"); 
    MutablePropertySources propertySources = ctx.getEnvironment().getPropertySources(); 
    propertySources.addFirst(new MapPropertySource("dbProps", props)); 
} 
catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 

我有一個@Controller而我這樣做:所以

@Autowired 
Environment env; 
@Value("${hello}") 
public String hello; 
@Value("${ds.username}") 
public String un; 
... 

,當我打印的,「你好」和「聯合國」是空的,但實際上env.getProperties返回正確的價值觀。

爲什麼?

感謝

赫拉爾多·布蘭科

回答