Spring_特殊值的注入问题和各种类型的自动装配
- 1.set两种方式的区别
- 第4中赋值方式:自动装配(只适用于ref类型)
- 使用注解定义bean
1.set两种方式的区别
(1)把值写到value属性里面,必须加引号,写到子元素里不需要加
(2)type属性区别
(3)参数值包含特殊符号
子元素可以有另外一种选择
构造方法:
处理空值
报错原因:
在创建对象时,是通过反射调无参构造
当写了一个构造函数时,系统就不会再产生无参构造了
使用构造器方式给list赋值:
第4中赋值方式:自动装配(只适用于ref类型)
约定由于配置
可以不配置ref,就可以将teacher赋值给course
根据类型自动装配:
根据构造方法自动装配:
构造方法需要一个Teacher类型的,看看bean中有没有定义的有这样的,有就自动注入。该类的构造方法需要一个Teacher,
为了避免在自动装配的时候给每一个bean都要写autowire,可以一次性给所有的bean都自动装配
对于子bean 的自动装配类型可以自定义设置,比如全局设置的是byName,子bean可以设置成byType
在这里插入图片描述
使用注解定义bean
配置扫描器
把这个类所在的包放进去,就可以扫描这个包下面的东西,如果要扫描多个包,可以在上面的包后面“,”再加上包的名字。
(1)通过注解声明一下该类准备放入到ioc容器
(2)告诉容器,在扫描时不要忘了在这个包下面有一个声明需要加入到ioc容器里。找这个dao包下有没有注解,如果有,就将这个类纳入ioc容器
两种方式的对应
Component适用的范围太大了,service,dao,都可以用它,
(1)修饰dao层,使用@Repository