使用功能切换以在应用配置中创建bean的示例:
@RefreshScope
@Configuration
@Order(1)
class AppConfig {
@Bean
@Autowired
public FeatureProvider featureProvider() {
return new EnumBasedFeatureProvider(FeatureToggle.class);
}
@Bean
@Autowired
ProjectAccess getProjectAccess(DataSource dataSource, HazelcastLocator hazelcastLocator) {
if(FeatureToggle.MY_TOGGLE_NAME.isActive()) {
return new MyTestClass();
}
else {
return new YourTestClass();
}
}
}
答案 0 :(得分:0)
你不应该这样做。 ; - )
此代码的问题在于您基本上在启动时读取切换一次,然后无法再更改它。那不是通常使用Togglz的方式。
相反,您应该设计您的应用程序,以便可以在运行时切换开关。 Togglz提供了专为此案例设计的FeatureProxyFactoryBean。
您也可以通过为两个实现创建一个公共接口来手动创建,然后创建一个实现,它基本上检查每个方法调用的切换,然后委托给正确的实例。