依赖注入的方式
详细介绍spring DI方式,通过本文快速掌握。
一句话解释DI(IOC)就是通过依赖注入实现控制反转。
通过构造器注入的方式,也会看到约定优于配置的地方
(毕竟配置需要自己一步一步去写)
1. set注入(通过setter方法)
依赖注入底层是通过反射实现的(通过全限定类名,name值反射推到setter方法)
使用<property></property>
必须有setter()方法
2. 构造器注入
使用<constructor-arg></constructor-arg>
必须有构造器,必须包含一个无参构造器
默认使用顺序是按照参数顺序,如果不是需要特殊说明
指定方式1. index
2.name
3.type(三种可以同时使用)
<constructor-arg value="230" index="1"></constructor-arg>
<constructor-arg ref="teacher" name="teacher"></constructor-arg>
<constructor-arg value="C++" type="String"></constructor-arg>
默认是String类型(String类型优先),约定由于配置可见一斑
3. p命名空间注入
(1)引入命名空间
头文件加入(xmlns:p="http://www.springframework.org/schema/p")
(2)注入,注入与区别
简单类型 P:属性名=“属性名”
引用类型(String 除外) p:属性名-ref="引用的ID"
<bean id="course" class="com.sgy.entity.Course" p:courseName="python" p:courseHour="321" p:teacher-ref="teacher">
<bean id="teacher" class="com.sgy.entity.Teacher" p:age="27" p:name="lingzi">
[attention]: 多个p中间注意有空格,不然会报错