假如项目中有两个模块,A依赖B,则我们说A是高模块,B是低模块,同时A中有个类叫做Caculate,方法叫getTotal()
问题:B模块怎么用到A中的这个方法呢?
方案1:在B模块添加对A的依赖是否可行呢?
分析:不可行的,因为A依赖了B,B依赖了A
在加载A时需要先加载B,而加载B的前提又是加载A,这样启动时就会出错了!
方案2:把A的代码拷贝到B中?
分析:假如把方法拷贝过去,一般也要牵涉到其他的一些类什么的都要拷贝过去,这样做不仅
繁琐,更是给后期维护带了了很大的麻烦,所以并不合适!
方案3:接口
在B中添加个接口,不妨命名为CaculateInterface
此时B中的某个类如何要引用的话,就可以这么写
CaculateInterface caculate来引用,注意后面的是cac ulate,因为这个要和实现类名称保证一样,才能对应到实现,其实实质是要
set方法对应上,才能保证注入相应的实现
这里还要说明,在spring的大容器中注入的实例没有高低之分