1

使用功能切换在应用配置中创建 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();
        }
    }
}
4

1 回答 1

1

你不应该这样做。;-)

这段代码的问题在于,您基本上是在启动时读取一次切换,然后无法再更改它。这不是 Togglz 通常使用的方式。

相反,您应该设计您的应用程序,以便可以在运行时切换开关。Togglz 提供了专为这种情况设计的FeatureProxyFactoryBean 。

您也可以通过为两个实现创建一个公共接口来手动创建,然后创建一个实现,该实现基本上检查每个方法调用的切换,然后委托给正确的实例。

于 2017-10-31T07:19:48.753 回答