spring annotation与ioc原则的冲突

最近在学习spring annotation,昨天晚上突然想到一个问题:用annotation这种零xml的方式会不会导致不灵活呢。举个例子,如下:
一个接口:

public interface IStudent{
//to do something
}

按照两种不同的业务规则,也许这个接口会存在两种实现

public class StudentImpl implements IStudent{
//implements interface
}
public class StudentImplExt implements IStudent{
//implements interface
}

方式一:按照以前用xml配置的方式,当我们需要第一种业务规则,我们可以把xml写成这样:<bean id="student" class="com.xxx.StudentImpl"/>,而当我们需要第二种业务规则,很简单,修改xml:bean id="student" class="com.xxx.StudentImplExt"/>,这xml之间的转换可以通过代码生成器代劳,配置不同的模板即可,非常方便。
方式二:使用annotation后,在controller中必然会有这样的代码:

@Autowired(required=true) @Qualifier("studentImpl")
IStudent iStudent

这样我想想,其实和硬编码的方式没什么两样,IStudent iStudent = new StudentImpl(),假如说要满足第一种方式里的需求,必须要去修改类中的注入代码,是不是很麻烦呢?
刚学习annotation,也许理解还不透彻,希望大家讨论一下,怎样能用annotation达到灵活的效果,或者说annotation真的不如以前xml的灵活?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值