在装配bean的时候,还有一种可选方案。官方可能认为这种方式不好,因为非 java 代码配置,但是每个人的看法和喜好不同,也不是说不能选择的。
创建XML配置规范
在使用JavaConfig的时候,这意味着要创建一个带 有@Configuration注解的类,而在XML配置中,这意味着要创建一个XML文件,并且要以<beans>元素为根。
最为简单的Spring XML配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
这个基本的XML配置已经比同等功能的JavaConfig类复杂得多了。作为起步,在JavaConfig中所需要的只是@Configuration,但在使用XML时,需要在配置文件的顶部声明多个XML模式(XSD)文件,这些文件定义了配置Spring的XML元素。
当然在 idea 中,你只需要选择 file 然后新建,然后 如图:
他会创建一个最最最基础的 xml 文件:
<?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>
为了做测试,让我们重新在走一遍CD样例,这次使用XML配置,而不是前几篇文章 使用JavaConfig和自动化装配。
声明一个简单的<bean>
要在基于XML的Spring配置中声明一个bean,我们要使用spring-beans模式中的另外一个元素:<bean>。
<bean>元素类似于JavaConfig中的@Bean注解。我们可以按照如下的方式声明CompactDisc bean:
<bean id="compactDisc" class="soundsystem.SgtPeppers" />
这是最最基本的 声明 bean 的方式,当然 id 可有可无,创建这个bean的类通过class属性来指定的,并且要使用绝对路径,全路径。
如果不加 id
没有明确给定ID,所以这个bean将会根据全类名来进行命名。
在本例中,bean的ID将会是“soundsystem.SgtPeppers#0”。其中,“#0”是一个计数的形式(计数就是为了区分),用来区分相同类型的其他bean。
如果你声明了另外一个SgtPeppers(另外一个的前提是不在同一个包下),并且没有明确进行标识,那么它自动得到 的ID将会是“soundsystem.SgtPeppers#1”。
不过,通常来讲更好的办法是借助id属性,为每个bean设置一个你自己选择的名字,以便于日后引用可以直接使用。
声明简单bean的一些特征
-
无需负责创建SgtPeppers的实例,也就是初始化;
-