目前,我们是基于Spring的应用程序的FF4J切换框架,在这里我们使用SpringJDBSC存储。目前的问题是,我们有多个应用程序部署在一个环境中,如DEV、UAT等,这些功能是在启用或禁用的环境中为所有应用程序创建的。现在,我希望为每个应用程序启用/禁用特性,比如特性"TestFeature“对于App1应该是打开的,对于DEV环境中的app2应该是OFF。任何关于如何实现这一点的建议都是非常有用的。
发布于 2018-11-23 13:35:49
applicationName,以便您知道是否切换了某个特性。此值可以是应用程序的webContext,也可以是配置文件中的属性(如果使用Spring,则为application.properties)。样本ApplicationNameStrategy:
public class ApplicationNameStrategy extends AbstractFlipStrategy {
private String currentApplicationName = null;
public ApplicationNameStrategy() {}
public ApplicationNameStrategy() {
currentApplicationName = //.. init the value here
}
/** {@inheritDoc} */
@Override
public void init(String featureName, Map<String, String> initParams) {
super.init(featureName, initParams);
}
/** {@inheritDoc} */
@Override
public boolean evaluate(String featureName, FeatureStore store, FlippingExecutionContext executionContext) {
// special sauce !
return Arrays.asList(store.read(featureName).getCustomProperty("grantedApplications").split(",")).contains(currentApplicationName);
}示例ff4j.xml片段
<feature uid="myFeature" enable="true" description="description" >
<custom-properties>
<property name="grantedApplication"
type="org.ff4j.property.domain.PropertyString"
value="appA,appB" />
</custom-properties>
<flipstrategy class="ApplicationNameStrategy">
</flipstrategy>
</feature>https://stackoverflow.com/questions/47936884
复制相似问题