为了账号安全,请及时绑定邮箱和手机立即绑定

@Autowired讲得不是很清楚

@Autowired讲得不是很清楚,直说了可以注解属性 set方法 构造器。没说这个属性是接口申明的还是实现类申明的。看了代码知道是接口申明的,可以注入实现类的实例。以前通过xml定义bean比较容易明白这个过程。可是注解的话教程使用了自动扫描。如果这个包下面某接口有多个实现类呢?自动扫描就会都装载到IOC容器。那注入的时候怎么确定是哪个实现类的实例呢??

正在回答

4 回答

IOC是一种容器,也就是说配置文件中配置bean就相当于spring为你生产这个类的对象,并且管理这个对象,而你自己不用去实例化对象和销毁。接口本身是不能实例化对象的,如果在接口上面注解就违反了这一原则。

0 回复 有任何疑惑可以回复我~

注解一般都是放在实现类上面的吧,老师中的代码也是写在实现类上的,而不是写在接口上,因为一个包内类的类名必须要不一样,要是一样的话不就起冲突了么,所以ioc容器加载bean的时候就可以从类名来找了,

0 回复 有任何疑惑可以回复我~

我也觉得讲的不是很清楚。

在spring注入的时候分为设值注入和构造注入,写配置文件的。

设值注入时候,属性需要有set方法,如果用注解的话 比如service层中用@service注解注入了,其中包含属性CodeMapper那么在此属性上用@Autowired就相当于用配置文件中配置的时候,需要些写的set方法了。

构造注入也是同理。

说白了,@Autowired注解写在成员变量上就不用写set方法了。它与@reposotory @service @controller联合使用就相当于设值注入和构造注入

0 回复 有任何疑惑可以回复我~
#1

涅槃ing

@reposotory @service @controlle 这个本质上到底有什么区别呢?
2016-01-24 回复 有任何疑惑可以回复我~

自己测试发现报异常 不能有两个实现类。我感觉好晕啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

@Autowired讲得不是很清楚

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信