と の 2 つのアプリケーションがapi
ありdashboard
ます。これらのアプリケーションは両方とも、同じデータベースの同じフィーチャーを使用します。Togglz コンソールは、アプリケーションでのみアクティブになりdashboard
ます。問題は、アプリケーションの機能の状態を変更してもdashboard
、api
アプリケーションがすぐにそれを認識しないことです。api
機能の状態を更新するには、再起動する必要があります。
api
再起動せずに機能状態の変更をアプリケーションに通知することはできますか?
更新 - Togglz 構成が追加されました
これは私のMavencommon
プロジェクトの基本構成です(プロジェクトはこれに依存しています) api
:dashboard
@Configuration
public class FeatureToggleConfiguration {
@Autowired
private DataSource dataSource;
@Bean
public FeatureManager getFeatureManager() {
// @formatter:off
FeatureManager featureManager = new FeatureManagerBuilder()
.stateRepository(new CachingStateRepository(new JDBCStateRepository(dataSource)))
.featureEnum(ApplicationFeatures.class)
.userProvider(new SpringSecurityUserProvider(Authority.Type.ROLE_ADMIN.getName()))
.build();
// @formatter:on
return featureManager;
}
}
ApplicationFeatures
common
(プロジェクトにも配置):
public enum ApplicationFeatures implements Feature {
// @formatter:off
@EnabledByDefault
@Label("Log Events Feature")
LOG_EVENT_FEATURE,
@EnabledByDefault
@Label("Log Ok Sessions Feature")
LOG_OK_SESSIONS_FEATURE,
@EnabledByDefault
@Label("Log HTTP Requests Data Feature")
LOG_HTTP_REQUESTS_DATA_FEATURE;
// @formatter:on
public boolean isActive() {
return FeatureContext.getFeatureManager().isActive(this);
}
}
これは私のプロジェクトDashboardFeatureToggleConfiguration
の (Togglz Web コンソール用)です。dashboard
@Configuration
public class DashboardFeatureToggleConfiguration {
@Bean
public ServletRegistrationBean getTogglzConsole() {
ServletRegistrationBean servlet = new ServletRegistrationBean();
servlet.setName("TogglzConsole");
servlet.setServlet(new TogglzConsoleServlet());
servlet.setUrlMappings(Collections.singletonList("/togglz/*"));
return servlet;
}
}