Spring Java Config: как создать ProxyFactoryBean с помощью конструктора закрытого класса пакета

Учитывая следующий код Java (из сторонней библиотеки вне моего контроля):

package some.third.party.lib;    

interface MyInterface { ... }

и следующий класс A с частным конструктором пакета (это его единственный конструктор):

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

class A implements MyInterface {

  A() {}

}

ProxyFactoryBean.setTargetName ожидает идентификатор уже созданного компонента. Поскольку мой класс Spring Java Config находится в пакете для конкретного приложения (и я не хочу менять его на some.third.party.lib), я не могу создать экземпляр класса A, так как он является частным для пакета. Я знаю, что мог бы использовать отражение, чтобы временно изменить видимость конструктора А., но я хотел бы избежать этого, если это возможно.

Q: (Как) я могу создать Spring (4.2.1.RELEASE) ProxyFactoryBean класса A в Spring Java Config без необходимости использовать отражение (и без необходимости помещать мой Java Config Class в тот же пакет, что и A)?

Обратите внимание, что при использовании Spring XML config такая ситуация не возникает, потому что Spring (в фоновом режиме) создает Bean-компонент для класса A, вероятно, также с использованием отражения.

0 ответов

Другие вопросы по тегам