spring-配置bean(3、基于xml配置)

时间:2020-12-20 19:08:11

通过xml配置应该是现如今最常见的配置方式

这是最简单的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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">


</beans>

可以看到,最简单的xml文件就比Java多很多配置代码,而且有些命名空间还要自己去添加,略麻烦。而Java中只需要在一个POJO(普通Java类)上添加一个@Configuration就行了。而要在xml中添加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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

<!--只需要beans元素中添加一个bean元素就好了
这里相当于SgtPeppers sgtPeppers1=new SgtPeppers();-->

<bean id="sgtPeppers1" class="soundsystem.SgtPeppers"></bean>
</beans>

在这里,id是给你的这个bean命名,以后要引用这个bean直接用id名就好了,class写你的类所在的路径。这是默认构造器的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" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

<!--利用constructor-arg元素,然后ref属性引用compactDisc -->
<bean id="cdPlayer" class="soundsystem.CDPlayer">
<constructor-arg ref="compactDisc "/>
</bean>

</beans>

此段代码等效基于JavaConfig一篇中的代码:

@Bean
public CDPlayer cdPlayer(CompactDisc sgtPeppers){
return new CDPlayer(sgtPeppers);
}