web.xml配置spring
<context-param>
<param-name>contextConfigLocation</param-name><param-value>WEB-INF/spring/spring_application_bean.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
spring_application_bean.xm中配置mybatis
<!-- 自动扫描了所有的Xxxxdao.java,不用一个一个手动配置Mpper的映射了,只要Mapper接口类和Mapper映射文件对应即可。 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.aaa.bbb.ccc.*.dao" />
</bean>
<!-- 扫描指定package下所有带有如@controller,@services,@resource,并把所注释的注册为Spring Beans -->
<context:component-scan base-package="basePackage" value="com.aaa.bbb.ccc" />
<context:component-scan base-package="basePackage" value="com.aaa.bbb.ccc" />
<引入mybatis结束>
<aop:aspectj-autoproxy />
<tx:annotation-driven transaction-manager="transactionManager" />
<context:property-placeholder
location="/WEB-INF/conf/dataSource.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="${jdbc.driverClassName}" />
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="${jdbc.url}" />
<!-- 指定连接数据库的用户名 -->
<property name="user" value="${jdbc.username}" />
<!-- 指定连接数据库的密码 -->
<property name="password" value="${jdbc.password}" />
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="${c3p0.minPoolSize}" />
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="${c3p0.initialPoolSize}" />
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="${c3p0.maxIdleTime}" />
<!--当连 接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="${c3p0.acquireIncrement}" />
<!--JDBC的标准参数,用以控制数据源内加载的 PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。 Default: 0-->
<property name="maxStatements" value="${c3p0.maxStatements}" />
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">aaa.bbb.ccc.dao.MySQLServerDialect</prop>
<!-- <prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.show_format">true</prop> -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="configLocation" value="/WEB-INF/conf/hibernate.cfg.xml" />
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
</bean>
<!-- 定义事务管理器(声明式的事务) -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="*" rollback-for="java.lang.Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="basePointCut"
expression="execution(* a.b.c.service.*.*(..)) || execution(* a.b.c.service.*.*(..))" />
<aop:advisor advice-ref="txAdvice"
pointcut-ref="basePointCut" />
</aop:config>
<bean id="springBeanFactoryUtil" class="a.b.c.util.SpringBeanFactoryUtil"/>
<import resource="./spring_dao_bean.xml"></import>
<import resource="./spring_task_bean.xml"></import>
<import resource="./spring_service_bean.xml"></import>
<import resource="classpath:mybatis/mybatis-resource.xml"/>