0

次のJavaコードが与えられた場合(私の管理外のサードパーティライブラリから):

package some.third.party.lib;    

interface MyInterface { ... }

そして、パッケージプライベートコンストラクターを持つ次のクラス A (これが唯一のコンストラクターです):

package some.third.party.lib;
[...]

class A implements MyInterface {

  A() {}

}

ProxyFactoryBean.setTargetName は、すでにインスタンス化された Bean の ID を想定しています。私のSpring Java Configクラスはアプリケーション固有のパッケージに含まれているため(そして、それをsome.third.party.libに変更したくないため)、パッケージプライベートであるため、クラスAをインスタンス化できません。リフレクションを使用して A のコンストラクターの可視性を一時的に変更できることは承知していますが、可能であればこれを避けたいと考えています。

Q : (どのように) Spring Java Config でクラス A のSpring (4.2.1.RELEASE) ProxyFactoryBeanを作成できますか?

Spring XML 構成を使用する場合、この状況は発生しないことに注意してください。これは、Spring (バックグラウンドで) がおそらくリフレクションも使用してクラス A の Bean を作成するためです。

4

0 に答える 0