<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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">
<!--
spring 对bean的管理细节
1.创建bean的三种方式
2.bean对象的作用范围
默认前提下是单例的可以使用scope属性进行调整
取值范围singleton,prototype,session(作用于web应用的会话范围),
request(作用于web应用的请求范围),
global-session(作用于集群环境下的会话范围)
3,bean对象的生命周期
单例对象的生命周期于容器相同,容器创建时对象出生
容器销毁时对象死亡
多例对象中 对象的创建在使用时spring为我们创建对象的死亡靠gc
-->
<!-- 第一种使用默认构造方法创建-->
<bean id="myName" class="dao.AccountDaoImp" scope="singleton" />
<!-- 第二种使用工厂中的方法创建并存入spring容器-->
<bean id="factory" class="factory.MyFactory"/>
<bean id="myName" factory-bean="factory" factory-method="getbeans"/>
<!-- 第三种使用工厂中的静态方法创建并存入spring容器 其中getbeans变成一个静态方法-->
<bean id="factory" class="factory.MyFactory"/>
<bean id="myName" class="factory.MyFactory" factory-method="getbeans1"/>
<!-- 构造函数的注入:
使用的标签constructor-arg
标签中的属性
1.type用于指定要注入的数据的数据类型
2.index构造函数中参数索引的位置
3.name构造函数中指定的参数索引名称
=======以上是一类===
4.value是要注入的值,value中写得是八大基本类型的基础值基本类型和string类型
ref中可以是其他类型的bean 标签里的id值
优势在获取bean对象时,不注入数据是无法创建成功的
缺点:在创建bean对象时用不到这些数据也必须提供
一般不用
-->
<bean id="construct" class="serve.IAccountServeImp">
<constructor-arg name="accountDaoImp" ref="myName"/>
<!--
-->
</bean>
<!-- set方法注入
涉及的标签property
标签的属性
3.name构造函数中指定的参数索引名称
4.value是要注入的值,value中写得是八大基本类型的基础值基本类型和string类型
ref中可以是其他类型的bean 标签里的id值
-->
<bean id="construct" class="serve.IAccountServeImp">
<property name="accountDaoImp" ref="myName"></property>
</bean>
<!-- 复杂类型注入-->
<bean id="construct" class="serve.IAccountServeImp">
<property name="list" >
<array>
<value></value>
</array>
</property>
</bean>
</beans>