首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FF4J功能切换问题

FF4J功能切换问题
EN

Stack Overflow用户
提问于 2017-12-22 06:34:11
回答 1查看 727关注 0票数 0

目前,我们是基于Spring的应用程序的FF4J切换框架,在这里我们使用SpringJDBSC存储。目前的问题是,我们有多个应用程序部署在一个环境中,如DEV、UAT等,这些功能是在启用或禁用的环境中为所有应用程序创建的。现在,我希望为每个应用程序启用/禁用特性,比如特性"TestFeature“对于App1应该是打开的,对于DEV环境中的app2应该是OFF。任何关于如何实现这一点的建议都是非常有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-23 13:35:49

  1. 每个应用程序都应该有一个参数applicationName,以便您知道是否切换了某个特性。此值可以是应用程序的webContext,也可以是配置文件中的属性(如果使用Spring,则为application.properties)。
  2. 在此值上创建一个FlippingStrategy值,如下所示

样本ApplicationNameStrategy:

代码语言:javascript
复制
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);
}
  1. 特别地更新您的功能

示例ff4j.xml片段

代码语言:javascript
复制
<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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47936884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档