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>