1
applicationContext.xml
1
<context:component-scan base-package="org.example"/>

Classpath scanning and managed components

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

<tx:annotation-driven transaction-manager="txManager"/>

<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
  <tx:method name="create*" propagation="REQUIRED" timeout="300" rollback-for="java.lang.Exception" />
  <tx:method name="delete*" propagation="REQUIRED" timeout="300" rollback-for="java.lang.Exception" />
  <tx:method name="update*" propagation="REQUIRED" timeout="300" rollback-for="java.lang.Exception" />
  <tx:method name="get*" propagation="REQUIRED" read-only="true" timeout="300" />
  <tx:method name="*" propagation="REQUIRED" read-only="true" timeout="300" rollback-for="java.lang.Exception"/>
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut id="txPointcut" expression="execution(* com.mico.emptyspring.service.*ServiceA.*(..))" />
<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice" />
</aop:config>

Transaction Management

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configuration">
    <bean class="org.apache.ibatis.session.Configuration">
      <property name="mapUnderscoreToCamelCase" value="true"/>
    </bean>
  </property>
  <property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
  <property name="basePackage" value="org.mybatis.spring.sample.mapper" />
</bean>

mybatis-spring