配置变化我有一个@Configuration
类,如下所示:刷新一个Bean而不@RefreshScope
@Configuration
public class SampleKieConfiguration {
@Bean
public KieServices kieServices() {
return KieServices.Factory.get();
}
@Bean
public KieContainer kieContainer() {
ReleaseId releaseId = kieServices().newReleaseId("groupId", "artifactId", "version");
KieContainer kieContainer = kieServices().newKieContainer(releaseId);
kieServices().newKieScanner(kieContainer).start(10_000);
return kieContainer;
}
@Bean
public KieBase kieBase() {
KieBaseConfiguration kieBaseConfiguration = kieServices().newKieBaseConfiguration();
kieBaseConfiguration.setOption(EqualityBehaviorOption.EQUALITY);
kieBaseConfiguration.setOption(EventProcessingOption.CLOUD);
return kieContainer().newKieBase(kieBaseConfiguration);
}
}
kieServices().newKieScanner(kieContainer).start(10_000);
线基本上民调远程Maven仓库,并刷新kieContainer
对象每隔10秒,如果有一个新的工件。
,并在我的上层(如服务层)的地方,我有:
@Service
@RefreshScope
public class SampleService {
@Autowired
private KieBase kBase;
}
的kBase
对象不刷新(至少不能以新的kieContainer
对象)据我所见,当我拨打/refresh
端点时。我没有集中配置,当我拨打/refresh
时,我收到了一条警告。我想要实现的是在每次更新kieContainer
时都会有一个新的kBase
对象。我怎样才能做到这一点?谢谢!
谢谢,感谢答案。但现在我得到了'java.lang.ClassCastException:$ Proxy11不能转换为some.package.KnowledgeBaseImpl'。有什么想法吗? –