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的思想很容易給需要事務機制的方法添加事務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章