<?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-2.5.xsd">
<!-- 使用类构造器实例化 -->
<bean id="personService1" class="service.PersonServiceImpl"></bean>
<!-- 使用静态工厂方法实例化 -->
<bean id="personService2" class="service.PersonServiceFactory" factory-method="createPersonService"></bean>
<!-- 使用实例工厂方法实例化 -->
<bean id="personServiceFactory" class="service.PersonServiceFactory"></bean>
<bean id="personService3" factory-bean="personServiceFactory" factory-method="createPersonServiceD"></bean>
</beans>
spring的实例化配置有以上三种方法,都是以单例模式实例化。
参数说明:
scope 默认是single(加载容器时实例化),还有prototype(getBean时实例化)
lazy-init 是否延迟实例化 如果是scope=“single”,那么将在getBean时实例化
init-method 实例化时执行的方法,一般在实例化后执行
destroy-method bean销毁时执行的方法
依赖注入有两种配置方法
<bean id="personDao" class="dao.PersonDaoImpl"></bean>
<bean id="personService1" class="service.PersonServiceImpl">
<!-- ref注入-->
<property name="personDao" ref="personDao"></property>
</bean>
<bean id="personService4" class="service.PersonServiceImpl">
<!-- 内部bean注入 -->
<property name="personDao">
<bean class="dao.PersonDaoImpl"/>
</property>
</bean>
其中,还可以为service的基本属性注入值,比如service有属性:private String name;
<bean id="personService4" class="service.PersonServiceImpl">
<!-- 内部bean注入 -->
<property name="name" value=“hello”>
</property>
</bean>
集合属性的注入
<bean id="personService4" class="service.PersonServiceImpl">
<property name="list">
<list>
<value>1</value>
<value>2</value>
</list>
</property>
</bean>