原创 Spring Boot 最佳實踐(四)模板引擎Thymeleaf集成

一、Thymeleaf介紹 Thymeleaf是一種Java XML / XHTML / HTML5模板引擎,可以在Web和非Web環境中使用。它更適合在基於MVC的Web應用程序的視圖層提供XHTML / HTML5,但即使在脫機環境中,

原创 Spring Boot 最佳實踐(三)模板引擎FreeMarker集成

一、FreeMaker介紹 FreeMarker是一款免費的Java模板引擎,是一種基於模板和數據生成文本(HMLT、電子郵件、配置文件、源代碼等)的工具,它不是面向最終用戶的,而是一款程序員使用的組件。 FreeMarker最初設計是用來

原创 Spring Boot 最佳實踐(一)快速入門

一、關於Spring Boot 在開始瞭解Spring Boot之前,我們需要先了解一下Spring,因爲Spring Boot的誕生和Spring是息息相關的,Spring Boot是Spring發展到一定程度的一個產物,但並不是Spri

原创 Spring Boot(十三)RabbitMQ安裝與集成

一、前言 RabbitMQ是一個開源的消息代理軟件(面向消息的中間件),它的核心作用就是創建消息隊列,異步接收和發送消息,MQ的全程是:Message Queue中文的意思是消息隊列。 ## 1.1 使用場景 - 削峯填谷:用於應對間歇性

原创 Spring Boot(十一)Redis集成從Docker安裝到分佈式Session共享

一、簡介 Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API,Redis也是技術領域使用最爲廣泛的存儲中間件,它是「Remote Dictionary S

原创 Java核心(五)深入理解BIO、NIO、AIO

導讀:本文你將獲取到:同/異步 + 阻/非阻塞的性能區別;BIO、NIO、AIO 的區別;理解和實現 NIO 操作 Socket 時的多路複用;同時掌握 IO 最底層最核心的操作技巧。 BIO、NIO、AIO 的區別是什麼? 同/異步、阻

原创 Spring Boot 最佳實踐(五)Spring Data JPA 操作 MySQL 8

一、Spring Data JPA 介紹 JPA(Java Persistence API)Java持久化API,是 Java 持久化的標準規範,Hibernate是持久化規範的技術實現,而Spring Data JPA是在 Hiberna

原创 Java核心(四)你不知道的數據集合

導讀:Map竟然不屬於Java集合框架的子集?隊列也和List一樣屬於集合的三大子集之一?更有隊列的正確使用姿勢,一起來看吧! Java中的集合通常指的是Collection下的三個集合框架List、Set、Queue和Map集合,Map

原创 Java併發編程(一)Thread詳解

一、概述 在開始學習Thread之前,我們先來了解一下 線程和進程之間的關係: 線程(Thread)是進程的一個實體,是CPU調度和分派的基本單位。 線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。 線程和進程的

原创 Java核心(三)併發中的線程同步與鎖

樂觀鎖、悲觀鎖、公平鎖、自旋鎖、偏向鎖、輕量級鎖、重量級鎖、鎖膨脹...難理解?不存的!來,話不多說,帶你飆車。 上一篇介紹了線程池的使用,在享受線程池帶給我們的性能優勢之外,似乎也帶來了另一個問題:線程安全的問題。 那什麼是線程的安全問題

原创 Java核心(二)深入理解線程池ThreadPool

本文你將獲得以下信息: 線程池源碼解讀 線程池執行流程分析 帶返回值的線程池實現 延遲線程池實現 爲了方便讀者理解,本文會由淺入深,先從線程池的使用開始再延伸到源碼解讀和源碼分析等高級內容,讀者可根據自己的情況自主選擇閱讀順序和需要了

原创 Spring Boot(十)Logback和Log4j2集成與日誌發展史

一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麼這些日誌框架之間有着怎樣的關係?誕生的原因又是解決什麼問題?下面一起來看。 ## 1.1 JUL Java有自己的日誌框架

原创 Spring Boot(十四)RabbitMQ延遲隊列

一、前言 延遲隊列的使用場景:1.未按時支付的訂單,30分鐘過期之後取消訂單;2.給活躍度比較低的用戶間隔N天之後推送消息,提高活躍度;3.過1分鐘給新註冊會員的用戶,發送註冊郵件等。 實現延遲隊列的方式有兩種: 通過消息過期後進入死信交

原创 Spring Boot 最佳實踐(二)集成Jsp與生產環境部署

一、簡介 提起Java不得不說的一個開發場景就是Web開發,也是Java最熱門的開發場景之一,說到Web開發繞不開的一個技術就是JSP,因爲目前市面上仍有很多的公司在使用JSP,所以本文就來介紹一下Spring Boot 怎麼集成JSP開發

原创 Ubuntu 18.04.1 搭建Java環境和HelloWorld

一、搭建Java環境 系統環境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下載JDK 官網地址:http://www.oracle.com/technetwork/java/javase/downloads/