背景
我现在有一个请求,需要根据请求中的类型来决定调用哪一层Service,
@Autowired
private A a;
@Autowired
private B b;
@Autowired
private C c;
if( x == 1){
a.doXXX();
}else if(a == 2){
// b.doXXX();
}else if(a == 2){
// c.doXXX();
}else if ....
用策略+工厂模式来优化一下上面的写法
举个栗子:
Service.
这是三个被调用的不同Service.
其中代码如下:
他们需要有一个共同的父类,便于工厂类返回时统一接收, 并需实现InitializingBean 接口。
Factory
主要就是Map的put 和get.
InitializingBean接口: spring提供的接口类,spring完成bean的初始化后会去执行此接口下的 afterPropertiesSet() 方法。
Controller
PS: spring会在Bean加载完成后执行afterPropertiesSet 但是如果是懒加载情况下将不一定能执行到该方法,可以设置@Lazy(value=false) 到类上。