问题描述
我在项目中有一些用于重构逻辑的通用接口。看起来像这样:
public interface RefactorAwareEntryPoint {
default boolean doRefactor() {
if (EventLogService.wasEvent(getEventType())) {
return true;
}
boolean result = doRefactorInternal();
if (result) {
EventLogService.registerEvent(eventType);
}
return result;
}
String getEventType();
boolean doRefactorInternal();
}
然后,当我需要编写一些重构时,我用方法实现此接口,将类标记为@Component
,然后Spring in loop评估每个接口实现并将其注册到数据库中。
但是我们有很多重构(每年-200-300个新的)。很难手动禁用旧的实现,并且在我们的Spring上下文中有很多bean。
我们可以做一些事情,例如使用一些注释-在某些情况下会禁用组件的创建吗?
例如:
@Component
@Enabled(YEAR.2020)
public class CustomRefactor implements RefactorAwareEntryPoint {
// Code implementation
}
此注释将像这样(伪代码)工作:
if (YEAR.2020) {
create bean -> new CustomRefactor()
}
当它是YEAR.2021
时-在春季上下文中,我们将没有YEAR.2020
中的bean。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)