注釈のみを使用してXMLなしでセットアップされた大きなSpringアプリケーションがあります。私はこのアプリケーションにいくつかの変更を加え、ほぼ同じコードでなければならないものとは別のプロジェクトを持っています。しかし、この別のプロジェクトでは、Togglzは私が設定したTogglzConfigファイルの代わりに何らかのデフォルト設定を使用しているようです。私のSpringアプリケーションが実行されているときに、TogglzConfigファイルが使用されていない
何かが間違っていた最初の兆候は、私がTogglzコンソールにアクセスできないときでした。 Togglezサイトに表示されているように、自分の設定が誰でも使用できるように設定されているにもかかわらず、403 Forbiddenエラーが表示されます。フィーチャクラスにもかかわらずいくつかの機能が含まれていても、フィーチャクラスのリストが表示されていましたが、フィーチャクラスのリストを表示しようとしましたが、FeatureContext.getFeatureManager()。getFeatures()これが、何らかのデフォルトを使用していると思う理由です。
TogglzConfiguration.java
public enum Features implements Feature {
FEATURE1,
FEATURE2,
FEATURE3,
FEATURE4,
FEATURE5;
public boolean isActive() {
return FeatureContext.getFeatureManager().isActive(this);
}
}
TogglzConfiguration.java
@Component
public class TogglzConfiguration implements TogglzConfig {
public Class<? extends Feature> getFeatureClass() {
return Features.class;
}
public StateRepository getStateRepository() {
File properties = [internal call to property file];
try {
return new FileBasedStateRepository(properties);
} catch (Exception e) {
throw new TogglzConfigException("Error getting Togglz configuration from " + properties + ".", e);
}
}
@Override
public UserProvider getUserProvider() {
return new UserProvider() {
@Override
public FeatureUser getCurrentUser() {
return new SimpleFeatureUser("admin", true);
}
};
}
}
SpringConfiguration.java
@EnableTransactionManagement
@Configuration
@ComponentScan(basePackages = { "root package for the entire project" }, excludeFilters =
@ComponentScan.Filter(type=FilterType.ANNOTATION, value=Controller.class))
public class SpringConfiguration {
@Bean
public TransformerFactory transformerFactory() {
return TransformerFactory.newInstance();
}
@Bean
public DocumentBuilderFactory documentBuilderfactory() {
return DocumentBuilderFactory.newInstance();
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
私のプロジェクトは@Componentアノテーションで設定し、他の豆の束を見つけました。問題がこのコンポーネントが全く拾われていないかどうか、またはTogglzが単に何らかの理由でそれを使用していないかどうかはわかりません。私はFeatureContext.getFeaturemanager()によって返されたFeatureManagerの名前を印刷しようとしましたが、これはFallbackTestFeatureManagerです。これは自分の設定を全く使用していないという私の疑惑を確認するようです。
誰でも私が確認できるものはありますか?私はアイデアから脱却しました。特に、これは私のマシン上のほぼ完全に同じIntelliJプロジェクトで動作しています。私は、Togglzの設定やSpringの設定とは何が違うのか分かりません。あなたの助けを前にありがとう。