2011-08-11 16 views
27

Spring3 BeanにタイプResourceのプロパティがあり、クラスパス内のファイルへの参照を挿入する必要があります。私はこれを実現するために以下の@Valueアノテーションを使用します。クラスパスリソースをSpring 3 Beanに注入

public class TestBean 
{ 
    @Value("classpath:/abc/student/test.sql") 
    private Resource SqlFile; 
    ... 
} 

ただし、プロパティは常にnullです。私はSQLファイルがmavenターゲットディレクトリ(target/classes/abc/student/test.sqlにあります)にデプロイされていることを確認しました。

私がGoogleにできる最も近い解決策は、thisthisで、xmlの方法を詳しく説明しましたが、注釈を使用してこれを行うことに興味がありました。

ここで間違っている可能性のある点については、何かを気にしてください。それはそのようにハードコーディングされたことになるだろう場合

おかげで、

ビジェイ

答えて

39

は、その後、ちょうど

private Resource sqlFile = new ClassPathResource("/abc/student/test.sql"); 

そうでない場合は、あなたが本当にしているものの後

@Value("${some.property}") 
private Resource sqlFile; 
です

と私はプロパティ値を注入すると、正しいPropertyEditorが適用されると信じています。

+1

合意 - http://stackoverflow.com/questions/6392406/populate-spring-beans-file-field-via-annotation/6392724#6392724 – sourcedelica

+0

あなたの返信ありがとうございます。両方のソリューションが機能しました。私は@Valueアプローチが私のコードからSpringクラスへの依存を許可しないので、@Valueアプローチを好まれました。 –

+0

あなたは@Valueが春のクラスであることを知っていますか? – Wes

関連する問題