话不多说–童鞋们 干货走起—
这里我的实体类属性如下:
下面我们根据以上实体类中属性去开始编写DI注入的三种方法啦 同学们。
依赖注入(DI) 有三种注入编写方法:
第一种:设值注入
底层实现 setter方法
name与对应类在中属性的set方法名一致
使用无参构造创建对象 并赋值
-->
<bean id="Students" class="com.gxy.entity.Student">
<property nameStudents="stu_id" value="111"/>
<property name="stu_name" value="张三"/>
<property name="stu_age" value="18"/>
<property name="stu_gender" value="男"/>
<property name="tea_id" value="1"/>
<property name="teacher" ref="teacher/>
</bean>
第二种:构造注入
<!--
底层实现 构造方法注入
使用有参构造创建对象 并赋值
-->
<bean id="teacher" class="com.gxy.entity.Teacher">
<constructor-arg index="0" value="小苗"/>
<constructor-arg index="1" value="18"/>
</bean>
<bean id="Students" class="com.gxy.entity.Student">
<constructor-arg name="stu_id" value="111"/>
<constructor-arg name="stu_name" value="张三"/>
<constructor-arg name="stu_age" value="18"/>
<constructor-arg name="stu_gender" value="男"/>
<constructor-arg name="tea_id" value="11"/>
<constructor-arg name="teacher" ref="teacher"/>
</bean>
第三种:自动装配:分两种ByName和ByType
ByName自动装配
autowire=“byName”
运行过程:先去实体类中找对应的
<!--
byName:会自动在容器上下文中查找 和自己对象的set方法后面 的值相同
-->
<bean id="People" class="com.test.entity.People" autowire="byName">
<property name="name" value="张三"/>
</bean>
ByType自动装配
autowire=“byType”
byType:会自动在容器上下文中查找 和自己对象类型相同 并且用的时候是唯一
-->
<bean id="People" class="com.test.entity.People" autowire="byType">
<property name="name" value="张三"/>
</bean>
小结:
ByName:byname的时候要保证bean的id唯一,并且这个bean需要和自动注入的属性的set方法中的值一致。
ByType:bytype的时候要保证所有bean的class唯一,并且这个bean需要和自动注入的类型一致。
**好啦童鞋们,今天干货就分享到这里啦,不妨动动你的小手手帮博主点波关注吧,你的关注就是我前进的动力啦------
奥利给 !! 让我们一起加油吧!!!
版权声明:本文为King_ppo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。