概述

Spring的配置有beans、bean、import、alias、description

image-20220214001056935

说明

beans

Spring配置文件的根元素,里面可以包含很多个bean标签

1
2
3
4
5
6
<?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">

</beans>

bean

bean标签放在beans标签内部

每一个bean标签为一个对象,常用属性有:id为对象名,class为所属对象,name为别名(多个别名可以用英文逗号,隔开)

property标签为对象的属性名称以及值,name为属性名称,value为值

1
2
3
4
5
<!--通过无参构造方法创建对象-->
<bean id="tom" class="entity.Student" name="s1,s2">
<property name="id" value="1"/>
<property name="name" value="tom"/>
</bean>

import

在当前配置文件导入其他的Spring配置文件的配置,resource属性为导入的XML文件名称

下面我在beans.xml导入bean1.xml的配置,相当于将bean1.xml的beans标签内部的所有配置都复制到beans.xml内

beans.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?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">

<!--通过无参构造方法创建对象-->
<bean id="tom" class="entity.Student" name="s1,s2">
<property name="id" value="1"/>
<property name="name" value="tom"/>
</bean>
<!--导入bean1.xml的配置-->
<import resource="bean1.xml"/>
</beans>

bean1.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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">

<!--通过有参构造方法创建对象(通过下标赋值)-->
<bean id="tom1" class="entity.Student">
<constructor-arg index="0" value="2"/>
<constructor-arg index="1" value="tom1"/>
</bean>
<!--通过有参构造方法创建对象(通过参数类型赋值)-->
<bean id="tom2" class="entity.Student">
<constructor-arg type="int" value="3"/>
<constructor-arg type="java.lang.String" value="tom2"/>
</bean>
<!--通过有参构造方法创建对象(通过参数名称赋值)-->
<bean id="tom3" class="entity.Student">
<constructor-arg name="id" value="4"/>
<constructor-arg name="name" value="tom3"/>
</bean>
</beans>

alias

别名,放在beans标签内部,name属性为对应bean的id,alias属性为别名的名称

和bean的name属性是一样的效果,一般不使用这种方式,使用bean的name属性就可以了(可以直接在对应的bean上看到,方便管理)

1
2
3
4
5
6
7
8
9
10
11
12
13
<?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">

<!--通过无参构造方法创建对象-->
<bean id="tom" class="entity.Student">
<property name="id" value="1"/>
<property name="name" value="tom"/>
</bean>
<!--id为tom的bean的别名-->
<alias name="tom" alias="s3"/>
</beans>

description

XML文件描述,一定放在beans标签内部的第一行(即放在所有bean、import、alias标签前面),不然会提示错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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">

<description>我是描述</description>
<!--通过无参构造方法创建对象-->
<bean id="tom" class="entity.Student">
<property name="id" value="1"/>
<property name="name" value="tom"/>
</bean>
<!--id为tom的bean的别名-->
<alias name="tom" alias="s3"/>
<!--导入bean1.xml的配置-->
<import resource="bean1.xml"/>
</beans>