当Spring同时使用了XML配置和注解

本文探讨了Spring框架中依赖注入的两种声明方式:XML配置和注解,并指出在AccountServiceCenter项目中二者共存时,Spring优先使用XML配置而忽略注解的情况。通过具体示例VersionDAO,讲解了正确使用@Autowired和@Qualifier进行依赖注入的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AccountServiceCenter项目中有些依赖注入的Bean同时使用了XML配置和注解的方式进行了声明,网上有人说这种情况下注解的优先级高,但我测试过后发现当两种方式并存的时候Spring是优先使用XML配置的方式,忽略注解。大家可以选择其中的一种方式进行声明,虽然两种方式同时声明也不会出错,但容易让人迷惑。另外,项目中使用注解声明的时候有错误,但因为xml也配置了,所以错误被掩盖。以VersionDAO类为例,在类上面声明了@Repository("versionDAO"),但没有引用要依赖注入的SqlMapClient,也没有setReadSqlMapClient或setWriteSqlMapClient方法,这种情况是不能注入SqlMapClient的。正确的写法应该是
@Autowired
public void setReadSqlMapClient(@Qualifier("mappSqlMapClient")SqlMapClient readSqlMapClient)


注意@Autowired和@Qualifier的使用。没有@Autowired,spring不会调用setReadSqlMapClient方法,没有@Qualifier,spring虽然会调用setReadSqlMapClient方法但却找不到readSqlMapClient也会导致无法注入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值