singleton bean在加载配置文件时候创建单一实例
prototype bean在每次执行getBean()方法时候执行,即多实例
init-method 定义初始化方法 多用于资源的加载
destroy-method 定义销毁方法 多用于资源的释放
如:在impl类中添加 init()方法和destroy()方法,则在applicationContext.xml文件中配置Bean如下:
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy"></bean>
<!--1.通过构造方法实例化Bean-->
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy"></bean>
<!--2.通过构造方法实例化Bean-->
<bean id="userDao" class="com.itcast.factory.UserStaticFactory" factory-method="getUserDao"></bean>
<!--3.通过普通工厂方法实例化Bean-->
<!--3.1实例化UserDynamicFactory类-->
<bean id="factory" class="com.itcast.factory.UserDynamicFactory" ></bean>
<!--3.2通过3.1的factory 实例化userDao -->
<bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>
set方法依赖注入 name指定字段名,ref引用spring容器中的id,
使用p标签applicationContext文件设置
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--1.通过构造方法实例化Bean-->
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy"></bean>
<!--2.通过构造方法实例化Bean-->
<!-- <bean id="userDao" class="com.itcast.factory.UserStaticFactory" factory-method="getUserDao"></bean>-->
<!--3.通过普通工厂方法实例化Bean-->
<!--3.1实例化UserDynamicFactory类-->
<!-- <bean id="factory" class="com.itcast.factory.UserDynamicFactory" ></bean>-->
<!-- <!–3.2通过3.1的factory 实例化userDao –>-->
<!-- <bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>-->
<!--<bean id="userService" class="com.itcast.service.impl.UserServiceImpl">-->
<!-- <property name="userDao" ref="userDao"></property>-->
<!--</bean>-->
<bean id="userService" class="com.itcast.service.impl.UserServiceImpl" p:userDao-ref="userDao"/>
</beans>
构造依赖注入的name指定字段名 ,ref指定配置文化中bean 属性id值
<!--构造器依赖注入-->
<bean id="userService" class="com.itcast.service.impl.UserServiceImpl" >
<constructor-arg name="userDao" ref="userDao">
</constructor-arg>
</bean>
1.set方式注入普通数据,实现数据注入的效果
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
<property name="age" value="20"></property>
<property name="userName" value="zhangsan"></property>
</bean>
2.set方式注入集合数据
2.1List<Stiring>
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
<property name="strList">
<list>
<value>王五</value>
<value>李四</value>
<value>张三</value>
</list>
</property>
</bean>
2.2Map<String,User>
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
<property name="userMap">
<map>
<description></description>
<entry key="张三" value-ref="user1"></entry>
<entry key="李四" value-ref="user2"></entry>
<entry key="王五" value-ref="user3"></entry>
</map>
</property>
</bean>
<bean id="user1" class="com.itcast.domain.User">
<property name="name" value="张三"></property>
</bean>
<bean id="user2" class="com.itcast.domain.User">
<property name="name" value="李四"></property>
</bean>
<bean id="user3" class="com.itcast.domain.User">
<property name="name" value="王五"></property>
</bean>
2.3
<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
<property name="properties">
<props>
<prop key="zhangsan">张三</prop>
<prop key="lisi">李四</prop>
<prop key="wangwu">王五</prop>
</props>
</property>
</bean>
get依赖注入的id是属性名(就是去get后的名字),