Я пытаюсь реализовать Togglz & Spring, используя @Configuration beans, а не XML. Я не уверен, как настроить возвращаемый тип компонента конфигурации. Например:Togglz with Spring @Configuration bean
@Configuration
public class SystemClockConfig {
@Bean
public SystemClock plainSystemClock() {
return new PlainSystemClock();
}
@Bean
public SystemClock awesomeSystemClock() {
return new AwesomeSystemClock();
}
@Bean
public FeatureProxyFactoryBean systemClock() {
FeatureProxyFactoryBean proxyFactoryBean = new FeatureProxyFactoryBean();
proxyFactoryBean.setActive(awesomeSystemClock());
proxyFactoryBean.setInactive(plainSystemClock());
proxyFactoryBean.setFeature(Features.AWESOME_SYSTEM_CLOCK.name());
proxyFactoryBean.setProxyType(SystemClock.class);
return proxyFactoryBean;
}
}
Метод systemClock
возвращает FeatureProxyFactoryBean
но клиенты этого боба требуют SystemClock
. Конечно, компилятор увлекается этим.
Я предполагаю, что это просто работает при использовании конфигурации XML. Как мне подойти к нему при использовании компонента конфигурации?
Эта реализация в случае использования функции переключает бесполезно, потому что ваша реализация будет обнаружена один раз, поскольку она предоставляется как singleton – vvursT
FeatureProxyFactoryBean создаст прокси-сервер, который будет отправлять вызовы методов в правильный экземпляр. Так что все будет хорошо. – chkal
мой плохой. ты прав! – vvursT