首页 新闻 会员 周边

实现了同一接口的多个Servicel实现类,如何同时注入Controller?

0
[已解决问题] 解决于 2017-10-18 10:04

案例:一个下载多种文件的功能,我的想法是,

(1)一个service接口,声明一个方法(下载文件方法);

(2)每种文件的下载业务分别由一个service实现类实现,这些实现类实现了上述接口,重写下载方法;

(3)所有的下载业务由一个Controller控制。

难点:上述(3),不知道怎样注入多个service实现类。

zhoupengqin的主页 zhoupengqin | 菜鸟二级 | 园豆:204
提问于:2017-10-04 00:53
< >
分享
最佳答案
1

可以考虑用工厂模式,直接注入工厂,然后在control 中获取工厂,最后从工厂中获取想要的事实现类。参考asp.net core 中LoggerFactory的实现。

奖励园豆:5
蝌蝌 | 初学一级 |园豆:158 | 2017-10-04 06:35
其他回答(1)
0

如果使用spring的话有两种方式可以实现:其一,注入的时候标记别名;其二,使用Qualifier()标签

climber1990 | 园豆:204 (菜鸟二级) | 2017-10-19 22:56

谢谢,已经解决了。先后分别用了Qualifier()和ApplicationContext getBean(String,Class) 的方法。

支持(0) 反对(0) zhoupengqin | 园豆:204 (菜鸟二级) | 2017-10-20 08:39

@zhoupengqin: 赞👍

支持(0) 反对(0) climber1990 | 园豆:204 (菜鸟二级) | 2017-10-20 11:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册