ssm集成原理

ssm(Spring、springMVC、Mybatis)的整合开发,是目前JavaEE开发最流行的技术框架

ssm整合的实质,仅仅就是将Mybatis集成到Spring中,因为springMVC本身就是Spring框架的一部分。
Spring提供了IOC(控制反转技术),Mybatis中的sessionFactory对象的创建以及关系的维护交由Spring容器来管理。

Spring提供了AOP,Mybatis的事务不需要代码来实现,直接在Spring的配置文件配置即可

    <!-- 配置数据库连接,阿里数据源druid连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="url" value="jdbc:mysql://localhost:3306/erp?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="username" value="root"/>
        <property name="password" value="333"/>
    </bean>

    <!-- 事务相关控制 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
<!--启动事务控制器的注解-->
<tx:annotation-driven transaction-manager="transactionManager"/>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!-- 对业务层所有方法添加事务,除了以get、find、select开始的 -->
            <tx:method name="*" isolation="DEFAULT" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
            <!-- 查询操作没有必要开启事务,给只读事务添加一个属性read-only -->
            <tx:method name="get*" read-only="true"/>
            <tx:method name="find*" read-only="true"/>
            <tx:method name="select*" read-only="true"/>
            <tx:method name="query*" read-only="true"/>
        </tx:attributes>
    </tx:advice>

其实事务相关的控制就是创建数据源的事务控制器,这个数据源事务控制器是由Spring框架提供的,
通过配置文件可以借助AOP的思想很容易给需要事务机制的方法添加事务

猜你喜欢

转载自blog.csdn.net/qq_42963930/article/details/102691830
今日推荐