摘要:使用事務管理器是支持的一個流行的開源事務管理器實現,你可以使用啟動器向項目添加適當的依賴項,與和一樣,將自動配置并對進行后處理,以確保啟動和關閉順序是正確的。
37. 用JTA分布式事務
通過使用Atomikos或Bitronix嵌入式事務管理器,Spring Boot支持跨多個XA資源的分布式JTA事務,在部署到合適的Java EE應用服務器時也支持JTA事務。
當檢測到JTA環境時,使用Spring的JtaTransactionManager來管理事務,自動配置的JMS、數據源和JPA bean被升級為支持XA事務,你可以使用標準的Spring風格,例如@Transactional,來參與分布式事務。如果你在JTA環境中,并且仍然希望使用本地事務,你可以設置spring.jta.enabled屬性為false以禁用JTA自動配置。
37.1 使用Atomikos事務管理器Atomikos是一種流行的開源事務管理器,可以嵌入到Spring Boot應用程序中,你可以使用spring-boot-starter-jta-atomikos啟動器來拉取適當的Atomikos庫,Spring Boot可以自動配置Atomikos,并確保將適當的依賴設置應用到你的Spring bean中,以實現正確的啟動和關閉順序。
默認情況下,Atomikos事務日志被寫入應用程序的主目錄中的transaction-logs目錄(應用程序jar文件所在的目錄),你可以通過在application.properties文件中設置spring.jta.log-dir來定制這個目錄的位置,從spring.jta.atomikos.properties開始的屬性還可以用于定制Atomikos UserTransactionServiceImp,請參閱AtomikosProperties Javadoc獲取完整的詳細信息。
為了確保多個事務管理器可以安全地協調相同的資源管理器,每個Atomikos實例必須配置唯一的ID,默認情況下,這個ID是Atomikos運行的機器的IP地址。為了確保生產中具有唯一性,你應該為應用程序的每個實例配置spring.jta.transaction-manager-id屬性的不同值。37.2 使用Bitronix事務管理器
Bitronix是一個流行的開源JTA事務管理器實現,你可以使用spring-boot-starter-jta-bitronix啟動器向項目添加適當的Bitronix依賴項,與Atomikos一樣,Spring Boot可以自動配置Bitronix并對bean進行后處理,以確保啟動和關閉順序是正確的。
默認情況下,Bitronix事務日志文件(part1.btm和part2.btm)被寫入到應用程序主目錄中的transaction-logs目錄中,你可以通過設置spring.jta.log-dir屬性來定制這個目錄的位置。從spring.jta.bitronix.properties開始的屬性也綁定到bitronix.tm.Configuration bean,允許進行完全定制,詳細信息請參閱Bitronix文檔。
37.3 使用Narayana事務管理器
Narayana是JBoss支持的一個流行的開源JTA事務管理器實現,你可以使用spring-boot-starter-jta-narayana啟動器向項目添加適當的Narayana依賴項,與Atomikos和Bitronix一樣,Spring Boot將自動配置Narayana并對bean進行后處理,以確保啟動和關閉順序是正確的。
默認情況下,Narayana事務日志被寫到應用程序主目錄中的transaction-logs目錄(應用程序jar文件所在的目錄),你可以在application.properties文件通過設置spring.jta.log-dir屬性來定制這個目錄的位置,從spring.jta.narayana.properties開始的屬性也可以用來定制narayana配置,有關詳細信息,請參閱NarayanaProperties Javadoc。
37.4 使用Java EE Managed事務管理器如果將Spring Boot應用程序打包為war或ear文件并將其部署到Java EE應用服務器,則可以使用應用服務器的內置事務管理器。Spring Boot試圖通過查看常見的JNDI位置(java:comp/UserTransaction, java:comp/TransactionManager,等等)自動配置事務管理器,如果你使用由應用服務器提供的事務服務,你通常還希望確保所有資源都由服務器管理,并通過JNDI公開。Spring Boot試圖通過在JNDI路徑(java:/JmsXA或java:/XAConnectionFactory)查找ConnectionFactory來自動配置JMS,你可以使用spring.datasource.jndi-name屬性來配置DataSource。
37.5 混合XA和非XA JMS連接在使用JTA時,主要的JMS ConnectionFactory bean是支持xa的,并參與分布式事務,在某些情況下,你可能希望通過使用非XA ConnectionFactory來處理某些JMS消息,例如,你的JMS處理邏輯可能需要比XA超時更長的時間。
如果希望使用非XA ConnectionFactory,可以注入nonXaJmsConnectionFactory bean而不是@Primary jmsConnectionFactory bean,為了保持一致性,jmsConnectionFactory bean也通過使用bean別名xaJmsConnectionFactory提供。
下面的示例演示如何注入ConnectionFactory實例:
// Inject the primary (XA aware) ConnectionFactory @Autowired private ConnectionFactory defaultConnectionFactory; // Inject the XA aware ConnectionFactory (uses the alias and injects the same as above) @Autowired @Qualifier("xaJmsConnectionFactory") private ConnectionFactory xaConnectionFactory; // Inject the non-XA aware ConnectionFactory @Autowired @Qualifier("nonXaJmsConnectionFactory") private ConnectionFactory nonXaConnectionFactory;37.6 支持供選擇的嵌入式事務管理器
可以使用XAConnectionFactoryWrapper和XADataSourceWrapper接口來支持供選擇的嵌入式事務管理器,接口負責封裝XAConnectionFactory和XADataSource bean,并將它們公開為常規的ConnectionFactory和DataSource bean,它們透明地注冊到分布式事務中。數據源和JMS自動配置使用JTA變體,前提是你有一個JtaTransactionManager bean和在你的ApplicationContext中注冊的適當的XA包裝器bean。
BitronixXAConnectionFactoryWrapper和BitronixXADataSourceWrapper提供了如何編寫XA包裝器的好例子。
上一篇:驗證&發送電子郵件 下一篇:Hazelcast文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71285.html
摘要:構建系統強烈建議你選擇一個支持依賴管理的構建系統,并且可以使用發布到中心存儲庫的工件。例如,要升級到另一個,你可以將以下元素添加到你的在前面的示例中,我們指定了一個,但是任何依賴類型都可以以相同的方式被覆蓋。 13. 構建系統 強烈建議你選擇一個支持依賴管理的構建系統,并且可以使用發布到Maven中心存儲庫的工件。我們建議你選擇Maven或Gradle,可以讓Spring Boot與其...
摘要:如果在類路徑上并且找到了合適的配置,那么將自動配置一個可以在應用程序中注入的。如果在類路徑中存在,那么首先嘗試通過檢查以下配置選項來創建存在的。通過屬性定義的配置文件。 38. Hazelcast 如果Hazelcast在類路徑上并且找到了合適的配置,那么Spring Boot將自動配置一個可以在應用程序中注入的HazelcastInstance。 如果定義了com.hazelcast...
摘要:例如,以下服務觸發第一個參數的驗證,確保其大小在到之間發送電子郵件框架為使用接口發送電子郵件提供了一個簡單的抽象,為它提供了自動配置以及啟動模塊。有關如何使用的詳細說明,請參閱參考文檔。 35. 驗證 只要類路徑上有JSR-303實現(比如Hibernate驗證器),Bean validation 1.1支持的方法驗證特性就會自動啟用,這就讓bean方法在參數和/或返回值上使用java...
摘要:參考指南使你可以輕松地創建可運行的獨立的生產級的基于的應用程序,我們對平臺和第三方庫有自己的看法,這樣你就可以以最低限度工作開始了,大多數應用程序都需要很少的配置。文檔本節簡要概述了參考文檔,它充當文檔其余部分的映射。 Spring Boot 參考指南 Spring Boot使你可以輕松地創建可運行的獨立的、生產級的基于Spring的應用程序,我們對Spring平臺和第三方庫有自己的看...
摘要:開始介紹簡化了基于的應用開發,你只需要就能創建一個獨立的,產品級別的應用。該包含很多搭建,快速運行項目所需的依賴,并提供一致的,可管理傳遞性的依賴集。日志級別通過標識開啟控制臺級別日志記錄,也可以在中指定日志級別配置示例 開始 介紹 Spring Boot 簡化了基于 Spring 的應用開發,你只需要 run 就能創建一個獨立的,產品級別的 Spring 應用。 Spring 平臺...
閱讀 1875·2023-04-25 19:51
閱讀 1178·2021-11-15 11:43
閱讀 4538·2021-11-02 14:40
閱讀 2005·2021-10-11 10:59
閱讀 1346·2021-09-22 15:05
閱讀 1035·2021-09-09 09:32
閱讀 655·2019-08-30 15:56
閱讀 556·2019-08-30 15:52