Mybatis支持自动扫描、探寻与注入,不需要我们手动去操作,这在节省我们劳动力的同时,也可以大大的节省我们的配置文件。
下面列出比较省时省力简单的配置文件示例:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!--spring扫描的包路径--> <context:component-scan base-package="com.tyyd.*"/> <!-- 启用@Aspect支持 --> <aop:aspectj-autoproxy/> <!-- 等同于下面注掉部分 多个配置文件可用,号分隔 --> <context:property-placeholder location="classpath:init.properties"/> <!-- <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:init.properties</value> </list> </property> </bean> --> <bean name="rDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${readPlatformDriverClassName}"></property> <property name="url" value="${readPlatformUrl}"></property> <property name="username" value="${readPlatformUsername}"/> <property name="password" value="${readPlatformPassword}"></property> <property name="initialSize" value="${readPlatformInitialSize}"></property> <property name="maxActive" value="${readPlatformMaxActive}"></property> <property name="maxIdle" value="${readPlatformMaxIdle}"></property> <property name="maxWait" value="${readPlatformMaxWait}"></property> </bean> <bean id="readSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="rDataSource" /> <!--mybatis的config文件,非mapper映射文件 没有可以不指定--> <!--<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>--> <!--指定mapper映射文件 可以不指定,在下面的MapperScannerConfigurer配置扫描路径即可--> <!--<property name="mapperLocations" value="classpath*:/META-INF/mybatis/**/*.xml" />--> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--扫描mybatis mapper映射文件的包路径--> <property name="basePackage" value="com.tyyd.dw.mapper" /> <!--这里指定一个注解类,表示扫描下面配置的basePackage路径下注解了该注解类型的class--> <!--如果不指定,则表示扫描全部--> <!--<property name="annotationClass" value="org.springframework.stereotype.Repository" />--> <!--指定SqlSessionFactory,如果只有一个SqlSessionFactory可能不指定,mybatis会自动进行装配--> <!--<property name="sqlSessionFactoryBeanName" value="readSqlSessionFactory"/>--> </bean> <!-- 事务管理器配置,单数据源事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="rDataSource" /> </bean> <!-- 配置事务的传播特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="del*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <!-- 配置哪些方法使用事务 --> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* com.tyyd.dw.manager.*.impl.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" /> </aop:config> </beans>