Spring Java Config:如何使用package-private目标类构造函数创建ProxyFactoryBean

时间:2015-09-12 19:53:22

标签: java spring spring-java-config proxyfactory

给出以下Java代码(来自我控制之外的第三方库):

package some.third.party.lib;    

interface MyInterface { ... }

以及带有package-private构造函数的以下类A(这是它唯一的构造函数):

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

class A implements MyInterface {

  A() {}

}

ProxyFactoryBean.setTargetName需要已实例化的bean的ID。 由于我的Spring Java Config类位于特定于应用程序的包中(我不想将其更改为some.third.party.lib),因此我无法实例化A类,因为它是package-private。 我知道我可以使用反射暂时改变A的构造函数的可见性,但如果可能的话我想避免这种情况。

Q :(如何)我可以在Spring Java Config中创建A类的Spring(4.2.1.RELEASE)ProxyFactoryBean而无需使用反射(并且不必将我的Java Config Class放入与A)相同的包中?

请注意,使用Spring XML配置时,不会出现这种情况,因为Spring(在后台)为A类创建了一个Bean,可能也使用了反射。

0 个答案:

没有答案