开发工具与关键技术:eclipse
作者:Mr_恺
撰写时间:2021.1.18
Spring的依赖注入的几种方式(1),通过构造函数注入和set方法注入演示了基本类型和String类型和其他的bean类型的注入,还有一个复杂类型(集合类型)和一个扩展p名称空间的注入演示。
创建一个java项目,把用到的包和类创建好:
- 复杂类型的注入用到的实现类
- p名称空间注入用到的实现类
把Spring的jar包引进来:
创建一个xml文件并命名为bean.xml,导入Spring的约束
导入spring的约束spring的IoC约束:beans
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p=http://www.springframework.org/schema/p
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
注意:p名称空间注入,用到的
xmlns:p=http://www.springframework.org/schema/p
p名称空间注入和复杂类型的注入采用的是set的注入方法
- 使用p名称空间注入 它的本质仍然是需要类中提供set方法,同时在配置文件中导入p名称空间
<bean id="accountService3"
class="com.itheima.service.impl.AccountServiceImpl3" p:name="张三">
</bean>
2.复杂类型的注入:注入的方式我们采用set方法,注入的类型都是集合类型 结构相同,标签可以互换。
<bean id="accountService4" class="com.itheima.service.impl.AccountServiceImpl4">
<!-- 给数组注入数据 -->
<property name="myStrs">
<array>
<value>AAA</value>
<value>BBB</value>
<value>CCC</value>
</array>
</property>
<!-- 给list注入数据 -->
<property name="myList">
<list>
<value>AAA</value>
<value>BBB</value>
<value>CCC</value>
</list>
</property>
<!-- 给set集合注入数据 -->
<property name="mySet">
<list>
<value>AAA</value>
<value>BBB</value>
<value>CCC</value>
</list>
</property>
<!-- 给map集合注入数据 -->
<property name="myMap">
<props>
<prop key="testC">CCC</prop>
<prop key="testD">DDD</prop>
</props>
</property>
<!-- 给properties注入数据 -->
<property name="myProps">
<map>
<entry key="testA" value="555"></entry>
<entry key="testB">
<value>555</value>
</entry>
</map>
</property>
</bean>
我这里map集合注入数据和properties注入数据标签互换了,证明对我们注入的数据是
没有影响的,是一样可以注入的,前提:注入的类型都是集合类型 结构相同,标签可以互换。
创建一个类模拟表现层运行,根据bean的id获取对象,调用注入方法:
- 注入结果: