美文网首页
mybatis_0配置实现

mybatis_0配置实现

作者: 七枷琴子 | 来源:发表于2018-05-23 16:32 被阅读0次
    只需要一个applicationContext-dao

    <?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:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd">

    <!-- 开启AOP监听 只对当前配置文件有效 -->
    <aop:aspectj-autoproxy expose-proxy="true" />
    
    <!-- 参考:https://github.com/alibaba/druid/wiki/DruidDataSource配置属性列表, https://github.com/alibaba/druid/wiki/连接泄露检测, 
        https://github.com/alibaba/druid/wiki/常见问题 -->
    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close">
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <!-- initialSize默认0:初始化时建立物理连接的个数 -->
        <property name="initialSize" value="${druid.initialSize}" />
        <!-- maxActive默认8:最大连接池数量 -->
        <property name="maxActive" value="${druid.maxActive}" />
        <!-- minIdle默认8:最小连接池数量 -->
        <property name="minIdle" value="${druid.minIdle}" />
        <!-- maxWait:获取连接时最大等待时间,单位毫秒。 配置了maxWait之后,缺省启用公平锁,并发效率会有所下降, 如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 -->
        <property name="maxWait" value="${druid.maxWait}" />
        <property name="validationQuery" value="${jdbc.validationQuery}" />
        <!-- testOnBorrow默认true:申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 -->
        <property name="testOnBorrow" value="${druid.testOnBorrow}" />
        <!-- testOnReturn默认false:归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 -->
        <property name="testOnReturn" value="${druid.testOnReturn}" />
        <!-- testWhileIdle默认false:建议配置为true,不影响性能,并且保证安全性。 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 -->
        <property name="testWhileIdle" value="${druid.testWhileIdle}" />
        <!-- timeBetweenEvictionRunsMillis:配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
        <!-- minEvictableIdleTimeMillis:配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
        <!-- 当发生连接泄漏时,使用RemoveAbandanded相关配置,用来关闭长时间不使用的连接。 -->
        <property name="removeAbandoned" value="${druid.removeAbandoned}" />
        <!-- removeAbandonedTimeout:单位秒 -->
        <property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />
        <!-- 关闭abanded连接时输出错误日志 -->
        <property name="logAbandoned" value="${druid.logAbandoned}" />
        <!-- 配置监控统计拦截的filters,属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat,日志用的filter:log4j,防御sql注入的filter:wall -->
        <property name="filters" value="${druid.filters}" />
    </bean>
    
    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:config/dev/mybatis-config.xml"></property>
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath*:/mybatis/**/*Mapper.xml"></property>
    
        <!-- 3.3.0版本可用 - reasonable分页参数合理化,默认false禁用 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 
            禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageHelper">
                    <property name="properties">
                        <value>
                            dialect=oracle
                            reasonable=false
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>
    
    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.elsteel.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
    
    <!-- (事务管理)transaction manager -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    
    <!-- 使用annotation定义事务 开启AOP监听 -->
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
    

    </beans>

    相关文章

      网友评论

          本文标题:mybatis_0配置实现

          本文链接:https://www.haomeiwen.com/subject/rkorjftx.html