特性开关有时只是简简单单的通过配置true or false来决定开或关,而有时要根据某种策略来决定开或关。对于开关策略,特性开关框架一般会提供不少默认的策略给我们用,但有时我们也会遇到框架没有提供而我们又想要的,这时则需要我们自定义。掌握特性开关框架默认提供的开关策略及如何自定义开关策略都很重要。下面我以FF4J这个框架为例,介绍它自带提供的策略及如何扩展实现自己的策略。
FF4J默认提供的策略
上面截图列出了FF4J提供的所有默认策略,有基于表达式的策略,有基于时间的策略,有白名单黑名单策略,有权重策略等,下面我们看看默认策略怎么用。
默认策略示例
<feature uid="laolaxin" enable="true">
<flipstrategy class="org.ff4j.strategy.time.ReleaseDateFlipStrategy">
<param name="releaseDate" value="2018-02-26-12:15"/>
</flipstrategy>
<custom-properties>
<property name="return" value="活动未开始,尽请期待"/>
</custom-properties>
</feature>
@RequestMapping("/activity/laolaxin")
@Feature(name="laolaxin")
public String laolaxin(){