2

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クラスの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;
}

pegaso.cfdiRequestはapplication.propertiesに存在しません。それでも、例外は発生しません。

4

2 に答える 2

4
env.getRequiredProperty("propertyName")

Environment は、このようなメソッドEnvironment.getRequiredProperty()を持つ PropertyResolver を実装して問題を解決します。プロパティが見つからない場合、java.lang.IllegalStateException がスローされます。

于 2012-06-19T23:58:45.343 に答える
1

Environmentの API に従って、解決できない値に対して null を返すため、特定のケースで null チェックを行うだけです。

if (env.getProperty("pegaso.cfdiRequest")==null)... // variable not resolved
于 2012-06-17T11:43:27.367 に答える