日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring(4)

發布時間:2024/3/24 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring(4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JdbcTemplate

1JdbcTemplate是spring提供的操作對象,是對Jdbc API的簡單封裝
JdbcTemplate的使用
1 導入相關的jar包 2 在配置文件中配置數據源 3 在配置文件中將數據源注入到JdbcTemplate中 4 在操作類中獲取JdbcTemplate。JdbcTemplate.execute()JdbcTemplate.update()JdbcTemplate.query()Jdbc.queryForObject()
存在的問題

我們的dao 有很多時,每個dao 都有一些重復性的代碼。下面就是重復代碼:

private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; }

解決的方法(這種方式只適用于XML配置的情況,如果是注解配置還是得使用上一種方式)
讓dao 繼承JdbcDaoSupport
當然也需要給這個dao類注入一個數據源

getJdbcTemplate().query();

Spring 中的事務控制

第一:JavaEE 體系進行分層開發,事務處理位于業務層,Spring 提供了分層設計業務層的事務處理解決方案。
第二:spring 框架為我們提供了一組事務控制的接口。具體在后面的第二小節介紹。這組接口是在spring-tx-5.0.2.RELEASE.jar 中。
第三:spring 的事務控制都是基于AOP 的,它既可以使用編程的方式實現,也可以使用配置的方式實現。我們學習的重點是使用配置的方式實現。

PlatformTransactionManager此接口是spring 的事務管理器。
包含三個具體操作:
獲取事物狀態信息:getTransaction()
提交:commit()
回滾:rollback()

主要是使用它的兩個實現類:
DataSourceTransactionManager(JdcTemplate和mybatis用)
HibernateTransactionManager (Hibernate 用)

TransactionDefinition:
隔離級別
傳播行為:REQUIRED(有就用,沒有就建),SUPPORTS(有就用,沒有就非事物運行)
是否只讀
超時時間

TransactionStatus:
刷新事物
是否存在存儲點
事物是否完成
事物是否為新事物
是否回滾

基于XML的聲明式配置
1 配置事物管理器(DataSourceTransactionManager),并給注入數據源 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 注入DataSource --> <property name="dataSource" ref="dataSource"></property> </bean> 2 配置事物的通知引用事物管理器 <!-- 事務的配置--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> </tx:advice> 3 配置事物的屬性 <!--在tx:advice 標簽內部配置事務的屬性--> <tx:attributes> <!-- 指定方法名稱:是業務核心方法 read-only:是否是只讀事務。默認false,不只讀。 isolation:指定事務的隔離級別。默認值是使用數據庫的默認隔離級別。 propagation:指定事務的傳播行為。 timeout:指定超時時間。默認值為:-1。永不超時。 rollback-for:用于指定一個異常,當執行產生該異常時,事務回滾。產生其他異常,事務不回滾。 沒有默認值,任何異常都回滾。 no-rollback-for:用于指定一個異常,當產生該異常時,事務不回滾,產生其他異常時,事務回 滾。沒有默認值,任何異常都回滾。 --> <tx:method name="*" read-only="false" propagation="REQUIRED"/> <tx:method name="find*" read-only="true" propagation="SUPPORTS"/> </tx:attributes> 4 配置AOP切入點表達式 <!-- 配置aop --> <aop:config> <!-- 配置切入點表達式--> <aop:pointcut expression="execution(* com.itheima.service.impl.*.*(..))" id="pt1"/> </aop:config> 5 配置切入點表達式和事務通知的對應關系 <!-- 在aop:config 標簽內部:建立事務的通知和切入點表達式的關系--> <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"/>
基于注解的配置方式
1 配置事務管理器并注入數據源 2 在業務層使用@Transactional 注解 @Transactional(readOnly=true,propagation=Propagation.SUPPORTS) 該注解的屬性和xml 中的屬性含義一致。該注解可以出現在接口上,類上和方法上。 出現接口上,表示該接口的所有實現類都有事務支持。 出現在類上,表示類中所有方法有事務支持 出現在方法上,表示方法有事務支持。 以上三個位置的優先級:方法>>接口 3 在配置文件中開啟spring 對注解事務的支持 <!-- 開啟spring 對注解事務的支持--> <tx:annotation-driven transaction-manager="transactionManager"/>
完全使用注解的方式:
在@Configuration標記的注解類上使用@EnableTransactionManagement注解

總結

以上是生活随笔為你收集整理的spring(4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。