xml version="1.0"encoding="UTF-8"?>
<beans
beans —— xml文件的根節(jié)點。
xmlns="http://www.springframework.org/schema/beans"
xmlns ——是XML NameSpace的縮寫坠敷,因為XML文件的標簽名稱都是自定義的现使,自己寫的和其他人定義的標簽很有可能會重復(fù)命名,而功能卻不一樣十艾,所以需要加上一個namespace來區(qū)分這個xml文件和其他的xml文件,類似于java中的package。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi ——是指xml文件遵守xml規(guī)范涧郊,xsi全名:xml schema instance,是指具體用到的schema資源文件里定義的元素所準守的規(guī)范眼五。即/spring-beans-2.0.xsd這個文件里定義的元素遵守什么標準妆艘。
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:tx — -啟動聲明事務(wù)時的命名空間
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:top - -啟動AOP功能時的命名空間
xmlns:context="http://www.springframework.org/schema/context"
xmlns:context:是啟動自動掃描或注解裝配時的命名空間
xsi:schemaLocation="
xsi:schemaLocation——是指,本文檔里的xml元素所遵守的規(guī)范看幼,schemaLocation屬性用來引用(schema)模式文檔批旺,解析器可以在需要的情況下使用這個文檔對XML實例文檔進行校驗。它的值(URI)是成對出現(xiàn)的诵姜,第一個值表示命名空間汽煮,第二個值則表示描述該命名空間的模式文檔的具體位置,兩個值之間以空格分隔棚唆。
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd">
配置數(shù)據(jù)源=========================================?-->
<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">
<propertyname="driverClass"value="${driverClassName}"/>
<propertyname="jdbcUrl"value="${jdbc.url}"/>
<propertyname="user"value="${jdbc.username}"/>
<propertyname="password"value="${jdbc.password}"/>
請求超時時間-->
<propertyname="checkoutTimeout"value="30000"/>
每60秒檢查所有連接池中的空閑連接暇赤。默認值:?0,不檢查-->
<propertyname="idleConnectionTestPeriod"value="30"/>
連接數(shù)據(jù)庫連接池最大空閑時間-->
<propertyname="maxIdleTime"value="30"/>
連接池初始化連接數(shù)-->
<propertyname="initialPoolSize"value="5"/>
<propertyname="minPoolSize"value="5"/>
<propertyname="maxPoolSize"value="20"/>
當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數(shù)宵凌。默認值:?3?-->
<propertyname="acquireIncrement"value="5"/>
bean>
和MyBatis完美整合鞋囊,不需要mybatis的配置映射文件-->
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"/>
自動掃描mapping.xml文件-->
<propertyname="mapperLocations"value="classpath*:com/xunyou/mapping/*.xml"/>
bean>
接口所在包名,Spring會自動查找其下的類-->
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
<propertyname="basePackage"value="com.xunyou.mapper"/>
<propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
bean>
事務(wù)管理)transaction?manager,?use?JtaTransactionManager?for?global?tx?-->
<beanid="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource"ref="dataSource"/>
bean>
攔截器方式配置事物-->
<tx:adviceid="transactionAdvice"transaction-manager="transactionManager">
<tx:attributes>
<tx:methodname="add*"propagation="REQUIRED"/>
<tx:methodname="append*"propagation="REQUIRED"/>
<tx:methodname="insert*"propagation="REQUIRED"/>
<tx:methodname="save*"propagation="REQUIRED"/>
<tx:methodname="update*"propagation="REQUIRED"/>
<tx:methodname="modify*"propagation="REQUIRED"/>
<tx:methodname="edit*"propagation="REQUIRED"/>
<tx:methodname="delete*"propagation="REQUIRED"/>
<tx:methodname="remove*"propagation="REQUIRED"/>
<tx:methodname="repair"propagation="REQUIRED"/>
<tx:methodname="delAndRepair"propagation="REQUIRED"/>
<tx:methodname="get*"propagation="SUPPORTS"/>
<tx:methodname="find*"propagation="SUPPORTS"/>
<tx:methodname="load*"propagation="SUPPORTS"/>
<tx:methodname="search*"propagation="SUPPORTS"/>
<tx:methodname="datagrid*"propagation="SUPPORTS"/>
<tx:methodname="*"propagation="SUPPORTS"/>
tx:attributes>
tx:advice>
<aop:config>
解釋一下(*?com.evan.crm.service.*.*(..))中幾個通配符的含義:
第一個*?——通配任意返回值類型
第二個*?——通配包com.evan.crm.service下的任意class
第三個*?——通配包com.evan.crm.service下的任意class的任意方法
第四個..?——通配方法可以有0個或多個參數(shù)
<aop:pointcutid="transactionPointcut"expression="execution(*?com.xunyou.serviceManagerImpl.*.*(..))"/>
<aop:advisorpointcut-ref="transactionPointcut"advice-ref="transactionAdvice"/>
aop:config>
beans>