原创 Spring和alibaba連接池druid實現雙數據源

背景: 項目架構,SpringMVC + Spring + Mybatis 隨着業務的增加,數據庫的壓力倍增,經和開發人員討論想實現讀寫分離的功能,由運維人員實現Mysql之間的同步,開發人員實現 主備庫之間的切換。 設計思路

原创 SpringMVC使用Filter打印請求和返回日誌

簡介: 關於SpringMVC 過濾器和攔截器的介紹,推薦大家一篇博文:https://www.cnblogs.com/rayallenbj/p/8484276.html 這裏就不過多介紹了,博文中最後一句感覺還是很有深度的是

原创 SpringMVC 全局異常處理

前言 本篇博文使用FastJson 定義message-converters 來處理SpringMVC 返回的對象,轉化爲Json 字符串輸出到客戶端,關於FastJson和SpringMVC的配置網上有博文,這裏就不在描述了。

原创 SpringMVC中Interceptor攔截器實現原理分析

SpringMVC中Interceptor 攔截器講解: 在SpringMVC中實現攔截器需要實現 HandlerInterceptor,其中包含三個需要的方法:preHandle()、postHandle()、afterCom

原创 SpringMVC常用註解:@ResponseBody、@RequestParam 等講解

@Controller: @Controller用於標記在一個類上,使用這個註解的類會被標記爲SpringMVC 的Controller,當SpringMVC 容器初始化時,會掃描該類的方法,並檢測到配有註解@RequestMap

原创 SpringMVC執行流程以及各組件介紹

什麼是SpringMVC SpringMvc 是Spring 的一個基於MVC開發的一個框架,用來處理前端請求,可以和Spring無縫整合 描述 SpringMVC的請求流程: Http請求通過web.xml 的配置 進入Dis

原创 Spring 事務傳播機制以及隔離級別

前言 衆所周知,Spring是實現事務配置是通過註解 Transactional 來實現的,但是註解中含有多個參數, 其中rollbackFor、propagation、isolation,這個三個參數算是比較常用的,本文主要講解

原创 Mysql事務隔離機制

ACID原則: 瞭解Mysql事務隔離機制首先需要理解什麼是ACID: A : 原子性automicity,一個事務作爲不可分割的最小單元,一個事務裏面的所有操作要麼全部成功,要麼全部失敗。 C:一致性consistency,事

原创 Spring @Autowired 和 @Resource 區別

Spring @Autowired 和 @Resource 簡介 @Autowired 和 @Resource 都是做Bean注入時使用的,但是@Resource不是Spring 的註解,她所在的包是 javax.annotat

原创 SpringIoc Bean的創建方式

什麼是IOC,作用是什麼 IOC的定義( Inversion of Controle, 控制反轉),是Spring的核心功能,將我們程序中使用的對象交給Spring 來管理,包括對象創建和銷燬,最後在通過依賴注入的方式來實現我們程

原创 MyBatis和Spring結合時爲什麼只寫Dao層不寫其實現類

前言: 了需要提前瞭解的知識點: JDK動態代理:https://mp.csdn.net/mdeditor/90598309# Mybatis簡單Demo學習: https://www.mybatis.org/mybatis-3

原创 Java動態代理-CGLIB(3)

CGLIB 動態代理: JDK 動態代理,JDK 動態代理的類必須實現一個接口,而且生成的代理類是其接口的實現類,也就是被代理的類的兄弟類,由JDK內部實現, cglib代理的類,無需強制實現接口,其生成的代理類 是 被代理類的

原创 Java動態代理-JDK實現(2)

Java1.8動態代理: JDK動態代理所用到的代理類在程序調用到代理類對象時才由JVM真正創建,JVM根據傳進來的 業務實現類對象 以及 方法名 ,動態地創建了一個代理類的class文件並被字節碼引擎執行,然後通過該代理類對象

原创 MyBatis resultMap與restType、parameterMap與parameterType 區別

官方解釋: 官方文檔位置Url : https://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html resultMap & resultType理解闡述 1、resultMap & r

原创 Mybatis #和$區別以及原理

總結: #可以防止Sql 注入,它會將所有傳入的參數作爲一個字符串來處理。 $ 則將傳入的參數拼接到Sql上去執行,一般用於表名和字段名參數,$ 所對應的參數應該由服務器端提供,前端可以用參數進行選擇,避免 Sql 注入的風險