Springブートでは、@ManagedResourceでマークされたオブジェクトをautowireすることは可能ですか?私はそれをしようとしていますが、オブジェクトはnullです。例えばSpringブートautowire @ManagedResource
:
@Component
@ManagedResource(objectName = MyMBean.MBEAN_NAME)
public class MyMBeanImpl implements MyMBean {
private String attribute;
@Override
@ManagedAttribute(description="some attribute")
public void setAttribute(String attribute) {
this.attribute = attribute;
}
}
スプリングは、適切なMBeanの作成します。お使いの設定が適切に定義されていない場合@Autowiredオブジェクトが初期化されないことがあります
@Component
public final class Consumer {
@Autowired
MyMBean mBean; // is null
...
}
**固定**。問題は '@ ManagedResource'に全くありませんでした。問題は_field injection_にあった。 _コンストラクタインジェクション_が私の問題を解決しました。詳細については、[https://stackoverflow.com/questions/39890849/what-exactly-is-field-injection-and-how-to-avoid-it](https://stackoverflow.com/questions/39890849/)を参照してください。フィールドインジェクションとハウツーフィーリングを行う方法) – piphonom
この記事ではいくつかの点を明らかにすることができます:[http://www.baeldung.com/running-setup-logic-on-startup-in (http://www.baeldung.com/running-setup-logic-on-startup-in-spring) – piphonom