使用功能切换在应用程序配置中创建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();
}
}
}发布于 2017-10-31 15:19:49
你不应该这样做。;-)
这段代码的问题在于,您基本上在启动时只读取了一次切换,然后就不能再更改它。这不是Togglz通常的用法。
相反,您应该设计您的应用程序,以便可以在运行时切换开关。Togglz提供了专门为这种情况设计的FeatureProxyFactoryBean。
您也可以手动创建,方法是为两个实现创建一个公共接口,然后创建一个实现,该实现基本上检查每个方法调用的切换,然后委托给正确的实例。
https://stackoverflow.com/questions/46614308
复制相似问题