1

と の 2 つのアプリケーションがapiありdashboardます。これらのアプリケーションは両方とも、同じデータベースの同じフィーチャーを使用します。Togglz コンソールは、アプリケーションでのみアクティブになりdashboardます。問題は、アプリケーションの機能の状態を変更してもdashboardapiアプリケーションがすぐにそれを認識しないことです。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;
    }

}

ApplicationFeaturescommon(プロジェクトにも配置):

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;
    }

}
4

1 に答える 1