2017年02月28號網絡文摘閱讀筆記

基于Redis的Session共享示例

原文地址: 基于Redis的Session共享示例

閱讀之前,腦補的畫面是:在負載均衡的場景下,各個單機統一通過在業務代碼中通過redis客戶端存取session。

本文中提到的思路是,在Tomcat中,通過配置Session-Manager來實現。這里會用到jedis客戶端jar包,common-pool2,以及tomcat-redis-session-manager的包。完全是通過配置的方式就實現了多個Tomcat的session共享。

所以本文的重點在于配置:如何配置在一臺機器上啟動多個Tomcat(通過指定不同的端口),如何安裝和啟動redis,如何配置Session-Manager。

Spring的事務管理機制

原文地址: Spring的事務管理機制

本文首先提到spring是通過內置的事務管理器來實現事務管理的。比如下面的列表:

  • DataSourceTransactionManager 數據源事務管理器,提供對單個javax.sql.DataSource事務管理,用于Spring JDBC抽象框架、iBATIS或MyBatis框架的事務管理;
  • HibernateTransactionManager 提供對單個org.hibernate.SessionFactory事務支持,用于集成Hibernate框架時的事務管理
  • .....

事務管理器是我們在spring的配置文件中來定義的:

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

spring支持編碼式事務和聲明式事務。

編碼式事務其實就是在程序內部硬編碼,最常見的例子就是在JDBC中手動開啟事務,手動提交。這個不再贅言。

聲明式事務基于AOP,允許通過配置的方式(配置文件或者注解)來實現事務的管理。

聲明式事務涉及到的一些屬性:

  • 傳播行為:Propagation 定義了當存在多個事務的時候的一些處理機制。或者定義是否啟用事務等等。
  • 隔離級別 定義了一個事務可能受其他并發事務影響的程度
  • 回滾規則
  • 事務超時
  • 是否只讀

這篇文章算是對之前spring一些零散知識的小匯總,感覺有些收獲。因為在日常開發中,經常會忽略上面提到的這些概念。

Java對象的序列化與反序列化

原文地址: Java對象的序列化與反序列化

按照以往的知識積累,在Java中這個話題主要涉及到Serializable接口、幾個對象流(比如ObjectOutputStream)、Transient關鍵字、序列化ID。

這些知識點在本文中都有介紹,現粗略整理一下個人感覺不錯的點。

  • Transient 關鍵字的作用是阻止被修飾的變量被序列化到文件中。
  • 虛擬機是否允許反序列化,不僅要求類路徑一致,還要求兩個類的序列化ID一致。通常我們在IDE中會自動生成隨機的序列化ID。 可以考慮用固定的1L。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,972評論 6 342
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,992評論 19 139
  • application的配置屬性。 這些屬性是否生效取決于對應的組件是否聲明為Spring應用程序上下文里的Bea...
    新簽名閱讀 5,429評論 1 27
  • 這些屬性是否生效取決于對應的組件是否聲明為 Spring 應用程序上下文里的 Bean(基本是自動配置的),為一個...
    發光的魚閱讀 1,449評論 0 14
  • 沒看開會看見了沒看開會看見了沒看開會看見了沒看開會看見了沒看開會看見了沒看開會看見了沒看開會看見了沒看開會看見了沒...
    排骨菌閱讀 320評論 0 2