Autowirde和Resource注入的问题

Autowirde和Resource注入的问题

在这里插入图片描述

起因:今天的开发中又踩到了坑,完成数据库切换的工作之后提交了代码,发现有一处提示错误,本着不能有错误的原则,将此处的autowirde改为了resource,结果提交之后TMD代码跑不起来了。

疑问:

  1. 为什么autowirde提示报错却可以成功运行,resource刚好相反?
  2. 两者区别?

答案:

  1. autowirde是默认通过声明的类型注入也就是大家都在说的bytype,resource是默认通过变量名注入也就是byname,也就是会通过类型或者变量名在ioc容器寻找注入bean。我出现的错误就是因为在别的类中还有一个不同类型的但变量名相同的paramMapper所以会出错,改为autowirde通过声明的类型注入就不会出现这个错误;autowirde报错是因为idea的报警机制,autowirde注入时要求(注入)对象不能为 NULL,idea无法识别mybatis的注解所以无法判断为不为null所以会报错
  2. 除了默认优先注入方式不同;还有提供方不同,autowirde为spring提供,resource为java提供;autowirde需要注入对象存在于ioc容器中
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值