在本指南中,您将使用时间窗口筛选器为 Spring Boot 应用程序按计划启用某个功能。
使用的示例基于功能管理 快速入门中引入的 Spring Boot 应用程序。 在继续下一步之前,请完成快速入门,以使用 Beta 功能标志创建 Spring Boot 应用程序。 完成后,您必须将时间窗口筛选器添加到应用配置存储中的Beta功能标志。
先决条件
使用时间窗口筛选器
你已在先决条件中为 Beta 功能标志添加了时间窗口筛选器。 接下来,你将在 Spring Boot 应用程序中将功能标志与时间窗口筛选器配合使用。
该 spring-cloud-azure-feature-management 库内置了 TimeWindowFilter。 当你包含功能管理依赖项时,将自动注册此筛选器。 无需手动注册。
在应用的包目录中,用以下代码更新DemoApplication.java文件:
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import com.azure.spring.cloud.feature.management.FeatureManager;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public CommandLineRunner runner(FeatureManager featureManager) {
return args -> {
for (int i = 0; i < 10; i++) {
System.out.println("Beta is enabled: " + featureManager.isEnabled("Beta"));
Thread.sleep(5000);
}
};
}
}
正在运行的时间窗口筛选器
运行应用程序时,配置提供程序从 Azure 应用配置加载 Beta 功能标志。
isEnabled("Beta") 方法的结果将打印到控制台。 如果当前时间早于为时间窗口筛选器设置的开始时间,则时间窗口筛选器将禁用 Beta 功能标志。
你将看到以下控制台输出。
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
开始时间过后,你会注意到 Beta 功能标志由时间窗口筛选器启用。
在启用 Beta 版时,你将看到控制台输出发生更改。
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true
Beta is enabled: true
Beta is enabled: true
如果在设置时间窗口筛选器时启用了重复周期,则控制台输出将更改为 Beta is enabled: false 一旦当前时间经过在时间窗口筛选器中设置的结束时间。 但是,它将根据定期设置再次更改为 Beta is enabled: true ,并持续此模式,直到定期过期时间(如果已设置)。
后续步骤
若要了解有关功能筛选器的详细信息,请继续学习以下文档。