6
A
答えて
10
いいえ、できません。パラメータが必要な場合は、事前にフィールドとして注入する必要があります。
サンプル・ビーン
public class Foo{
@Autowired
private Bar bar;
public void init(){
bar.doSomething();
}
}
サンプルXML:
<bean class="Foo" init-method="init" />
2
あなたが前の回答のように作成しようとしているクラスを変更することはできませんが、あなたは、むしろで作業しているときに、この方法は特に便利ですAPIを提供し、提供されたBeanをそのまま使用する必要があります。
あなたはいつもFactoryBeanのを実装するクラス(MyObjectFactory)を作成し、あなたが書くべきのgetObject()メソッド内の可能性:
@Autowired
private MyReferenceObject myRef;
public Object getObject()
{
MyObject myObj = new MyObject();
myObj.init(myRef);
return myObj;
}
そして、あなたは簡単なを持っているでしょう春のcontext.xmlで:
<bean id="myObject" class="MyObjectFactory"/>
0
protected void invokeCustomInitMethod(String beanName, Object bean, String initMethodName)
throws Throwable {
if (logger.isDebugEnabled()) {
logger.debug("Invoking custom init method '" + initMethodName +
"' on bean with beanName '" + beanName + "'");
}
try {
Method initMethod = BeanUtils.findMethod(bean.getClass(), initMethodName, null);
if (initMethod == null) {
throw new NoSuchMethodException("Couldn't find an init method named '" + initMethodName +
"' on bean with name '" + beanName + "'");
}
if (!Modifier.isPublic(initMethod.getModifiers())) {
initMethod.setAccessible(true);
}
initMethod.invoke(bean, (Object[]) null);
}
catch (InvocationTargetException ex) {
throw ex.getTargetException();
}
}
参照ばねsoruceコード Method initMethod = BeanUtils.findMethod(bean.getClass(), initMethodName, null);
でinitメソッドを見つけるとparamがnullである
関連する問題
- 1. 春ブートデータソースの初期化エラー
- 2. 春の静的初期化Springの静的初期化
- 3. パラメータでの初期化
- 4. 春ブーツアプリの初期化に失敗
- 5. インデックスアクションプレゼンターのメソッドを初期化
- 6. MSTestのグローバルテスト初期化メソッド
- 7. Ibatisパラメータの初期化の問題
- 8. JavaFXでのNullPointerExceptionの初期化メソッド
- 9. R参照クラスのメソッド初期化
- 10. オブジェクトとメソッドの初期化と宣言
- 11. iOSサブクラスUICollectionViewCellカスタムの初期化メソッド
- 12. 指定された初期化子にスーパークラスの初期化メソッドをリンクする
- 13. ユーザーに初期化のカスタム初期化メソッドを使用させる
- 14. デフォルト初期化と値の初期化
- 15. 初期化子の初期化子
- 16. iOS初期化パラメータがnilである
- 17. パラメータでシングルトンを遅延初期化
- 18. 順序初期化静的パラメータ
- 19. 春の初期化はプロジェクトの外で行われました
- 20. クラス初期化時の春の自動ワイヤリング
- 21. 別のクラスでパラメータ化されたオブジェクトの初期化
- 22. 避けコントローラの初期化、が、全体Beanプールを初期化せずに春のブートHandlerInterceptor
- 23. 春のブートでElasticsearchが初期化されない
- 24. C++初期化非仮想メソッド
- 25. JavaFX FXMLコンストラクタと初期化メソッド
- 26. Swiftでパラメータ化された初期化子のリフレクション
- 27. viewDidLoadメソッド内のUIViewControllerでメソッドを初期化する方法
- 28. Migrations Seedメソッドは、初期化メソッドのシードメソッドを無視します。
- 29. 遅延初期化と初期化
- 30. アプリケーションの初期化コントローラへのパラメータの取得方法
ありがとう、情報ありがとうございます – Radu