spring 配置文件的根元素是<beans> ,<beans>中包含了多个<bean>子元素,每个<bean>元素定义一个Bean,并描述Bean如何被装配到spring容器中。
bean元素常用属性及其子元素如下
属性或子元素 | 描述 |
id | bean的唯一标识,在代码中通过beanFactory获取bean实例时需要以此作为索引名称 |
class | bean的具体实现类,值= 包名.类名 |
scope | bean实例的作用域 |
<constructor-arg> | 构造方法注入,指定构造方法的参数, index属性---指定参数的序号 ref---指定bean的引用关系 type---指定参数类型 value---指定参数的常量值 |
<property> | <bean>元素的子元素,用于setter方法注入属性。 name属性---指定bean实例中相应的属性名称 value----指定bean的属性值 ref----指定属性对beanFactory中其他Bean的引用关系 |
<list> | <property>元素的子元素,用于封装List或数组类型的依赖注入 |
<map> | <property>元素的子元素,用于封装Map类型的依赖注入 |
<set> | <property>元素的子元素,用于封装set类型的依赖注入 |
<entry> | <map>元素的子元素,用于设置一个键值对 |
bean的配置代码示例
<?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">
<!-- 将 dao.TestDIDaoImpl托管给spring -->
<bean id="mytestDao" class="dao.TestDIDaoImpl"></bean>
<!-- 使用构造方法注入 -->
<bean id="testDIService" class="service.TestDIServiceImpl">
<!-- 将 mytestDao注入到TestDIServiceImpl类的属性TestDIDao上 -->
<constructor-arg index="0" ref="mytestDao" />
</bean>
<!--
constructor-arg 定义类构造方法的参数
index 定义参数的位置
ref 指定某个实例的引用,如果参数是常量值,ref由value代替
-->
<!-- 使用setter方法注入 -->
<bean id="testDIService2" class="service.TestDIServiceImpl2">
<property name="tdo" ref="mytestDao"></property>
<!--
name setter方法注入的属性
ref 指定某个实例的引用
-->
</bean>
</beans>