原创 Maven Spring MVC + MyBatis 開發配置

配置思路: 1.配置pom.xml 主要配置Spring,junit,mybatis,log4j,jackson等項目依賴包 2.配置web.xml,主要配置以下內容 a.Spring 的contextConfigLoca

原创 Spring MVC + Mybatis 一個簡單的例子 — 返回Json數據

定義實體類 package com.test.item.dto; import java.util.Date; /** * @author Duoduo * @version 1.0 * @date 2017/4/16

原创 帶返回值的多線程實現

帶返回值的多線程實現 package cn.thread; import java.util.concurrent.*; /** * @author Duoduo * @version 1.0 * @date 2017/

原创 如何啓用設置org.slf4j.Logger打印並輸出日誌

org.slf4j.Logger打印並輸出日誌 在resouces目錄下面新建logback.xml(此爲Logback推薦目錄) 內容配置如下 logback 分爲兩種設置: 1. 輸出到控制檯 STDOUT 2. 輸出

原创 Spring AOP(1)- 前置增強 實現

實現原理: 前置增強完成功能:在目標類的方法執行之前嵌入增強邏輯. 實現原理: 1. 實現接口 MethodBeforeAdvice,重寫函數 before ,在函數before中實現需要插入目標方法之前的邏輯代碼

原创 IDEA 配置JUnit 並自動生成Test文件夾和類

1. Preferences --> Plugins 安裝Junit Generator V2.0 2.設置Junit的Output Path目錄爲${SOURCEPATH}/../test/${PACKAGE}/${FILENA

原创 Spring 測試數據庫連接

利用DriverManagerDataSource測試數據庫是否正常連接,每次只返回一個connection package com.db; import org.springframework.jdbc.datasource.

原创 quartz-Example1 學習 - 一分鐘之後運行Job

完成功能:一分鐘之後調用Job pom.xml文件配置 <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dependency>

原创 Spring AOP(2)- 後置增強 實現

實現原理: 前置增強完成功能:在目標類的方法執行之後嵌入增強邏輯. 實現原理: 1. 實現接口 AfterReturningAdvice,重寫函數 afterReturning ,在函數afterReturning中實現

原创 Spring AOP(4)- 異常增強

實現原理: 異常增強完成功能:在目標類的拋出異之前嵌入增強邏輯. 實現原理: 1. 實現接口 ThrowsAdvice,重寫函數 afterThrowing ,在目標方法拋出異常之前嵌入邏輯代碼,常用於事務處理的回滾

原创 編程之法--字符串包含

給 定 兩 個 分 別 由 字 母 組 成 的 字 符 串 A 和 字 符 串 B,字 符 串 B 的 長 度 比 字 符 串 A 短。請 問, 如 何 最 快 地 判 斷 字 符 串 B 中 所 有 字 母 是 否 都 在 字

原创 Spring AOP 簡述

Spring AOP 主要用於實現業務和事務解耦。 例如用於實現性能監控,事務管理 實現原理: Spring AOP 是使用動態代理在運行期間植入增強的功能代碼。 JDK代理的侷限:只能爲接口創建代理實例。 CGLib採用字

原创 Spring AOP (3) - 環繞增強 實現

實現原理: 環繞增強完成功能:在目標類的方法執行前後嵌入增強邏輯. 實現原理: 1. 實現接口 MethodInterceptor,重寫函數 invoke ,在函數 invoke 前後實現需要插入目標方法之後的邏輯代碼

原创 Spring 廣播事件實現

完成功能: 完成廣播功能,即當做一件事情的是,自動觸發廣播,同時告知其他人。 實現思路: 1.定義一個事件類例如MailSendEvent 繼承ApplicationContextEvent 2.定義一個監聽類Mai

原创 ThreadLocal 學習

ThreadLocal ThreadLocal 不是一個線程,而是線程的一個本地化變量。當工作於多線程中的對象使用ThreadLocal維護變量時,ThreadLocal爲每個使用該變量的進程分配一個獨立的變量副本,所以每個線程可