<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                從AOP的角度看,事物跟日志一樣,都是跟業務邏輯無關的東西,這兩個東西通過切入方式,放到系統中,是非常合適的。下面,將Hibernate中的事物配置到Spring中,使我們在編程的時候,無需考慮事物的存在,專心的放到系統的邏輯實現上。 在Spring的配置文件中加入如下配置: ~~~ <!-- 配置sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 配置hibernate的配置文件 --> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> </bean> <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <!-- 配置哪些類的哪些方法使用事務 --> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* com.lhc.usermanage.*.*(..))"/> <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/> </aop:config> <!-- 配置事務的傳播特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="modify*" propagation="REQUIRED"/> <tx:method name="*" propagation="REQUIRED" read-only="true"/> </tx:attributes> </tx:advice> ~~~ 這里,我們讓Dao層的類繼承HibernateDaoSupport: ![](https://box.kancloud.cn/2016-03-02_56d66380cafce.jpg) 這樣就可以簡化CRUD操作。 但是同時也要為UserManagerImpl配置sessionFactory屬性: ![](https://box.kancloud.cn/2016-03-02_56d66380da819.jpg) ![](https://box.kancloud.cn/2016-03-02_56d663810d2c3.jpg) 除了事物管理器的配置,剩下的配置跟我們使用AOP的動態代理的時候需要的配置內容差不多,主要是定義在哪切開,至于切開之后的內容,當然是加入我們的事物啦。 腦洞大開一下,感覺這時候切入的應該是before跟After的內容。 另外,還有個事物怎么切入的問題,這里就涉及到了事物的傳播特性,比如,我以前有個事物,我再操作是直接用這個事物我還是另外開一個,and so on....... 補充一句,這時候帶大家寫CRUD方法的時候,就要定義好命名規則,才能在Advice里面匹配到方法名稱,才能加上事物!!!終于體會到約定大于配置了。(不知道理解的準確不?) Ps,也可以使用注解方式配置事務管理: ![](https://box.kancloud.cn/2016-03-02_56d663810d2c3.jpg) 又少寫了好多代碼![大笑](https://box.kancloud.cn/2016-01-19_569e21abc5518.gif) 。。。。。。。好懶。。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看