NutzCN Logo
问答 inject注入接口的不同实现
发布于 1785天前 作者 hujun82589167 2183 次浏览 复制 上一个帖子 下一个帖子
标签:

前提:
一个接口 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")
添加回复
请先登陆
回到顶部