Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

Netkiller Java 手札

Java, Servlet, JavaBean, Struts, Spring ...

Mr. Neo Chan, 陳景峯(BG7NYT)



中國廣東省深圳市望海路半島城邦三期
518067
+86 13113668890


文檔始創于 2015-11-10

電子書最近一次更新于 2020-11-15 03:19:21 .

版權聲明

轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。

http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
微信訂閲號 netkiller-ebook (微信掃瞄二維碼)
QQ:13721218 請註明“讀者”
QQ群:128659835 請註明“讀者”
知乎專欄 | 多維度架構

2017-11

2020-11-15 03:19:21

關於《Netkiller Java 手札》

作者2002年開始在項目中使用Java,各種原因沒有留下Java文檔,2015因工作需要重新拾起Java並整理本文檔。

本電子書重點內容是Spring boot, Spring cloud, Spring data, Spring security


致讀者

Netkiller 系列電子書始於 2000 年,風風雨雨走過20年,將在 2020 年終結,之後不在更新。作出這種決定原因很多,例如現在的閲讀習慣已經轉向短視頻,我個人的時間,身體健康情況等等......

感謝讀者粉絲這20年的支持

雖然電子書不再更新,後面我還會活躍在知乎社區和微信公眾號

目錄

1. 自述
1.1. 寫給讀者
1.2. 作者簡介
1.3. 如何獲得文檔
1.4. 打賞(Donations)
1.5. 聯繫方式
1. Java 14
1.1. JVM
1.1.1. CentOS 8 Java 14
1.1.2. 安裝 Java 6
1.1.2.1. HeapDumpOnOutOfMemoryError
1.1.3. java-1.8.0-openjdk
1.1.4. docker 環境
1.1.5. java - Launches a Java application.
1.1.5.1. java 9~11
1.1.5.2. -verbose:class 顯示載入jar檔案
1.1.5.3. java.io.tmpdir
1.1.5.4. 顯示版本號
1.1.5.5. 列出java模組
1.1.6. jar
1.1.7. jdeps - Java class dependency analyzer.
1.1.8. JShell
1.1.8.1. /help 顯示幫助信息
1.1.8.2. 退出命令
1.2. System
1.2.1. user.dir
1.2.2. java.io.tmpdir
1.2.3. 打印當前 Java 檔案的預設編碼
1.2.4. 自定義
1.2.5. System.in 標準輸入(Stdin)
1.3. exec 運行shell
1.4. 類型
1.4.1. var 本地變數類型推斷
1.4.2. Integer
1.4.2.1. 前面補零
1.4.3. String
1.4.3.1. 查找字元重現的位置
1.4.3.2. 行數統計
1.4.3.3. 複製字元串
1.4.3.4. 隨機字元串
1.4.3.5. 字元串替換處理
1.4.3.5.1. 正則表達式查找與替換
1.4.3.5.2. 利用正則快速轉換時間格式
1.4.3.6. substring
1.4.3.7. string to timestamp
1.4.3.8. String.strip
1.4.3.9. Ascii
1.4.3.10. 字元串處理,刪除中文以外的字元
1.4.3.11. 取出字元串中的中文字元
1.4.4. 類型轉換
1.4.4.1. Long to String
1.4.5. Date
1.4.5.1. SimpleDateFormat
1.4.5.2. Timestamp
1.4.5.3. TimeZone
1.4.5.4. String to Date
1.4.5.5. 比較兩個日期與時間
1.4.5.6. Calendar
1.4.5.7. getToday
1.4.5.8. Yesterday
1.4.5.9. ISO 8601
1.4.5.10. LocalDateTime
1.4.5.11. ZonedDateTime
1.4.6. Array
1.4.6.1. for each
1.4.6.2. Array to String
1.4.6.3.
1.4.7. float
1.4.8. double
1.4.8.1. String to double
1.4.9. BigDecimal
1.4.9.1. Convert BigDecimal Object to double value
1.4.9.2. 去除末尾多餘的0
1.4.9.3. 禁用科學計數法
1.4.9.4. 移動小數點位置
1.4.10. StringBuffer
1.4.11. enum
1.4.12. byte 類型
1.4.12.1. string2byte
1.4.12.2. byte[] to String
1.4.12.3. BigInteger2byte
1.4.12.4. int to byte array
1.4.12.5. byte array to int
1.4.12.6. byte2char
1.4.12.7. longToByte64
1.4.12.8. byte64ToLong
1.4.12.9. short2byte
1.4.12.10. byte8ToDouble
1.4.12.11. byte4ToFloat
1.4.12.12. 無符號 byte
1.4.12.13. byte to hex
1.4.12.14. byte[] to hex
1.4.12.15. 連接兩個 byte[]
1.4.12.16. List<Byte> to byte[]
1.5. Collection
1.5.1. 靜態 List
1.5.2. ArrayList
1.5.2.1. ArrayList to String
1.5.2.2. Array to List
1.5.2.3. List to Array
1.5.3. Set 轉為 List
1.5.4. List.of()
1.5.5. List.copyOf()
1.5.6. ArrayList forEach
1.5.7. ArrayList stream()
1.5.8. Set.of()
1.5.9. Collection to Array
1.5.10. ArrarList 轉換為 string[]
1.5.11. string[] 轉換為 ArrarList
1.5.12. ArrayList 轉換為 string
1.5.13. string 轉換為 ArrayList
1.5.14. String[] to List
1.6. Map
1.6.1. 初始化
1.6.2. static map
1.6.3. HashMap
1.6.3.1. 遍歷 HashMap
1.6.3.2. 遍歷map中的鍵
1.6.3.3. 遍歷map中的值 
1.6.3.4. 通過鍵取值
1.6.3.5. 使用 Iterator 遍歷 HashMap
1.6.4. LinkedHashMap
1.6.5. Map forEach
1.7. Queue
1.8. Stream
1.8.1. Stream.of
1.8.2. Stream.ofNullable
1.8.3. filter
1.8.4. map
1.8.5. limit/skip
1.8.6. sorted
1.8.7. distinct
1.8.8. forEach
1.8.9. count
1.8.10. collect
1.8.11. takeWhile 和 dropWhile
1.8.12. List to Stream
1.8.13. 混合使用的例子
1.9. Optional
1.9.1. of() 為非null的值創建一個Optional。
1.9.2. ofNullable() 為指定的值創建一個Optional,如果指定的值為null,則返回一個空的Optional。
1.9.3. isPresent 如果值存在返回true,否則返回false。
1.9.4. ifPresent() 如果Optional實例有值執行 lambda 表達式
1.9.5. get() 返回值
1.9.6. orElse 如果有值則將其返回,否則返回指定的其它值。
1.9.7. orElseGet與orElse方法類似,區別在於得到的預設值從 Supplier 返回。
1.9.8. orElseThrow 如果有值則將其返回,否則拋出supplier介面創建的異常
1.9.9. map() 方法用來對Optional實例的值執行一系列操作
1.9.10. flatMap()
1.9.11. filter() 通過傳入限定條件過濾Optional值
1.9.12. stream()
1.9.13. or()
1.9.14. example
1.10. Network
1.10.1. URL
1.10.2. java.io.tmpdir
1.11. JDBC
1.11.1. 安裝 JDBC 包
1.11.2. MySQL
1.11.3. Oracle
1.11.3.1. SID
1.11.3.2. SERVICE_NAME
1.11.3.3. TNS
1.11.3.3.1.
1.11.3.4. Oracle RAC Cluster
1.11.3.5. Oracle JDBC Demo
1.11.4. FAQ
1.11.4.1. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
1.11.4.2. Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
1.12. Util
1.12.1. Properties 處理 *.properties 檔案
1.12.1.1. 打開 properties 檔案
1.12.1.1.1. 檔案方式打開
1.12.1.1.2. 輸入流
1.12.1.2. propertyNames()
1.12.1.3. keySet()
1.12.1.4. entrySet()
1.12.1.5. 方法中返回 Properties
1.12.1.6.
1.12.1.7. getResourceAsStream()
1.12.1.8. store
1.12.1.9. 實現國際化
1.12.2. Logging
1.12.2.1. console
1.12.3. BASE64
1.12.4. Locale 國際化
1.12.5. ResourceBundle
1.12.6. Scanner
1.12.7. UUID
1.12.8. Arrays.equals 判斷兩個數組是否相等
1.12.9. Random 隨機字元串
1.12.9.1. 指定隨機數範圍
1.12.10. ArrayBlockingQueue
1.12.11. CRC32
1.12.12. FutureTask
1.13. IO
1.13.1. 取出檔案名中的副檔名
1.13.1.1. getAbsolutePath() 獲取絶對路徑
1.13.1.2. 創建目錄 mkdir()
1.13.2. 臨時檔案
1.13.3. FileWriter 文本寫入檔案
1.13.4. BufferedWriter
1.13.5. inputStream.transferTo()
1.13.6. InputStreamReader
1.13.7. 獲得 Resource 下檔案路徑
1.13.8. PrintWriter
1.13.9. OutputStreamWriter
1.13.10. FileOutputStream
1.13.11. FileInputStream
1.13.12. Scanner
1.13.13. 二進制檔案
1.13.13.1. 理解二進制檔案
1.13.13.2. byte 類型
1.13.13.3. boolean 布爾型
1.13.13.4. Long 型
1.13.13.5. chat 類型
1.13.13.6. UTF 字元串
1.13.13.7. Short 類型
1.13.13.8. float 單精度浮點類型
1.13.13.9. double 數據類型
1.13.13.10. 二進制檔案操作演示
1.13.13.10.1. 所有類型演示一遍
1.13.13.10.2. 檢查檔案是否是 png 檔案
1.14. Reflection 反射
1.14.1. 獲得所有變數
1.14.2. 批量賦值
1.14.3. 方法操作
1.14.3.1. 獲得所有方法
1.14.3.2. set/get 方法
1.14.3.3. static 方法調用
1.15. Thread 綫程
1.15.1. 實現非同步執行
1.15.2. 繼承 Thread 類實現多綫程
1.15.3. 實現 Runnable 介面
1.15.4. 綫程同步
1.16. java 腳本引擎
1.16.1. Maven
1.16.2. Helloworld
1.16.3. 運行腳本檔案
1.16.4. 變數傳遞
1.16.5. 全局變數與局部變數定義
1.16.6. 調用腳本中的函數或方法
1.16.7. 腳本編譯
1.16.8. jjs - Invokes the Nashorn engine.
1.17. Crypto
1.17.1. MD5
1.17.2. AES
1.17.3. AES/CBC/PKCS5PADDING
1.17.4. DES
1.18. java.security
1.18.1. 列出 Java 支持的數字摘要算法
1.18.2. 計算檔案的 MD5,SHA 等 HASH 值
2. Build Tools
2.1. Apache Ant
2.1.1. 安裝 ant
2.1.1.1. 1.8
2.1.1.2. 1.10.1
2.1.2. ANT
2.1.2.1. ant.project.name
2.1.2.2. 定義
2.1.3. Project
2.1.3.1. property
2.1.3.2. ant
2.1.3.3. environment
2.1.4. path
2.1.5. copy
2.1.6. javac
2.1.7. condition
2.1.8. exec
2.1.8.1. sshexec
2.1.9. if
2.1.10. macrodef
2.1.10.1. Git
2.1.10.2. Rsync
2.1.10.3. SSH
2.1.10.4. maven
2.1.11. Javascript
2.1.12. mail
2.1.13. basename
2.1.14. FAQ
2.1.14.1. warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
2.1.14.2. 調試 exec
2.2. Apache Ivy
2.2.1. Ivy Install
2.2.1.1. source code
2.2.1.2. apt-get
2.2.2. Test example
2.3. Apache Maven
2.3.1. 安裝 Maven
2.3.1.1. CentOS 8 安裝 Maven
2.3.1.2. Ubuntu
2.3.1.3. 源碼安裝
2.3.2. Maven 命令
2.3.2.1. 參數
2.3.2.2. -s 指定 settings.xml 檔案
2.3.2.3. help
2.3.2.4. archetype:create
2.3.2.5. clean
2.3.2.6. compile
2.3.2.6.1. 多綫程編譯
2.3.2.7. 編譯測試代碼
2.3.2.8. test
2.3.2.9. package
2.3.2.10. install
2.3.2.10.1. install-file
2.3.2.11. war
2.3.2.12. exec
2.3.2.13. dependency
2.3.2.13.1. build-classpath
2.3.2.13.2. dependency:tree 顯示包依賴樹
2.3.2.13.3. copy-dependencies 導出依賴包
2.3.2.13.4. analyze 查看未被使用的包
2.3.2.13.5. sources 下載源碼
2.3.2.14. jar
2.3.2.15. 構建裝配Maven Assembly
2.3.2.16. 加密密碼
2.3.2.17. help:describe
2.3.3. Maven 倉庫
2.3.4. pom.xml
2.3.4.1. properties
2.3.4.1.1. java.version
2.3.4.2. repositories 倉庫配置
2.3.4.2.1. 預設倉庫
2.3.4.2.2. 阿里雲倉庫
2.3.4.3. dependencies
2.3.4.4. dependencyManagement
2.3.4.5. build
2.3.4.5.1. finalName
2.3.4.5.2. sourceDirectory
2.3.4.5.3. resources 檔案處理
2.3.4.6. plugins
2.3.4.6.1. 跳過Unit test
2.3.4.6.2. maven-shade-plugin
2.3.5. Maven Module
2.3.5.1. Parent
2.3.5.2. 公共項目 common
2.3.5.3. 常規項目
2.3.5.4. 現在測試效果
2.3.6. 依賴管理
2.3.6.1. 創建依賴模組
2.3.6.2. 引用依賴管理
2.3.7. plugins
2.3.7.1. maven-compiler-plugin
2.3.7.2. maven-war-plugin
2.3.7.3. maven-antrun-plugin
2.3.7.4. maven-install-plugin
2.3.7.5. maven-surefire-plugin
2.3.7.6. maven-deploy-plugin
2.3.7.7. maven-jar-plugin
2.3.7.8. maven-dependency-plugin
2.3.7.9. spring-boot-maven-plugin
2.3.7.10. tomcat8-maven-plugin
2.4. Gradle 5
2.4.1. 安裝 Gradle
2.4.1.1. CentOS
2.4.1.2. Mac
2.4.2. Example
2.4.3. gradle 命令
2.4.3.1. tasks 列出任務
2.4.4. build.gradle
2.4.4.1. repositories
2.4.4.2. dependencies
2.4.4.3. jar
2.4.5. gradle.properties
2.4.5.1. 列出 properties
2.4.5.2. 自定義 gradle.properties
2.4.5.3.
2.4.5.4. System.properties
2.5. JitPack - Easy to use package repository for Git
2.6. Artifactory
2.6.1. Artifactory Web UI
2.6.2. build.gradle
3. Servlet
3.1. Example
3.2. Session
3.3. HttpServletRequest
3.4. Filter
3.4.1. web.xml
3.4.2. Filter 類
3.5. Listener
3.5.1. web.xml
3.5.2. NewsListener 類
3.5.3. NewsTask 類
3.5.4. JSP 中心顯示
3.6. JSP
3.6.1. 註釋
3.6.2. pageContext
3.6.2.1. queryString
3.6.3. request
3.6.3.1. Form
3.6.4.
3.6.4.1. sendRedirect
3.6.5. cookie
3.6.6. session
3.6.7. page
3.6.7.1. Session
3.6.8. trimDirectiveWhitespaces
3.6.9. include
3.6.10. jsp
3.6.10.1. jsp:forward
3.6.11. error-page
3.6.12. JSP 編程
3.6.12.1. 隨機數
3.6.13. FAQ
3.6.13.1. http://www.netkiller.cn/test.html;jsessionid=7D25CE666FF437F2094AA945E97CEB37
3.7. JSTL(JavaServer Pages Standard Tag Library)
3.7.1. c:set
3.7.1.1. c:remove
3.7.2. c:out
3.7.3. c:url
3.7.4. c:redirect
3.7.5. c:import
3.7.6. c:if
3.7.6.1. boolean
3.7.7. c:choose
3.7.8. c:forEach
3.7.8.1. List 處理
3.7.8.2. Map 處理
3.7.9. empty 判斷是否為空
3.7.10. JSTL fmt Tag setBundle Example
3.7.10.1. fmt:message
3.7.10.1.1. Language Package
3.7.10.1.2. fmt:message 變數
3.7.10.2.
3.8. WebSocket
3.8.1. Server
3.8.2. Client
I. Spring Framework
4. Spring 開發環境
4.1. Java 開發環境
4.2. 安裝 Spring Tool Suite
4.3. Dashboard
4.4. Spring Initializr - Bootstrap your application
5. Spring Boot
5.1. Spring Boot Quick start
5.1.1. 創建項目
5.1.2. pom.xml
5.1.3. Controller
5.2. Springboot with Maven
5.2.1. resource
5.2.2. Maven run
5.2.3. Spring Boot maven 插件 build-image
5.2.4. 生成項目信息
5.3. SpringApplication
5.3.1. 運行 Spring boot 項目
5.3.1.1. Linux systemd
5.3.1.2. 傳統 init.d 腳本
5.3.1.3. 編譯用於Tomcat的 War
5.3.2. @SpringBootApplication
5.3.2.1. 排除 @EnableAutoConfiguration 加載項
5.3.3. @EnableAutoConfiguration
5.3.4. @ComponentScan
5.3.5. @EntityScan 實體掃瞄
5.3.6. @EnableJpaRepositories
5.3.7. CharacterEncodingFilter
5.3.8. 隱藏 Banner
5.3.9. 實體與倉庫掃瞄
5.3.10. 列出 Beans
5.3.11. Tomcat 連接埠
5.3.12. 配置項設定
5.3.13.
5.4. Properties 配置檔案
5.4.1. application.properties 配置檔案
5.4.1.1. application.properties 參考
5.4.1.2. 啟動指定參數
5.4.1.3. 加載排除
5.4.1.4. PID FILE
5.4.1.5. server
5.4.1.6. logging
5.4.1.7. 內嵌 tomcat server
5.4.1.8. servlet
5.4.1.9. JSON 輸出與日期格式化
5.4.1.10. SMTP 相關配置
5.4.1.11. Redis
5.4.1.12. MongoDB
5.4.1.13. MySQL
5.4.1.14. Oracle
5.4.1.15. default_schema
5.4.1.16. datasource
5.4.1.17. velocity
5.4.1.18. Security 相關配置
5.4.1.19. MVC 配置
5.4.1.20. Kafka 相關配置
5.4.2. Properties 檔案
5.4.2.1. @Value 註解
5.4.2.2. containsProperty 讀取配置檔案
5.4.2.3. @PropertySource 註解載入 properties 檔案
5.4.2.4. @EnableConfigurationProperties 引用自定義 *.properties 配置檔案
5.4.2.5. 手工載入 *.properties 檔案
5.4.2.6. spring.profiles.active 參數切換配置檔案
5.4.2.7. SpringApplicationBuilder.properties() 方法添加配置項
5.4.2.8. 參數引用
5.4.2.9. 產生隨機數
5.4.2.10. List 列表類型
5.4.2.11. Map類型
5.4.2.12. Binder
5.5. Spring boot with Logging
5.5.1. 配置日誌檔案
5.5.1.1. 日誌輸出級別
5.5.1.2. Spring boot 2.1 以後的版本不打印 Mapped 日誌問題
5.5.1.3. 禁止控制台輸出日誌
5.5.1.4. 定製日誌格式
5.5.2. 打印日誌
5.5.2.1. lombok
5.5.3. logback 配置詳解
5.5.3.1. 標準輸出
5.5.3.2. 分隔日誌
5.5.3.3. 按照檔案尺寸分割日誌
5.5.3.4. 指定Class過濾日誌
5.5.3.5. 日誌寫入 MongoDB
5.5.3.6. configuration 屬性配置
5.5.3.7. contextName 設置上下文名稱
5.5.3.8. property 設置變數
5.5.3.9. encoder 日誌格式設置
5.5.3.10. RollingFileAppender
5.6. Spring boot with Jetty
5.7. Spring boot with HTTP2 SSL
5.7.1. 生成自簽名證書
5.7.2. application.properties 配置檔案
5.7.3. 啟動 Spring boot
5.7.4. restTemplate 調用實例
5.7.5. HTTP2
5.8. Spring boot with Webpage
5.8.1. Maven
5.8.2. application.properties
5.8.3. Application
5.8.4. IndexController
5.8.5. src/main/webapp/WEB-INF/jsp/index.jsp
5.8.6. 整合模板引擎
5.9. Spring boot with Velocity template
5.9.1. Maven
5.9.2. Resource
5.9.3. Application
5.9.4. RestController
5.9.5. Test
5.10. Spring boot with Thymeleaf
5.10.1. Maven
5.10.2. application.properties
5.10.3. Controller
5.10.4. HTML5 Template
5.11. Spring boot with Session share
5.11.1. Redis
5.11.1.1. Maven
5.11.1.2. application.properties
5.11.1.3. Application
5.11.2. 測試 Session
5.11.3. JDBC
5.11.4. Springboot 2.1
5.12. Spring boot with Caching
5.12.1. maven
5.12.2. 啟用 Cache
5.12.3. 測試 Controller
5.12.4. @Cacheable 的用法
5.12.5. @CachePut 用法
5.12.6. 解決Expire 和 TTL 過期時間
5.12.7. SpEL表達式
5.13. Spring boot with Email
5.13.1. Maven
5.13.2. Resource
5.13.3. POJO
5.13.4. RestController
5.13.5. Test
5.14. Spring boot with Hessian
5.14.1. Maven
5.14.2. Application
5.14.3. HessianServiceExporter
5.14.4. Service
5.14.5. RestController
5.15. Spring boot with Git version
5.15.1. CommonRestController 公共控製器
5.15.2. VersionRestController 測試控製器
5.15.3. 創建 .gitattributes 檔案
5.16. Spring boot with Data restful
5.16.1. Maven
5.17. Spring boot with ELK(Elasticsearch + Logstash + Kibana)
5.17.1. TCP 方案
5.17.2. Redis 方案
5.17.3. Kafka 方案
5.17.4. Other
5.18. Springboot with Ethereum (web3j)
5.18.1. Maven
5.18.2. application.properties
5.18.3. TestRestController
5.18.4. 測試
5.19. Spring boot with Async
5.19.1. 最簡單的配置
5.19.2. 非同步綫程池
5.20. Spring boot with csv
5.21. Spring boot with Redis
5.21.1. Spring boot with Redis
5.21.1.1. maven
5.21.1.2. application.properties
5.21.1.3. JUnit
5.21.1.4. Controller
5.21.2. Redis Pub/Sub
5.21.2.1. Redis配置類
5.21.2.2. 訂閲和發佈類
5.21.2.3. 消息發佈演示
5.22. Spring boot with MongoDB
5.22.1. Maven
5.22.2. Application
5.22.3. MongoTemplate
5.22.4. Repository
5.23. Spring boot with MySQL
5.23.1. Maven
5.23.2. Resource
5.23.3. Application
5.23.4. JdbcTemplate
5.23.5. CrudRepository
5.24. Spring boot with Oracle
5.24.1. Maven
5.24.2. application.properties
5.24.3. Application
5.24.4. CrudRepository
5.24.5. JdbcTemplate
5.24.6. Controller
5.25. Spring boot with PostgreSQL
5.25.1. pom.xml
5.25.2. application.properties
5.25.3. Application
5.25.4. CrudRepository
5.25.5. JdbcTemplate
5.25.6. Controller
5.25.7. Test
5.26. Spring boot with Datasource
5.26.1. Master / Slave 主從資料庫數據源配置
5.26.1.1. application.properties
5.26.1.2. 配置主從數據源
5.26.1.3. 選擇數據源
5.26.2. 多數據源配置
5.26.3. JPA 多數據源
5.26.4. Connection and Statement Pooling
5.26.4.1. org.apache.tomcat.jdbc.pool.DataSource
5.26.4.2. druid
5.26.4.3. c3p0 - JDBC3 Connection and Statement Pooling
5.26.4.4. dbcp2
5.26.4.5. bonecp
5.26.4.6. dbcp2
5.27. Spring boot with Elasticsearch
5.27.1. Maven
5.27.2. Application
5.27.3. application.properties
5.27.4. Domain
5.27.5. ElasticsearchRepository
5.28. Spring boot with Elasticsearch TransportClient
5.28.1. Maven
5.28.2. Application
5.28.3. application.properties
5.28.4. ElasticsearchConfiguration
5.28.5. RestController
5.29. Spring boot with Apache Hive
5.29.1. Maven
5.29.2. application.properties
5.29.3. Configuration
5.29.4. CURD 操作實例
5.30. Spring boot with Phoenix
5.30.1. Maven
5.30.2. application.properties
5.30.3. Configuration
5.31. Spring boot with RabbitMQ(AMQP)
5.31.1. maven
5.31.2. RabbitMQConfig
5.31.3. 生產者
5.31.4. 消費者
5.32. Spring boot with Apache Kafka
5.32.1. 安裝 kafka
5.32.2. maven
5.32.3. Spring boot Application
5.32.4. EnableKafka
5.32.5. KafkaListener
5.32.6. 測試
5.32.7. 完整的發佈訂閲實例
5.32.7.1. Consumer
5.32.7.2. Producer
5.32.7.3. Test
5.32.8. Spring cloud with Kafka
5.32.8.1. Application 主檔案
5.32.8.2. 資源配置檔案
5.32.8.3. 啟用 kafka
5.32.8.4. 消息發佈主程序
5.33. Spring boot with Scheduling
5.33.1. Application.java
5.33.2. Component
5.33.3. 查看日誌
5.33.4. 計劃任務控制開關
5.33.5. @Scheduled 詳解
5.33.5.1. 每3秒鐘一運行一次
5.33.5.2. 凌晨23點運行
5.33.6. Timer 例子
5.33.7. ScheduledExecutorService 例子
5.34. Spring boot with Swagger
5.34.1. Maven 檔案
5.34.2. SpringApplication
5.34.3. EnableSwagger2
5.34.4. RestController
5.34.5. @Api()
5.34.6. @ApiOperation()
5.34.7. @ApiResponses
5.34.8. @ApiModel 實體類
5.35. Spring boot with lombok
5.35.1. @Builder
5.35.2. @Slf4j 註解
5.36. Spring boot with Docker
5.36.1. 通過 Docker 命令構建鏡像
5.36.1.1. 手工編譯鏡像
5.36.1.2. Dockerfile 放在 src/main/docker/Dockerfile 下
5.36.1.3. 通過參數指定 Springboot 檔案
5.36.1.4. SPRING_PROFILES_ACTIVE 指定配置檔案
5.36.1.5. 推送鏡像到倉庫
5.36.2. 通過 Maven 構建 Docker 鏡像
5.36.2.1. Maven + Dockerfile 方案一
5.36.2.2. Maven + Dockerfile 方案二
5.36.2.3. Maven 不使用 Dockerfile 檔案
5.36.2.4. 推送鏡像
5.36.3. [ERROR] No plugin found for prefix 'dockerfile' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/Users/neo/.m2/repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1]
5.36.4. curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8888
5.37. Spring boot with Docker stack
5.37.1. 編譯 Docker 鏡像
5.37.2.
5.38. Spring boot with Kubernetes
5.38.1. Kubernetes 編排腳本
5.38.2. 部署鏡像
5.39. Spring boot with command line
5.39.1. Maven
5.39.2. CommandLineRunner 例子
5.39.3. ApplicationRunner 例子
5.40. Spring Boot Actuator
5.40.1. Maven 依賴
5.40.2. 與 Spring Boot Actuator 有關的配置
5.40.2.1. 禁用HTTP端點
5.40.2.2. 安全配置
5.40.3. actuator 介面
5.40.4. 健康狀態
5.40.4.1. 健康狀態
5.40.5. 關機
5.40.6. info 配置信息
5.40.7. 計劃任務
5.41. String boot with RestTemplate
5.41.1. RestTemplate Example
5.41.1.1. pom.xml
5.41.1.2. web.xml
5.41.1.3. springframework.xml
5.41.1.4. RestController
5.41.1.5. POJO
5.41.1.6. 在控製器中完整實例
5.41.1.7. 測試
5.41.2. GET 操作
5.41.2.1. 返回字元串
5.41.2.2. 傳遞 GET 參數
5.41.3. POST 操作
5.41.3.1. postForObject
5.41.3.2. postForEntity
5.41.4. PUT 操作
5.41.5. Delete 操作
5.41.6. 上傳檔案
5.41.7. HTTP Auth
5.41.7.1. Client
5.41.8. PKCS12
5.41.9. Timeout 超時設置
5.41.9.1. JRE 啟動參數設置超時時間
5.41.9.2. RestTemplate timeout with SimpleClientHttpRequestFactory
5.41.9.3. @Configuration 方式
5.42. SpringBootTest
5.42.1. Maven 依賴
5.42.2. 測試類
5.42.2.1. Junit基本註解介紹
5.42.3.
5.42.3.1. Assert.assertEquals 判斷相等
5.42.3.2. Assert.assertTrue
5.42.4. JPA 測試
5.42.5.
5.42.6. Controller單元測試
5.42.7. WebTestClient
5.43. Spring boot with Aop
5.43.1. Aspect
5.43.1.1. Maven
5.43.1.2. Pojo 類
5.43.1.3. Service 類
5.43.1.4. Aspect 類
5.43.1.5. 控製器
5.43.1.6. Application
5.43.1.7. 測試
5.44. Spring boot with starter
5.44.1. 實現 starter
5.44.1.1. Maven pom.xml 依賴包
5.44.1.2. 配置檔案處理
5.44.1.3. 自動配置檔案
5.44.1.4. 啟用 starter 的自定義註解
5.44.2. 引用 starter
5.44.2.1. Maven pom.xml 引入依賴
5.44.2.2. 通過註解配置 starter
5.44.2.3. 測試運行結果
5.45. Spring boot with Grafana
5.45.1. Springboot 整合 InfluxDB
5.45.2. InfluxDB
5.46. Spring Boot with Prometheus
5.46.1. Maven 依賴
5.46.2. application.properties 配置檔案
5.46.3. 啟動類
5.46.4. 測試
5.46.5. 控製器監控
5.46.6. 自定義埋點監控
5.46.6.1. 攔截器
5.46.6.2. 計數器元件
5.46.6.3. 配置類
5.46.6.4. 測試埋點效果
6. Spring MVC
6.1. @EnableWebMvc
6.1.1. CORS 跨域請求
6.1.2. Spring MVC CORS with WebMvcConfigurerAdapter
6.2. @Controller
6.2.1. @RequestMapping
6.2.1.1. @RequestMapping("/")
6.2.1.2. 映射多個URL
6.2.1.3. 匹配通配符
6.2.1.4. headers
6.2.1.5. @GetMapping
6.2.1.6. @PostMapping
6.2.1.7. RequestMapping with Request Parameters - @RequestParam
6.2.2. @RequestBody
6.2.2.1. @RequestBody 傳遞 List
6.2.2.2. 傳遞 Map 數據
6.2.3. @RequestHeader - 獲取 HTTP Header 信息
6.2.3.1. @RequestHeader 從 Http 頭中獲取變數
6.2.4. RequestMapping with Path Variables - @PathVariable
6.2.4.1. URL 參數傳遞
6.2.4.2. 預設值
6.2.4.3. URL 傳遞 Date 類型
6.2.4.4. 處理特殊字元
6.2.4.5. @PathVariable 注意事項
6.2.5. @ModelAttribute
6.2.6. @ResponseBody
6.2.6.1. 直接返回HTML
6.2.7. @ResponseStatus 設置 HTTP 狀態
6.2.8. @CrossOrigin
6.2.8.1. maxAge
6.2.9. @CookieValue - 獲取 Cookie 值
6.2.10. @SessionAttributes
6.2.11. ModelAndView
6.2.11.1. 變數傳遞
6.2.11.2. ModelMap 傳遞多個變數
6.2.11.3. redirect
6.2.11.4. ArrayList
6.2.11.5. HashMap
6.2.11.6. 傳遞對象
6.2.11.7.
6.2.12. HttpServletRequest / HttpServletResponse
6.2.12.1. HttpServletResponse
6.2.12.2. HttpServletRequest
6.3. @RestController
6.3.1. 返回實體
6.3.2. JSON
6.3.3. 處理原始 RAW JSON 數據
6.3.4. 返回 JSON 對象 NULL 專為 "" 字元串
6.3.5. XML
6.3.6. 兼容傳統 json 介面
6.3.7. @PageableDefault 分頁
6.3.8. 上傳檔案
6.4. View
6.4.1. 配置靜態檔案目錄
6.4.2. 添加靜態檔案目錄
6.4.3. Using Spring’s form tag library
6.4.3.1. css
6.4.3.2. cssClass
6.4.4. Thymeleaf
6.4.4.1. Maven pom.xml
6.4.4.2. Spring 配置
6.4.4.3. controller
6.4.4.4. HTML5 Template
6.4.4.5. thymeleaf 渲染表格
6.4.4.6. URL 連結
6.4.4.7. 拆分字元串
6.4.4.8. 日期格式化
6.4.5. FreeMarker
6.5. Service
6.5.1. Application
6.5.2. 定義介面
6.5.3. 實現介面
6.5.4. 調用 Service
6.5.5. context.getBean 調用 Service
6.6. i18n 國際化
6.6.1. 在 appliction.properties 中配置啟用 i18n
6.6.2. 創建語言包檔案
6.6.3. 控製器重引用語言包
6.6.4. 參數傳遞
6.7. 校驗器(Validator)
6.7.1. 常規用法
6.7.1.1. 定義校驗器
6.7.1.2. 獲取 BindingResult 結果
6.7.1.3. 測試校驗效果
6.7.2. 自定義註解
6.7.2.1. 定義校驗器註解介面
6.7.2.2. 實現介面
6.7.2.3. 註解用法
6.7.2.4. 測試註解
6.8. Interceptor
6.8.1. WebMvcConfigurerAdapter
6.8.2. HandlerInterceptor
6.9. FAQ
6.9.1. o.s.web.servlet.PageNotFound
6.9.2. HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
6.9.3. 同時使用 Thymeleaf 與 JSP
6.9.4. 排除靜態內容
6.9.5. HTTP Status 406
6.9.6. Caused by: java.lang.IllegalArgumentException: Not a managed type: class common.domain.Article
6.9.7. {"error":"unauthorized","error_description":"Full authentication is required to access this resource"}
7. WebFlux framework
7.1. Getting Started
7.1.1. Maven
7.1.2. Application
7.1.3. RestController
7.1.4. 測試
7.2. WebFlux Router
7.2.1. Component 原件
7.2.2. 路由配置
7.2.3. Thymeleaf
7.2.3.1. 模板引擎 Thymeleaf 依賴
7.2.3.2. application.properties 相關的配置
7.2.3.3.
7.2.3.4. Tymeleaf 視圖
7.2.4. Webflux Redis
7.2.4.1. Maven Redis 依賴
7.2.4.2. Redis 配置
7.2.4.3. Config
7.2.4.4. Service
7.2.4.5.
7.2.5. Webflux Mongdb
7.2.5.1. Maven 依賴
7.2.5.2. Repository
7.2.5.3. Service
7.2.5.4. 控製器
7.2.6. SSE
7.2.7. Mono/Flux
8. Spring Data
8.1. Jackson
8.1.1. @JsonIgnore 返回json是不含有該欄位
8.1.2. @JsonFormat 格式化 json 時間格式
8.1.2.1. 日期格式化
8.1.2.2. 時區
8.1.2.3. 枚舉
8.1.2.4. 枚舉
8.1.3. @JsonComponent
8.2. Spring Data with Redis
8.2.1. 整合 Redis XML 方式
8.2.1.1. pom.xml
8.2.1.2. springframework-servlet.xml
8.2.1.3. Controller
8.2.1.4. index.jsp
8.2.1.5. 測試
8.2.2. RedisTemplate
8.2.2.1. stringRedisTemplate 基本用法
8.2.2.2. 設置緩存時間
8.2.2.3. 字元串截取
8.2.2.4. 追加字元串
8.2.2.5. 設置鍵的字元串值並返回其舊值
8.2.2.6. increment
8.2.2.7. 刪除 key
8.2.2.8. 返回字元串長度
8.2.2.9. 如果key不存便緩存。
8.2.2.10. 緩存多個值 /獲取多個值 multiSet / multiGet
8.2.2.11. List
8.2.2.12. SET 數據類型
8.2.2.13. 有序的 set 集合
8.2.2.14. Hash
8.2.2.15. 過期時間未執行
8.2.2.16. setBit / getBit 二進制位操作
8.2.2.17. 存儲 Json 對象
8.2.3. Spring Data Redis - Repository Examples
8.2.3.1. @EnableRedisRepositories 啟動 Redis 倉庫
8.2.3.2. 定義 Domain 類
8.2.3.3. Repository 介面
8.2.3.4. 測試代碼
8.3. Spring Data with MongoDB
8.3.1. Example Spring Data MongoDB
8.3.1.1. pom.xml
8.3.1.2. springframework-servlet.xml
8.3.1.3. POJO
8.3.1.4. Controller
8.3.1.5. 查看測試結果
8.3.1.6. 條件查詢
8.3.2. @Document
8.3.2.1. 指定表名
8.3.2.2. @Id
8.3.2.3. @Version
8.3.2.4. @Field 定義欄位名
8.3.2.5. @Indexed
8.3.2.6. @CompoundIndex 復合索引
8.3.2.7. @TextIndexed
8.3.2.8. @GeoSpatialIndex 地理位置索引
8.3.2.9. @Transient 丟棄數據,不存到 mongodb
8.3.2.10. @DBRef 做外外鍵引用
8.3.2.11. @DateTimeFormat
8.3.2.12. @NumberFormat
8.3.2.13. 在 @Document 中使用 Enum 類型
8.3.2.14. 在 @Document 中定義資料結構 List/Map
8.3.2.15. GeoJson 數據類型
8.3.3. MongoRepository
8.3.3.1. 掃瞄倉庫介面
8.3.3.2. findAll()
8.3.3.3. deleteAll()
8.3.3.4. save()
8.3.3.5. count()
8.3.3.6. exists() 判斷是否存在
8.3.3.7. existsById()
8.3.3.8. findByXXXX
8.3.3.9. findAll with OrderBy
8.3.3.10. findAll with Sort
8.3.3.11. FindAll with Pageable
8.3.3.12. StartingWith 和 EndingWith
8.3.3.13. Between
8.3.3.14. Before / After
8.3.3.15. @Query
8.3.4. mongoTemplate
8.3.4.1. Save 保存
8.3.4.2. Insert
8.3.4.3. updateFirst 修改符合條件第一條記錄
8.3.4.4. updateMulti 修改符合條件的所有
8.3.4.5. 查找並保存
8.3.4.6. upsert - 修改符合條件時如果不存在則添加
8.3.4.7. 刪除
8.3.4.8. 查找一條數據
8.3.4.9. 查找所有數據
8.3.4.10. Query
8.3.4.11. Criteria
8.3.4.12. Update
8.3.4.13. BasicUpdate
8.3.4.14. Sort
8.3.4.15. Query + PageRequest
8.3.4.16. newAggregation
8.3.4.17. 創建索引
8.3.4.18. 子對象操作
8.3.5. GeoJson 反序列化
8.3.6. FAQ
8.3.6.1. location object expected, location array not in correct format; nested exception is com.mongodb.MongoWriteException: location object expected, location array not in correct format
8.4. Spring Data with MySQL
8.4.1. 選擇資料庫表引擎
8.4.2. 聲明實體
8.4.2.1. @Entity 聲明實體
8.4.2.2. @Table 定義表名
8.4.2.3. @Id 定義主鍵
8.4.2.4. @Column 定義欄位
8.4.2.5. @Lob 註解屬性將被持久化為 Blog 或 Clob 類型
8.4.2.6. @NotNull 不能為空聲明
8.4.2.7. @Temporal 日期定義
8.4.2.8. @DateTimeFormat 處理日期時間格式
8.4.2.9. 預設時間規則
8.4.2.10. Enum 枚舉數據類型
8.4.2.11. SET 資料結構
8.4.2.12. JSON 數據類型
8.4.2.13. 索引
8.4.2.14. 創建復合主鍵
8.4.2.15. @JoinColumn
8.4.2.16. @OneToOne
8.4.2.17. OneToMany 一對多
8.4.2.18. ManyToMany 多對多
8.4.2.19. 外鍵級聯刪除
8.4.2.20. 其他
8.4.3. 實體繼承
8.4.4. Repository
8.4.4.1. CrudRepository
8.4.4.2. JpaRepository
8.4.4.3. findByXXX
8.4.4.4. count 操作
8.4.4.5. OrderBy
8.4.4.6. GreaterThan
8.4.4.7. PageRequest 翻頁操作
8.4.4.8. Sort 排序操作操作
8.4.4.9. Query
8.4.4.10. @Transactional
8.4.4.11. 鎖 @Lock
8.5. EntityManager
8.6. Spring Data with JdbcTemplate
8.6.1. execute
8.6.2. queryForInt
8.6.3. queryForLong
8.6.4. queryForObject
8.6.4.1. 返回整形與字元型
8.6.4.2. 查詢 Double 類型資料庫
8.6.4.3. 返回日期
8.6.4.4. 返回結果集
8.6.4.5. 通過 "?" 向SQL傳遞參數
8.6.4.6. RowMapper 記錄映射
8.6.5. queryForList
8.6.5.1. Iterator 用法
8.6.5.2. for 循環
8.6.5.3. forEach 用法
8.6.6. queryForMap
8.6.7. query
8.6.7.1. ResultSet
8.6.7.2. ResultSetExtractor
8.6.7.3. RowMapper
8.6.8. queryForRowSet
8.6.9. update
8.6.10.
8.6.11. 實例參考
8.6.11.1. 參數傳遞技巧
8.7. Spring Data with Elasticsearch
8.7.1. 內嵌 Elasticsearch
8.7.1.1. Maven
8.7.1.2. src/main/resources/application.properties
8.7.1.3. Domain Class
8.7.1.4. ElasticsearchRepository
8.7.1.5. SearchRestController
8.7.1.6. 測試
8.7.2. 集群模式
8.7.3. Document
8.7.4. Elasticsearch 刪除操作
8.7.5. FAQ
8.7.5.1. java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.0.0]
8.8. Spring Data FAQ
8.8.1. No identifier specified for entity
8.8.2. Oracle Date 類型顯示日期和時間
8.8.3. java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
8.8.4. Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
9. Spring Security
9.1. Spring Security with HTTP Auth
9.1.1. 預設配置
9.1.2. 設置用戶名和密碼
9.1.3. 禁用 Security
9.2. Spring boot with Spring security
9.2.1. Maven
9.2.2. Reource
9.2.3. Application
9.2.4. WebSecurityConfigurer
9.2.5. RestController
9.2.6. 測試
9.2.7. Spring + Security + MongoDB
9.2.7.1. Account
9.2.7.2. AccountRepository
9.2.7.3. WebSecurityConfiguration
9.3. Spring Boot with Web Security
9.3.1. EnableWebSecurity
9.3.2. Web靜態資源
9.3.3. 正則匹配
9.3.4. 登陸頁面,失敗頁面,登陸中頁面
9.3.5. CORS
9.3.6. X-Frame-Options 安全
9.4. 訪問控制列表(Access Control List,ACL)
9.4.1. antMatchers
9.4.2. HTTP Auth
9.4.3. Rest
9.4.4. hasRole
9.4.5. hasAnyRole()
9.4.6. withUser
9.4.6.1. 添加用戶
9.4.6.2. 添加多個用戶,並指定角色
9.4.6.3. 獲取當前用戶
9.5. Spring Authorization Server
9.5.1. Oauth2 協議
9.5.1.1. token
9.5.1.2. grant_type
9.5.1.3. 授權碼授權模式(Authorization Code Grant)
9.5.1.4. 密碼模式(Resource Owner Password Credentials Grant)
9.5.1.5. 客戶端憑證模式(Client Credentials Grant)
9.5.1.6. 刷新 TOKEN 方式
9.5.2. Maven 依賴
9.5.3. Spring cloud with Oauth2
9.5.3.1. authorization_code
9.5.3.2. Spring boot with Oauth2 - Password
9.5.3.3. Spring boot with Oauth2 jwt
9.5.3.4. Spring boot with Oauth2 jwt 非對稱證書
9.5.3.5. Apple iOS 訪問 Oauth2
9.5.3.6. Oauth2 客戶端
9.5.3.7. Android Oauth2 + Jwt example
9.5.3.8. RestTemplate 使用 HttpClient
9.5.3.9. 自簽名證書信任問題
9.5.3.10. Principal
9.5.3.11. SecurityContextHolder 對象
9.5.3.12. 資源伺服器配置
9.5.3.13. Client
9.5.3.14. Oauth2 常見問題
10. Spring Cloud
10.1. Spring Cloud Config
10.1.1. Maven 項目 pom.xml 檔案
10.1.2. Server
10.1.2.1. Maven config 模組
10.1.2.2. Application
10.1.2.3. application.properties
10.1.2.4. Git 倉庫
10.1.2.5. 測試伺服器
10.1.3. Client
10.1.3.1. Maven pom.xml
10.1.3.2. Application
10.1.3.3. bootstrap.properties
10.1.3.4. 測試 client
10.1.4. Config 高級配置
10.1.4.1. 倉庫配置
10.1.4.2. Config server 用戶認證
10.1.4.3. 加密敏感數據
10.1.4.4. Spring Cloud Config JDBC Backend
10.1.5. Old
10.1.5.1. Server (Camden.SR5)
10.1.5.2. Client (Camden.SR5)
10.2. Spring Cloud Consol
10.2.1. Spring Cloud Consul 配置
10.2.2. Maven 父項目
10.2.3. Consul 服務生產者
10.2.3.1. Maven
10.2.3.2. application.properties
10.2.3.3. SpringApplication
10.2.3.4. TestController
10.2.4. Consul 服務消費者
10.2.4.1. Maven
10.2.4.2. application.properties
10.2.4.3. SpringApplication
10.2.4.4. TestController
10.2.5. Openfeign
10.2.5.1. Maven
10.2.5.2. application.properties
10.2.5.3. SpringApplication
10.2.5.4. Feign 介面
10.2.5.5. TestController
10.3. Spring Cloud Netflix
10.3.1. Eureka Server
10.3.1.1. Maven
10.3.1.2. Application
10.3.1.3. application.properties
10.3.1.4. 檢查註冊伺服器
10.3.2. Eureka Client
10.3.2.1. Maven
10.3.2.2. Application
10.3.2.3. RestController
10.3.2.4. application.properties
10.3.2.5. 測試
10.3.3. Feign client
10.3.3.1. Maven
10.3.3.2. Application
10.3.3.3. interface
10.3.3.4. application.properties
10.3.3.5. 測試
10.3.3.6. fallback
10.3.4. 為 Eureka Server 增加用戶認證
10.3.4.1. Maven
10.3.4.2. application.properties
10.3.4.3. Eureka Client
10.3.4.4. Feign Client
10.3.5. Eureka 配置項
10.3.5.1. /eureka/apps
10.3.5.2. Eureka instance 配置項
10.3.5.3. Eureka client 配置項
10.3.5.4. Eureka Server配置項
10.3.6. ribbon
10.3.6.1.
10.3.6.2. LoadBalancerClient 實例
10.3.6.3. Ribbon 相關配置
10.3.7. 獲取 EurekaClient 信息
10.3.8. Zuul
10.3.8.1. Maven
10.3.8.2. EnableZuulProxy
10.3.8.3. application.yml
10.3.8.4. 負載均衡配置
10.4. Openfeign
10.4.1. Openfeign 掃瞄包配置
10.4.2. 用戶認證
10.4.3. 配置連接方式
10.4.4.
10.5. Spring Cloud Gateway
10.5.1. Gateway 例子
10.5.1.1. Maven
10.5.1.2. SpringApplication
10.5.1.3. application.yml
10.5.1.4. RouteLocator 方式
10.5.2. 路由配置
10.5.2.1. 轉發操作
10.5.2.2. URL 參數
10.6. Spring Cloud Stream
10.7. Spring Cloud Bus
10.8. Spring Cloud Sleuth
10.9. Spring Cloud 相關的 application.properties 配置
10.9.1. 啟用或禁用 bootstrap
10.9.2. bootstrap.properties 配置檔案
10.10. Spring Cloud with Kubernetes
10.10.1. Config
10.10.1.1. Maven 依賴
10.10.1.2. Spring Cloud 配置檔案
10.10.1.3. 程序檔案
10.10.1.4. Kubernetes 編排腳本
10.10.1.5. 測試
10.10.2. 註冊發現
10.10.2.1. Maven 父項目
10.10.2.2. provider
10.10.2.3. consumer
10.10.2.4. 測試
10.10.2.5.
10.11. FAQ
10.11.1. Cannot execute request on any known server
10.11.2. @EnableDiscoveryClient與@EnableEurekaClient 區別
10.11.3. Feign請求超時
10.11.4. 已停止的微服務節點註銷慢或不註銷
10.11.5. Feign 啟動出錯 PathVariable annotation was empty on param 0.
10.11.6. Feign 提示 Consider defining a bean of type 'common.feign.Cms' in your configuration.
10.11.7. Load balancer does not have available server for client
10.11.8. Eureka Client (Dalston.SR1)
10.11.8.1. Maven
10.11.8.2. Application
10.11.8.3. RestController
10.11.8.4. application.properties
10.11.8.5. 測試
10.11.9. Config Server(1.3.1.RELEASE)
10.11.9.1. Server
10.11.9.2. Client
11. Tomcat Spring 運行環境
11.1. Maven
11.2. Spring Boot Quick start
11.2.1. 創建項目
11.2.2. pom.xml
11.2.3. Controller
11.3. Spring MVC configuration
11.4. Tomcat
11.5. 整合 Mybatis
11.5.1. pom.xml
11.5.2. properties
11.5.3. dataSource
11.5.4. SqlSessionFactory
11.5.5. Mapper 掃瞄
11.5.6. Mapper 單一class映射
11.5.7. Service
11.5.8. 測試實例
12. Miscellaneous
12.1. Object to Json
12.2. Json To Object
13. FAQ
13.1. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
13.2. No identifier specified for entity
13.3. Could not read document: Invalid UTF-8 middle byte 0xd0
13.4. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
13.5. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
13.6. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
13.7. Spring boot 怎樣顯示執行的SQL語句
13.8. Cannot determine embedded database driver class for database type NONE
13.9. Spring boot / Spring cloud 時區差8個小時
13.10. @Value 取不到值
13.11. Spring boot 2.1.0
13.12. Field authenticationManager in cn.netkiller.oauth2.config.AuthorizationServerConfigurer required a bean of type 'org.springframework.security.authentication.AuthenticationManager' that could not be found.
13.13. 打印 Bean 信息
14. MyBatis
14.1. Mybatis 入門
14.2. 介面註解
15. Apache Struts
15.1. struts.xml
15.1.1. include
15.2. Struts Tags
15.2.1. property
15.2.2. set
15.2.3. url
15.2.4. s:include
15.2.5. s:action
15.2.6. HTML Form
15.2.6.1. form
15.2.6.2. textfield
15.2.6.3. s:hidden
15.2.6.4. select
15.2.7. iterator
15.2.8. if elseif else
15.3. Action
15.3.1. redirect
15.3.2. redirectAction
15.3.3. JSON
15.3.3.1. enableGZIP 壓縮傳輸
15.3.3.2. excludeProperties 排除 Properties
15.3.3.3.
15.3.4. 傳遞 Timestamp 變數
15.4. Ajax + JSON
15.4.1. GET/POST JSON
15.5. Json 內容展示
15.5.1. 禁止方法
15.5.2. 格式化日期
15.5.3. 重命名變數名
15.5.4. org.apache.struts2.json
15.6. Interceptor
15.6.1. Session
15.7. Action 中使用綫程
15.8. 日誌
15.9. FAQ
15.9.1. Struts 怎樣判斷用戶來自電腦還是移動設備
16. Apache Tiles
16.1. 配置 Tiles
16.1.1. Maven
16.1.2. web.xml
16.2. Template 配置模板
16.3. Struts tiles
17. Play
18. Log
18.1. Logback
18.1.1. Maven 包
18.1.2. Example
18.2. slf4j
18.3. log4j
18.3.1. 安裝 Log4j
18.3.1.1. 手工安裝
18.3.1.2. Maven
18.3.2. log4j 環境變數
18.3.3. Log4j Example
18.3.4. log4j.properties
19. JSON (JavaScript Object Notation)
19.1. javax.json.*
19.1.1. Json 編碼
19.1.2. Json 解碼
19.1.3. URL獲取Json
19.2. Jackson
19.2.1. ObjectToJSON
19.2.2. JSONToObject
19.2.3. JsonNode
20. AMQP(Advanced Message Queuing Protocol)
20.1. Send and Recv
20.2. direct
21. NoSQL
21.1. MongoDB
21.1.1. pom.xml
21.1.2. 插入操作
21.1.3. 讀取操作
22. Elasticsearch API
22.1. Client
22.2. insert
22.3. Get
22.4. delete
22.5. Search
22.6. Query 查詢
22.6.1. match all 匹配所有數據
22.6.2. match 匹配查詢
22.6.3. match phrase 短語精準匹配
22.7. Filter 過濾
22.7.1. term
22.7.2. range
22.8. Sorting
22.9. 返回 Source 欄位
22.10. Count
22.11. Example 範例
22.11.1. Spring boot 案例
22.12. FAQ
22.12.1. 顯示查詢 JSON 字元串
23. Jersey - RESTful Web Services in Java.
23.1. Client 2.x
23.1.1. Maven 版本
23.1.2. GET 操作
23.1.3. GET + Auth 用戶認證
23.2. Client 1.x
23.2.1. Jersey + Auth + HTTP2 + SSL
24. Apache HttpComponents
24.1. org.apache.commons.lang3
24.1.1. HTML 標籤處理
24.1.2. StringUtils.join 使用特定字元連結字元串
24.1.3. RandomStringUtils
24.2. commons-text
24.2.1. 禁止轉譯 json
24.3. Apache HttpClient
24.3.1. Maven
24.3.2. HTTP POST 操作
24.3.2.1. Post Data
24.3.2.2. POST RAW 數據
24.3.2.3. POST GBK 編碼得數據
24.3.3. HTTPS
24.3.3.1. Get https 介面
24.3.3.2. POST json 數據
24.3.4. HTTP/2
24.3.5. Java11
24.3.5.1. sync get
24.3.5.2. async get
24.3.5.3. post form
24.3.6. Host name 'api.netkiller.cn' does not match the certificate subject provided
24.3.7. HttpStatus
25. Cache
25.1. java memcached client
25.2. Jedis
25.2.1. 認證
25.2.2. jedis.keys
25.3. Ehcache
26. Kafka
26.1. 安裝 Kafka 環境
26.2. Maven
26.3. 啟動 kafka
26.4. 入門例子
26.4.1. 訂閲例子
26.4.2. 發佈例子
26.5. 綫程例子
II. Java UnitTest
27. Junit5
27.1. 項目初始化
27.1.1. Maven
27.2. JUnit 5 註解
27.2.1. @Disabled
27.2.2. @Tag
27.2.3. @Nested
27.2.4. @TestFactory
27.3. JUnit 5 斷言
27.3.1. assertArrayEquals
27.3.2. assertAll
27.3.3.
27.3.4. fail
27.3.5. JUnit 5 前置條件
27.4. 依賴注入
27.4.1. TestInfo
27.4.2. TestReporter
27.5. Junit4
27.5.1. 生成 HTML 報告
27.5.2. Junit4 輸出格式定義
28. TestNG
29. JaCoCo - Java code coverage tool
29.1. Maven
29.2. Gradle
30. Rest Assured
30.1. 打印出 response 的 body
31. Software Development Kit
31.1. Google
31.1.1. com.google.gson
31.1.1.1. map 處理
31.1.1.2. POJO
31.1.1.3. toJson
31.1.1.4. fromJson
31.1.1.5. JsonParser
31.1.1.6. Exmaple 範例
31.1.1.6.1. Map to Json
31.1.1.7. Exmaple 範例
31.1.1.7.1. Map to Json
31.1.1.8. 處理複雜的類型
31.1.2. Guava
31.1.2.1. maven
31.1.2.2. 刪除不可顯示的字元
31.2. Mahout
31.2.1. 推薦系統
31.2.1.1. Maven pom.xml
31.2.1.2. 推薦程序
31.2.1.3. 數據檔案
31.3. Hessian
31.4. quartz-scheduler
31.5. Redisson
III. Android 9 Pie
32. Android Studio
32.1. 卸載 Android Studio
32.2. 代碼格式化
32.3. 設置兼容最低SDK版本
32.4. SDK Tools
32.4.1. 接受 License
32.4.2. 查看 SDK 列表
32.4.3. 按照 Android SDK
32.5. 命令行操作
33. AndroidManifest.xml
33.1.
33.2. 開啟網絡
33.3. 檔案存儲權限
33.4. 相機權限
33.5. GPS 定位權限
34. 配置檔案
34.1. *.properties 檔案
34.2. 再 AndroidManifest.xml 使用 meta-data element 定義
34.3. 再 build.gradle 檔案中配置 productFlavors
35. UI Layout
35.1. 切換UI
35.1.1.
35.1.2. startActivity()
35.1.3. Activity 間數據傳遞
35.2. Button
35.2.1. 啟用禁用
35.2.2. 實現 OnClickListener 介面
35.3. ListView
35.3.1. Array
35.3.2. List
35.3.3. setOnItemClickListener()
35.3.4. 用介面方法實現
35.4. Switch
35.5. GardView
35.6. GridView
35.7. ProgressBar
35.8. ImageView
35.9. Fragment
35.10. Dialog
35.11. Menu
36. Toast
36.1. 預設樣式
36.2. 自定義樣式
36.3. 帶有圖片的樣式
37. Environment
37.1.
37.2.
37.3.
38. Schedule 計劃任務
38.1. Time 和 TimerTask 定時刷新
38.2. 使用 Runnable 和 Handler 實現定時執行
39. Internationalization i18n with Android (國際化)
39.1. 創建國際化檔案
39.2. strings.xml 檔案
39.3. 翻譯語言
39.4. 引用國際化檔案
39.5. 切換語言
40. 存儲
40.1. SharedPreferences
40.1.1. 操作模式
40.1.2. 保存數據
40.1.3. 讀取數據
40.1.4. 通過 key 查詢數據是否存在
40.1.5. 刪除數據
40.1.6. 清空數據
40.1.7. 對象存儲
40.1.8. SharedPreferences 讀取物理存儲檔案
40.2. SD Card
40.2.1. SD Card 狀態
41. 相機與相冊
41.1. manifest 檔案
41.2. layout
41.3. Activity
41.4. LED flash 做手電筒
42. 麥克風與錄音
42.1. 開啟麥克風和SD卡權限
42.2. layout
42.3. Activity
43. 多媒體開發
43.1. MediaPlayer
43.2. VideoView 開發
43.2.1. 播放網絡視頻
43.2.2. MediaController 添加翻頁事件
43.2.3. 靜音播放視頻
43.2.4. 更新進度條
43.2.5. 完整的例子
43.3. SurfaceView
43.4. Vitamio
44. 定位
44.1. manifest 權限配置
44.2. layout
44.3. Activity
45. 電話
45.1. SIM 卡狀態
45.2. 通信錄與撥打電話
45.3.
46. 消息廣播
46.1. 動態註冊
46.2. 靜態註冊
46.3. 自定義用戶消息廣播
46.4. 本地廣播
47. Service
47.1. Service的基本用法
47.1.1. manifest 檔案
47.1.2. 創建 Service
47.1.3. Layout 代碼
47.1.4. Activity 代碼
47.2. Service 中啟動綫程
47.3. Service和Activity通信
47.3.1. Layout
47.3.2. Service
47.3.3. Activity
48. NFC (Near field communication)
48.1. AndroidManifest.xml 檔案配置
48.2. Loyout 檔案
48.3. Activity 檔案
49. OkHttp - An HTTP & HTTP/2 client for Android and Java applications
49.1. Gradle
49.2. AndroidManifest.xml 開啟網絡訪問權限
49.3. okhttp 預設是 HTTPS 開啟 HTTP
49.4. GET
49.5. POST
49.5.1. POST Form Data
49.5.2. POST RAW JSON
49.5.3. 數據流提交
49.6. http header 相關設置
49.6.1. 設置 HTTP 頭
49.6.2. Cookie 管理
49.6.3. 禁用緩存
49.6.4. 設置緩存 max-age
49.6.5. 強制緩存
49.7. HTTP Base Auth
49.8. HttpUrl.Builder 組裝 URL 地址參數
49.9. Android Activity Example
49.10. Android Oauth2 + Jwt example
49.11. HTTP/2
50. EventBus
50.1. 添加 EventBus 依賴到項目Gradle檔案
50.2. 快速開始一個演示例子
50.2.1. 創建 MessageEvent 類
50.2.2. Layout
50.2.3. Activity
50.3. Sticky Events
50.3.1. MainActivity
50.3.2. StickyActivity
50.3.3. MessageEvent
50.3.4. 刪除粘性事件
50.4. 綫程模型
50.5. 配置 EventBus
50.6. 事件優先順序
50.7. 捕獲異常事件
51. 設計模式
51.1. 單例模式
52.
52.1. java.net.UnknownServiceException: CLEARTEXT communication to 192.168.0.185 not permitted by network security policy
52.2. Caused by: android.os.NetworkOnMainThreadException
1. 附錄
1.1. 一致性算法

範例清單

1.1. /etc/profile.d/java.sh
2.1. Maven properties
2.2. Maven parent
2.3. watir-webdriver example
5.1. Spring boot with Velocity template (pom.xml)
5.2. Spring boot with Email (pom.xml)
5.3. RedisTemplate
5.4. Example Spring boot with Oracle
5.5. Spring boot with Apache kafka.
5.6. Spring boot with Apache kafka.
5.7. Test Spring Kafka
8.1. Spring Data Redis Example
8.2. Spring Data MongoDB - springframework-servlet.xml
10.1. Share feign interface.
11.1. MyBatis
25.1. memcached.java