天天看点

XML(2)——再看spring配置文件

一、前言

之前写过一篇《xml(1)——shema约束之命名空间》解释了schema中的命名空间,看过这篇文章之后会对spring的配置文件有更好的理解。该文章地址:http://blog.csdn.net/woshixuye/article/details/26950075

二、再看spring配置文件

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:tx="http://www.springframework.org/schema/tx"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemalocation="

http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 

http://www.springframework.org/schema/tx 

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

http://www.springframework.org/schema/aop 

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<!-- 配置事务管理器 -->

<bean id="transactionmanager"

class="org.springframework.jdbc.datasource.datasourcetransactionmanager">

<property name="datasource" ref="datasource" />

</bean>

<!-- 拦截器方式配置事务 -->

<tx:advice id="transactionadvice" transaction-manager="transactionmanager">

<tx:attributes>

<tx:method name="*tranc" propagation="required" />

<tx:method name="*" read-only="true" />

</tx:attributes>

</tx:advice>

<!-- service包或子包里,任意返回值(第一个*),任意以impl结尾类(第二个*),任意方法(第三个*),方法可以含任意参数(..) -->

<aop:config>

<aop:pointcut id="transactionpointcut" expression="execution(* com.xy.service..*impl.*(..))" />

<aop:advisor pointcut-ref="transactionpointcut" advice-ref="transactionadvice" />

</aop:config>

</beans>

xmlns="http://www.springframework.org/schema/beans"该shema指定了整个spring文件默认约束,beans和bean标签就在该约束下。

xmlns:tx和xmlns:aop指定了事务和面向切面的约束,所以这两个约束下的标签都是以tx或aop开头的。

xmlns:xsi和xsi:schemalocation还是指定了shema文件的位置,因为不是w3c的shema的话都需要指定该约束的位置。