给定以下 Java 代码(来自我无法控制的第 3 方库):
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 的构造函数的可见性,但如果可能的话,我想避免这种情况。
问:(如何)我可以在 Spring Java Config 中创建类 A 的 Spring (4.2.1.RELEASE) ProxyFactoryBean而不必使用反射(并且不必将我的 Java Config Class 放入与 A 相同的包中)?
请注意,在使用 Spring XML 配置时,不会出现这种情况,因为 Spring(在后台)为 A 类创建了一个 Bean,可能也使用了反射。