代码的结构如下:public class MainProcessor{ private void doProcess(){ service1.doSomething();
service2.doSomething();
........
serviceN.doSomthing();
}现在spring的实现是用注解,现在想达到的效果是:添加了serviceN 这个类,实现了doSomthing的方法,MainProcessor能调用到.
如何在不修改 MainProcessor.java代码的情况下 能让 serviceN这个类动态注册上去调用?
MainProcessor 如何在运行的时候找出所有注册的service,spring里面对这种情况有什么好的处理机制?
service2.doSomething();
........
serviceN.doSomthing();
}现在spring的实现是用注解,现在想达到的效果是:添加了serviceN 这个类,实现了doSomthing的方法,MainProcessor能调用到.
如何在不修改 MainProcessor.java代码的情况下 能让 serviceN这个类动态注册上去调用?
MainProcessor 如何在运行的时候找出所有注册的service,spring里面对这种情况有什么好的处理机制?
所有的具体服务实现这个接口,再都丢到spring的IOC容器中。
Spring默认的IOC容器就继承了ListableBeanFactory接口的,可以直接使用getBeansOfType(Class<T> type)方法,获得所有service接口的bean对象,也就是你的那些具体服务,然后循环调用doSomething方法就可以了。