私はあなたに私の問題を説明しようとします。毎回の前にSpring beanの初期化
私はクラスパスからサーバ上のローカルフォルダにファイルをコピーすることができます。 Beanは、このように定義されており、それがファイルをコピーする必要がある場所を知っているプロパティ値を使用している:
@Service("wsConfig")
public class WorkspaceConfig implements InitializingBean {
@Value("path.to.copy")
String path;
@Value("classpath.to.copy")
String folder
@Override
public void afterPropertiesSet() {
/** Do my copy stuff */
}
}
その後、私はそのコピーの結果に依存しており、それらは次のように定義されているいくつかの豆があります
を春の値でプレースホルダをリンクする際file://${user.home}/${path.to.copy}/file.properties
存在しません:
@PropertySource(value = "file://${user.home}/${path.to.copy}/file.properties")
@Service
public class Bean{
/** Bean Stuff */
}
私の問題は、Beanが初期化されるときにファイルがあることです。 最初のBeanを作成し、それらのファイルを正しくコピーするために他のBeanの前に呼び出す方法があるかどうかは疑問でした。
ありがとうございます。
[別のBeanに依存](http://docs.spring.io/spring/docs/current/javadoc-api/org/) springframework/context/annotation/DependsOn.html)が役に立ちます –
これはうまくいかないでしょう。 '@ PropertySource'は' @ Value'アノテーションを評価する前に処理される予定であり、マルチパスプロセスではないので、単に置くだけで動作しません。 'ApplicationContext'が初期化される前にそのロジックを実行する必要があります。たとえば、' ApplicationContextInitializer'のように配置する必要があります。 –