原创 Java併發編程:volatile關鍵字解析

volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個備受爭議的關鍵字,因爲在程序中使用它往往會導致出人意料的結果。在Java 5之後,volatile關鍵字才得以重獲生機。   volat

原创 Spring的7種事務傳播行爲類型

1、PROPAGATION_REQUIRED:如果當前沒有事務,就創建一個新事務,如果當前存在事務,就加入該事務,該設置是最常用的設置。 2、PROPAGATION_SUPPORTS:支持當前事務,如果當前存在事務,就加入該事務,如果當前

原创 消息中間件

一、消息隊列概述 消息隊列中間件是分佈式系統中重要的組件,主要解決應用解耦,異步消息,流量削鋒等問題,實現高性能,高可用,可伸縮和最終一致性架構。目前使用較多的消息隊列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,Me

原创 HashMap源碼分析

概述 HashMap是基於HashTable的Map接口的實現。HashMap允許null鍵和null值,在計算鍵的Hash值時,null鍵的hash值爲0。HashMap 並不保證鍵值對的順序,這意味着在進行某些操作後,鍵值對的順序可能

原创 HastTable源碼分析

  概述 HashTable存儲的鍵值對,它的key和value都不可以爲Null。 爲了能成功的存儲健值對,做爲key的對象必須實現hashCode()和equals()方法。            HashTable實例有兩個參數影響

原创 spring-mybatis整合-SqlSessionTemplate

SqlSessionTemplate是MyBatis-Spring的核心。這個類負責管理MyBatis的SqlSession,調用MyBatis的SQL方法。SqlSessionTemplate是線程安全的,可以被多個DAO所共享使用。

原创 Spring事務的隔離等級

今天來學習下spring事務的隔離等級。在講到spring的五種事務隔離性時,我們先來說說我們在一個事務中,我們在讀取數據可能會遇到的幾種情況: 1、髒讀(dirty reads),什麼是髒讀,觀其字,我們大概就能猜到它的大致意思,就是讀

原创 Spring傳播行爲內部方法不起作用

在使用Spring的註解事務時候,我們發現內部方法聲明的事務不起作用,而是決定於外部方法註解的事務。到底是真不起作用,還是我們Spring的事務註解機制理解錯了,導致誤用了。下面我們看兩個例子: 測試類: package com.ao

原创 Spring-Bean初始化順序

在驗證Spring-Bean初始化順序前,先看幾個關鍵接口 InitializingBean     Spirng的InitializingBean爲bean提供了定義初始化方法的方式。InitializingBean是一個接口,它僅僅包

原创 spring-mybatis整合-MapperScannerConfigurer

在使用MapperFactoryBean的時候,我們需要在xml配置文件中指定映射器接口,這樣如果有多個映射器接口,我們需要註冊所有的映射器接口。而本章中我們使用MapperSccanerConfigure它 將 會 查 找 類 路 徑

原创 Spring-ApplicationContextAware

ApplicationContextAware接口 如果在配置文件中的Bean如果實現接口ApplicationContextAware,那麼在Bean初始化結束後會調用接口ApplicationContextAware中的方法setAp

原创 spring @Transactional註解參數詳解

事務註解方式 @Transactional 當標於類前時, 標示類中所有方法都進行事務處理 : @Transactional (propagation = Propagation.REQUIRED,isolation=Isolation

原创 配置mybatis Catalog xml

我們在使用eclipse配置mybatis映射文件時,沒有提示,這個就需要我們配置catalog xml。 首先直接在瀏覽器打開http://mybatis.org/dtd/mybatis-3-mapper.dtd下載dtd文件,放置到合

原创 Map遍歷的四種方法

package cn.com.collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * @author w

原创 HashSet源碼分析

概述 HashSet內部是基於HashMap來實現的,所以你如果讀懂了HashMap的源碼,HashSet就相對簡單了。 private transient HashMap<E,Object> map; // Dumm