2016-10-31 5 views
0

私はスプリングブートアプリケーションを持っています。私はメイン/リソースフォルダの下に置いたファイルをほとんど読まないようにしています。私はSpringのブートが自動的にリソースフォルダの下のapplication.propertiesを読むことがわかります。しかし、私はresourcesフォルダの下に置いた他のxml/textファイルを読むようには見えません。スプリングブート - リソースフォルダの下のリソースを特定します。

Source xslt = new StreamSource(new File("removeNs.xslt")); 

明示的にパスを指定しなくても、リソースフォルダ内のすべてのファイルを自動的に読み取るためのプログラムを追加する必要がありますか?

答えて

3
ClassLoader classLoader = getClass().getClassLoader(); 
File file = new File(classLoader.getResource("removeNs.xslt").getFile()); 

を使用して、複数のプロパティのソースを指定することができます。 。。

File file = new File(Thread.currentThread().getContextClassLoader().getResource("removeNs.xslt").getFile()); 
+0

は、私がお勧めし 'にThread.currentThread()getContextClassLoader()のgetResource()は'の例では、クラスローディング技術は時々内の失敗以来:@Edwinは、より堅牢なソリューションを言及するため

感謝アプリケーションコンテキスト –

+0

@EdwinDalorzo良い提案。答えに追加されました。 –

+0

ありがとうEdwinDalorzo&Terry Li! –

1

あなたは

@PropertySource注釈を使用してリソースフォルダの下に特定のファイルを読みたいことを指定する必要があります。

あなたはこれが動作するはず

@PropertySources({ 
    @PropertySource(), 
    @PropertySource() 
}) 
関連する問題