#千锋逆战SSM整合

一、注意小点

idea的resources下的文件不会及时清理编译,需要在pom文件中加入配置

<resource>

            <directory>src/main/resources</directory>

            <includes>

                <include>*.properties</include>

                <include>*.xml</include>

            </includes>

</resource>

db.properties的user和密码起名注意冲突加上前缀

配置数据工厂时如果不加入扫描xml文件需要给dao层的接口和xml文件名称一致。会默认去找并加载名称一致的xml。

配置事务的propagation时配置方法是否需要事务配置,required需要事务,isolation是配置事务的隔离级别,4个级别序列化、可重复读、读已提交、读未提交。rollback-for回滚的设置。timeout设置超时时间默认时间-1,永不超时。

二、Application.xml

<!--配置扫描service层-->

    <context:component-scan base-package="com.qianfeng.service"/>

    <!--配置读取properties-->

    <context:property-placeholder location="classpath:db.properties"/>

    <!--配置连接池-->

    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">

        <property name="driverClassName" value="${jdbc.driver}"/>

        <property name="jdbcUrl" value="${jdbc.url}"/>

        <property name="username" value="${jdbc.user}"/>

        <property name="password" value="${jdbc.pass}"/>

    </bean>

    <!--jdbc的事务-->

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource"/>

    </bean>

    <!--配置mybatis的工厂交给spring ,该类是实现了spring给的接口-->

    <bean class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource"/>

        <property name="typeAliasesPackage" value="com.qianfeng.entity"/>

        <property name="configLocation" value="classpath:Mybatis.xml"/>

        <property name="mapperLocations" value="classpath:com/qianfeng/dao/*Mapper.xml"/>

    </bean>

    <!--配置扫描代理接口-->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="basePackage" value="com.qianfeng.dao"/>

    </bean>

    <!--配置事务的方法-->

    <tx:advice id="tx" transaction-manager="transactionManager">

        <tx:attributes>

            <tx:method name="insert*"  propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>

            <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>

            <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>

            <tx:method name="select*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>

        </tx:attributes>

    </tx:advice>

        <!--配置切面-->

    <aop:config proxy-target-class="true">

        <aop:pointcut id="pt" expression="execution(* com.qianfeng.service.*.*(..))"/>

        <aop:advisor advice-ref="tx" pointcut-ref="pt"/>

    </aop:config>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.声明式事务实现 将编程式事务章节中applicationContext.xml修改下: 声明式事务通过AOP代...
    zlb阅读 1,009评论 0 1
  • SSM 的整合 依赖填入<?xml version="1.0" encoding="UTF-8"?> <m...
    不是潘西是潘安阅读 286评论 0 0
  • 1.IOC与DI inverse of control 控制反转我们创建对象的方式反转了。以前对象的创建由开发人员...
    蕊er阅读 336评论 0 0
  • 这部分的参考文档涉及数据访问和数据访问层和业务或服务层之间的交互。 Spring的综合事务管理支持覆盖很多细节,然...
    竹天亮阅读 1,053评论 0 0
  • 少年常励摩云志,单骑闯天涯。 扫尽人间不平事,荡寇如麻,血染黄沙。 功成身退去何处?漂泊四海为家。 闻说边关风乍起...
    诗呆阅读 2,877评论 58 99