需求是这样的
1、一个管理组件,用于管理多个功能模块,这些模块实现了同一个接口,这个管理组件把这些功能模块当作这个接口类型进行管理
2、接口的实现类有多个,它们都将被@Component注解,并且可能将来还会增加,增加的数量不定
3、在这个管理组件,会在系统启动时调用管理组件的 start() 方法,然后 start() 方法通过 spring 提供的工具类,查找所有实现接口的模块,并调用它们的一个接口方法
现在问题时,如何保证管理组件加载时,所有的模块都已经加载完成
看看@ConditionalOnBean 和 @DependsOn 这两个注解的作用
这种方式要求穷举吧?
我就是不希望进行穷举,当有新的模块加进来时,只修改新模块的内容,或者当移除一些模块时,在模块那里把注解去掉就可以了