前提:
一个接口 IService 两个不同的实现AService BService
一个properties配置文件,里面一个配置,A=true
@IocBean
public class TestContrller {
@Inject("refer:$me.getA?"AService":"BService" ")
protected IService iservice;
private boolean getA(){
return $config.get("A");
}
}
请问:
1、要在TestContrller里根据配置文件注入不同的Service怎么写?
2、Inject中refer类型后面可以跟el表达式吗?
1 回复
新版支持用方法声明一个ioc bean,所以可以这样
@IocBean
public class MyBeans {
@Inject
PropertiesProxy conf;
@Inject("refer:$ioc")
@IocBean(name="userService")
public UserService getUserService() {
if (conf.get("xxx")) return ioc.get(AUserService.class) else ....
}
.... 更多bean
注入时用
@Inject
UserService userService; //属性名与@IocBean的name一致,或者写@Inject("refer:userService")
添加回复
请先登陆