虽然我的Configuration类中的属性名称错误,但Spring不会抛出异常。日志显示找不到密钥。
2012-06-17 05:26:49,545 DEBUG | main | o.s.core.env.PropertySourcesPropertyResolver | Could not find key 'pegaso.cfdiRequest' in any property source. Returning [null]
我在Configuraton Class
中的Environment类中使用该属性@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {
@Autowired
Environment env;
@Bean
public FesaBean fesaBean() {
FesaBean fesaBean = new FesaBean();
fesaBean.setMyProperty(env.getProperty("pegaso.cfdiRequest"));
return fesaBean;
}
application.properties中不存在pegaso.cfdiRequest 。不过,我没有得到例外。
答案 0 :(得分:4)
env.getRequiredProperty("propertyName")
环境实现具有此类方法Environment.getRequiredProperty()的PropertyResolver解决了该问题。如果未找到该属性,则抛出java.lang.IllegalStateException。
答案 1 :(得分:1)
根据Environment的API,它会为无法解析的值返回null,因此只需在特定情况下进行空检查:
if (env.getProperty("pegaso.cfdiRequest")==null)... // variable not resolved