麻烦老师看一下
# 具体遇到的问题
@Autowired 默认按照类型进行注入,如果存在两个Bean类型相同,则按照名称注入
1、加粗的这句话是不是可以理解成,在一个类里面,有两个对象类型一样的属性的情况下,要注入哪个对象,就在哪个对象的set方法或者定义属性的语句上使用名称注入的注解。
2、使用注解的方式怎么更改bean的作用域。如果我两个对象都想要注入,应该怎么办
3、如果1我理解的正确的话,老师说的也太绕了点,希望能讲解的再通俗易懂一些,这么绕真的很掉头发
正在回答
同学你好,如果是同学描述的场景,多例注入不同的属性值,需要在xml配置文件中,创建多个实例,然后在注入时,使用@Qualifier根据名称注入不同的实例。如:
xml配置文件中创建多个bean实例,属性值不同:
注入时,使用@Autowired @Qualifier()根据名称,注入不同的属性值,
另外同学关于“@Autowired 默认按照类型进行注入,如果存在两个Bean类型相同,则按照名称注入”这句话的理解不太正确,之前的回答已做修改,同学可以再去查看。
祝学习愉快!
同学你好,1. 同学理解有一点问题,按照名称注入,是按照@Qualifier注解设置的名称进行注入。如下:
@Autowired默认按照类型进行匹配,如果存在相同类型的属性,则就需要按照@Qualifier注解添加的名称进行注入,如:写成:@Autowired @Qualifier("personDao")就是按照personDao名称进行装配。
2. 同学描述的作用域是否是单例与多例,如果是,则同学可使用@Scope注解进行设置(@Scope("prototype") 默认是单例(singleton), 多例(prototype)),如果不是,则建议同学重新描述一下问题。
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星