原创 Future.get拋出TimeoutException,並不會中斷或者取消任務

static ExecutorService executorService = Executors.newCachedThreadPool(); /** * get 出現TimeoutException,並不會中斷

原创 AutoCloseable使用與注意,try-with-resources(推薦)

使用try-with-resources(推薦),不要使用try-finally。  實現AutoCloseable接口,並實現close方法。 使用try-with-resources可以捕獲close中的異常,通過throwable的

原创 千萬不要再構造函數調用重載函數,非要調用函數請使用final函數

構造流程 基類的成員數據初始化 >> 基類構造函數 >> 子類成員數據初始化 >> 子類構造函數 產生問題的原因 但是下面的結構違背了這種構造順序,子類的init的方法調用要在子類的構造函數之前執行。 public class Base

原创 Java 8 實戰 腦圖

原创 UnPooled.copiedBuffer與wrappedBuffer的使用

  Unpooled.copiedBuffer函數 public final class Unpooled { /** * Creates a new big-endian buffer whose conte

原创 Spring實戰(第4版)Spring In Action - 第4章 面向切面的Spring

第4章 面向切面的Spring 4.1 什麼是面向切面編程 4.1.4 定義AOP術語 橫切關注點(cross-cutting concern) 通知(advice) 前置通知(Before) 後置通知(After) 返回通知(Aft

原创 Spring實戰(第4版)Spring In Action - 第3章 高級裝配

第3章 高級裝配 3.1 環境與profile 3.1.1 配置profile bean 在Java中配置 分開配置 @Configuration @Profile("dev") public class DevelopmentProf

原创 SpringCore腦圖

原创 map 和 flatMap 區別

map & flatMap 這兩個函數經常被使用。它們有如下區別: map 把數組流中的每一個值,使用所提供的函數執行一遍,一一對應。得到元素個數相同的數組流。 flatMap flat是扁平的意思。它把數組流中的每一個值,使用所提供的

原创 Spring實戰(第4版)Spring In Action - 第6章 渲染Web視圖

第6章 渲染Web視圖 6.1 理解視圖解析 ViewResolver視圖解析器基類 public interface ViewResolver { View resolveViewName(String viewName, Lo

原创 Intelligent idea 快捷鍵 Ctrl + Alt + V

Intelligent idea 快捷鍵 Ctrl + Alt + V 自動提取變量

原创 Spring MVC 之 AbstractAnnotationConfigDispatcherServletInitializer剖析

Servlet3.0環境中,容器會在類路徑中查找實現ServletContainerInitializer 接口的類,如果發現的話,就用它來配置Servlet容器。 Spring提供了這個接口的實現類 SpringServletConta

原创 Gradle創建第一個Spring的aop項目(JavaConfig配置方式)

Gradle創建第一個Spring的aop項目(JavaConfig配置方式) 啓動bean的自動掃描裝配、實現aop攔截,通過@Test測試和ApplicationContext啓動方式的測試。   Eclipse的插件工具: htt

原创 Builder 的應用

改造前 當前正在開發工會宣戰的一個系統,需要存儲宣戰記錄。但是記錄包括很多數據,開始使用構造方法傳遞參數。 DeclareWarUnionInfo(CrossAllianceService crossAllianceService, l

原创 java 打印調用堆棧的2種方法:

java 打印調用堆棧的2種方法: RuntimeException Thread.currentThread().getStackTrace() package ziegler.learn.debug; import j