Spring propertiesファイルデータを読み込めない問題の詳細

4827 ワード

1.controllerでconfigを読み取ることができない.propertiesファイル
コントローラに注入する@Value構成はservlet-context.xmlプロファイルで取得したもの.サービスに注入された@Value構成はアプリケーションContext.xmlで取得しました.したがって、controllerに属性構成を注入するには、アプリケーションContextと同様に、対応するservletファイルに構成を追加する必要がある.xmlと同じです.


  
    
       classpath:jdbc.properties
      classpath:config.properties
     
  
  

2.サービスでconfigを読み取ることができない.propertiesファイル
プロファイルが複数あるかどうかを確認します.構成パスがclasspath:configである場合.properties、マウスでファイルをクリックします.「multiple implementations」と表示され、複数のファイルがあることを示し、他のファイルに必要な構成項目があるかどうかを確認し、なければ、他のファイルがロードされた構成項目である可能性が高い.このとき、パスをclasspath*:configに変更する.propertiesでいいです.


ログを表示します.

[2017-01-05 16:45:02 INFO ] [main] (org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?) - Loading properties file from URL [jar:file:/home/admin/creative-task/lib/xxxx-common-1.5.7.jar!/config.properties]

[2017-01-05 16:45:02 INFO ] [main] (org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?) - Loading properties file from URL [file:/home/admin/creative-task/conf/config.properties]

2つのconfigがロードする.propertiesファイル.
3.診断について:
1)まず、プロファイルが正しくロードされていることを確認します.ログの表示:
通常のログは次のとおりです.

[2017-01-05 16:45:02 INFO ] [main] (org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?) - Loading properties file from URL [file:/home/admin/creative-task/conf/config.properties]

例外ログは次のとおりです.

[2017-01-05 16:39:39 ERROR] [main] (Main:22) - Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [config.properties] cannot be opened because it does not exist

org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [config.properties] cannot be opened because it does not exist 

ファイルがロードされていない場合は、パスが一致しているかどうかなどを確認します.
2)ファイルがOKをロードした場合、構成プロパティが正しくロードされているかどうかを確認します.
tomcatが起動したdebugログを表示します.
通常のログは次のとおりです.

[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [environmentProperties]

[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [systemProperties]

[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [systemEnvironment]

[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Could not find key 'adx.id' in any property source. Returning [null]

[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [localProperties]

[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Found key 'adx.id' in [localProperties] with type [String] and value '1'

例外ログは次のとおりです.

[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [environmentProperties]

[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [systemProperties]

[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [systemEnvironment]

[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Could not find key 'adx.id' in any property source. Returning [null]

[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key 'adx.id' in [localProperties]

[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Could not find key 'adx.id' in any property source. Returning [null]

springがpropertiesファイルデータを読み込む方法については、次の関連記事を参照してください.