SpringJava配置:如何使用包私有目标类构造函数创建ProxyFactoryBean

SpringJava配置:如何使用包私有目标类构造函数创建ProxyFactoryBean,java,spring,spring-java-config,proxyfactory,Java,Spring,Spring Java Config,Proxyfactory,给出以下Java代码(来自我无法控制的第三方库): 以及以下带有包专用构造函数的类A(这是其唯一的构造函数): ProxyFactoryBean.setTargetName需要已经实例化的bean的ID。 由于我的SpringJava配置类位于特定于应用程序的包中(我不想将其更改为某个.third.party.lib),因此我无法实例化类A,因为它是包私有的。 我知道我可以使用反射来临时更改A的构造函数的可见性,但如果可能的话,我希望避免这种情况 Q:(如何)在SpringJava配置中创建类a

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

以及以下带有包专用构造函数的类A(这是其唯一的构造函数):

ProxyFactoryBean.setTargetName需要已经实例化的bean的ID。 由于我的SpringJava配置类位于特定于应用程序的包中(我不想将其更改为某个.third.party.lib),因此我无法实例化类A,因为它是包私有的。 我知道我可以使用反射来临时更改A的构造函数的可见性,但如果可能的话,我希望避免这种情况

Q:(如何)在SpringJava配置中创建类a的Spring(4.2.1.RELEASE),而不必使用反射(也不必将我的Java配置类放入与类a相同的包中)


请注意,当使用Spring XML config时,这种情况不会发生,因为Spring(在后台)为类a创建了一个Bean,可能也使用了反射。

如果第三方库将这个类构造函数包设置为私有,这意味着它不应该被不在同一个包中的任何类实例化。这也可能意味着它应该由同一个包中的某个工厂类实例化。为什么您试图绕过这个问题,而不使用这个工厂来实例化这个类?第三方librray、接口和类是什么?当然,您可以在同一个包中创建自己的工厂(使用公共方法),但这与反射解决方案的质量相同。
package some.third.party.lib;    

interface MyInterface { ... }
package some.third.party.lib;
[...]

class A implements MyInterface {

  A() {}

}