《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》

《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》

Kotlin + Spring Boot : 下一代 Java 服務端開發html

第 O 部門 快速開始

[第1章 Kotlin + Spring Boot 快速開始 Hello World]()git

1.1 環境準備:JDK,Gradle,IDEA
1.2 快速上手:Kotlin + Spring Boot 實現一個 Restful Hello Worldgithub

[第2章 Spring Boot 企業級服務開發:從 Java 到 Kotlin]()ajax

2.1 Java語言的缺點
2.1.1 Java 發展歷程
2.1.2 Java 的缺點spring

2.2 爲何是 Kotlin
2.2.1 Kotlin 產生的背景
2.2.2 Kotlin 解決了哪些問題數據庫

2.3 爲何是 Spring Boot
2.4 Spring 的發展歷程
2.5 Spring IOC
2.6 Spring 容器
2.7 Spring 的配置地獄
2.8 Spring Boot 是什麼
2.9 從 Spring 到 Spring Boot
2.10 下一代企業級服務開發:Kotlin + Spring Boot
2.11 Kotlin 在 Android 移動開發領域勢不可擋apache

第一部分 Kotlin 語言基礎

[第3章 Kotlin 語言簡介]()編程

3.1 Kotlin 是什麼
3.2 Kotlin 目標平臺
3.2.1 JVM
3.2.2 Android
3.2.3 Browser
3.2.4 Nativesegmentfault

3.3 Why Kotlin?
3.4 Kotlin 發展簡史瀏覽器

3.5 Kotlin 的主要特徵
3.5.1 簡潔:大幅減小樣板代碼的數量
3.5.2 安全:避免空指針異常等錯誤
3.5.3 互操做:爲JVM,Android和瀏覽器利用現有的庫
3.5.4 工具型:選擇任意的Java IDE或命令行構建

3.6 Kotlin 的編程哲學:務實、極簡、安全、互操做
3.7 Kotlin 編程工具

[第4章 可空類型與安全操做符]()

4.1 空指針異常
4.2 什麼是可空類型
4.3 爲何引入可空類型
4.4 安全調用運算符
4.5 類型轉換
4.6 基本數據類型與類型系統

[第5章 類與面向對象編程]()

5.1 面向對象簡史與編程思想
5.2 聲明類和接口
5.3 抽象類與接口
5.4 object 單例對象類型
5.5 數據類
5.6 註解類型
5.7 枚舉類型
5.8 內部類

[第6章 一等函數支持(FP):高階函數與 Lambda 表達式]()

6.1 聲明函數
6.2 函數的組合:高階函數
6.3 Lambda 表達式
6.4 帶接收者的 Lambda
6.5 遞歸與 Y 組合子

[第7章 集合類]()

7.1 集合類簡介
7.2 不可變集合類
7.3 可變集合類
7.4 集合類的 Stream API
7.5 惰性序列:Sequence

[第8章 泛型]()

8.1 爲什麼引入泛型
8.2 在類、接口和函數上使用泛型
8.3 協變與逆變
8.4 類型擦除

[第9章 擴展函數與委託]()

9.1 擴展函數
9.2 擴展屬性
9.3 擴展中的this關鍵字
9.4 類委託
9.5 屬性委託

[第10章 建立本身的 DSL]()

10.1 什麼是DSL
10.2 Kotlin的DSL特性支持
10.3 實現一個http ajax請求的DSL

[第11章 元編程與註解、反射]()

11.1 元編程簡介
11.2 爲何要使用註解跟反射
11.3 聲明註解與處理註解
11.4 反射的原理
11.5 使用反射獲取泛型信息

[第12章 輕量級線程:協程]()

12.1 協程的概念
12.2 爲何使用協程
12.2 建立協程
12.3 掛起函數
12.4 協程與線程比較

第二部分 Spring Boot 框架介紹

[第13章 Spring Boot 簡介]()

13.1 從 XML 中逃離:Spring JavaConfig
13.2 Spring 3 新特性
13.3 Spring 4 與 Spring Boot
13.4 Spring Boot 解放 Spring的配置
14.5 SpringBoot 核心模塊
13.6 Spring Boot Actuator
13.7 Spring Boot 與微服務

[第14章 經常使用 Spring Boot Starter ]()

14.1 經常使用 Spring Boot Starter的介紹
基礎起步依賴 Spring Boot Starter
測試起步依賴 Spring Boot Test Starter
Web 開發起步依賴 Spring Boot Web Starter
模板引擎起步依賴 FreeMarker Starter 與 Thymeleaf Starter
數據庫 ORM 層起步依賴 Spring Boot Data JPA Starter 與 Mybatis Spring Boot Starter
權限與安全起步依賴 Spring Boot Security Starter
WebSocket編程起步依賴 Spring Boot WebSocket Starter
郵件模塊起步依賴 Spring Boot Mail Starter
日誌功能起步依賴 Spring Boot Logging Starter
Servlet 容器起步依賴 Tomcat Starter 與 Jetty Starter
AOP 編程起步依賴 Spring Boot AOP Starter
數據校驗起步依賴 Spring Boot Validation Starter
Redis 起步依賴 Spring Boot Data Redis Starter
MongoDB 起步依賴 Spring Boot Data MongoDB Starter
REST 起步依賴 Spring Boot Data REST Starter
緩存Cache 起步依賴 Spring Boot Cache Starter
Actuator起步依賴 Spring Boot Actuator Starter
Spring Cloud 起步依賴 Spring Cloud Starter
Eureka起步依賴 Spring Cloud Starter Eureka
Oauth2起步依賴 Spring Cloud Starter Oauth2

[第15章 Spring Boot AutoConfigure自動配置原理]()

15.1 什麼是 AutoConfigure
15.2 Spring Boot 怎樣實現自動配置
15.2.1 SpringApplication 類
15.2.2 使用 Fluent Builder API 構建 SpringApplication 類
15.2.3 @EnableAutoConfiguration自動配置原理
15.3 Spring Boot 默認配置約定
15.4 FreeMarkerAutoConfiguration自動配置的實例分析
15.5 應用啓動初始化 CommandLineRunner

[第16章 實現一個本身的 Spring Boot Starter]()

16.1 新建自定義的 Starter 工程
16.2 建立自動配置類 MyAutoConfiguration

16.3 @Configuration 配置系列註解
@ConfigurationProperties 註解
@EnableConfigurationProperties 註解

16.4 @ConditionalOn 條件裝配系列註解
@ConditionalOnClass:當類路徑下有指定的類的條件下
@ConditionalOnProperty:指定的屬性是否有指定的值
@ConditionalOnBean:當容器中有指定的Bean的條件下
@ConditionalOnExpression:基於SpEL表達式做爲判斷條件
@ConditionalOnJava:基於JVM版本做爲判斷條件
@ConditionalOnJndi:在JNDI存在的條件下查找指定的位置
@ConditionalOnMissingBean:當容器中沒有指定Bean的狀況下
@ConditionalOnMissingClass:當類路徑下沒有指定的類的條件下
@ConditionalOnNotWebApplication:當前項目不是Web項目的條件下
@ConditionalOnResource:類路徑下是否有指定的資源
@ConditionalOnSingleCandidate:當指定的Bean在容器中只有一個,或者在有多個Bean的狀況下,用來指定首選的Bean
@ConditionalOnWebApplication:當前項目是Web項目的條件下

16.5 編寫服務實現類
16.6 註冊配置自動配置類
@ImportAutoConfiguration 註解
16.7 將上面構建的starter安裝到本地
16.8 新建spring boot項目依賴上面的 starter
16.9 添加屬性到application.properties配置文件中
16.10 編寫測試代碼

[ 第17章 Spring 5 內置的 Kotlin 函數式編程風格 ]()

17.1 Spring Framework 5.0 新特性
17.2 內置的 Kotlin 函數式編程風格
17.3 使用 Spring WebFlux 進行響應式編程

第三部分 綜合實戰

[第18章 Kotlin 與 Spring Boot 使用 JUnit 進行單元測試]()

18.1 爲何要進行測試
18.2 JUnit 框架簡介
18.3 @RunWith 註解
18.4 @SpringBootTest 註解
18.5 SpringRunner 類
18.6 使用 Mockito 進行 Mock 測試
18.6.1 Mocking 與 Spying Beans
18.6.2 使用@WebMvcTest與@MockBean 來測試 Controller 代碼
18.7 使用HTMLUnit的 WebClient來進行 Web 頁面的測試

[第19章 Kotlin 與 Spring Boot 數據層ORM 框架集成]()
19.1 Spring Data JPA 簡介
19.2 Kotlin 與 Spring Boot 集成 Spring Data JPA
19.2.1 使用 Spring Boot Data JPA Starter 起步依賴集成
19.2.2 配置數據源
19.2.3 配置 JPA 屬性:spring.jpa.hibernate.ddl-auto
19.2.4 建立 Entity

19.2.5 實現 Repository 接口函數
CrudRepository
PagingAndSortingRepository
JpaRepository

19.3 分頁與排序
19.3.1 排序 Sort 類型
19.3.2 分頁相關的類型 Pageable、PageRequest 與 Page

19.4 自定義 Dto 映射到多表關聯查詢結果
19.5 JPA 集成 QueryDSL

19.6 MyBatis簡介
19.7 使用 mybatis-spring-boot-starter 集成
19.8 在 application.properties 中配置 mybatis
19.9 手動實現 TransactionManagementConfigurer 方式集成
19.10 集成 MyBatis Generator
19.11 分頁插件 PageHelper
19.12 通用 Mapper 集成
19.13 使用@Provider 註解配置 Mapper

[ 第20章 Kotlin 與 Spring Boot 集成 Spring MVC 進行 Web 應用開發]()

20.1 MVC 三層模型
20.2 基於註解的 Controller
20.2.1 @Controller 註解
20.2.2 數據視圖模型: Model 與 ModelAndView
20.2.3 REST 接口@RestController
20.2.4 URL 路徑映射 @RequestMapping
20.2.5 @ResponseBody
20.2.6 數據的生產和消費:consumes 、produces
20.2.7 @PathVariable 與 @RequestParam

20.3 數據綁定
20.3.1 @ModelAttribute 註解
20.3.2 @InitBinder 註解與 WebDataBinder
20.3.3 BindingResult
20.3.4 數據綁定流程

20.4 數據類型轉換器 Converter
20.4.1 消息轉換器 HttpMessageConverter
20.4.2 自定義日期類型格式轉換器
20.4.3 實現 ConversionService 接口

20.5 數據校驗
20.5.1 JSR-303
20.5.2 使用 @Validated 註解
20.5.3 實現 Validator 校驗器

20.6 表達式語言 SPEL
20.7 上傳與下載文件:Multipart File
20.8 異常處理: @ControllerAdvice 與 @ExceptionHandler

[第21章 Kotlin 與 Spring Boot 集成 Spring WebFlux 進行響應式 Web 應用開發]()

21.1 響應式宣言
21.2 Spring 5 響應式Web框架架構圖
21.3 Router Functions
21.4 核心組件 WebFlux
21.5 Reactive Streams
21.6 示例工程詳解
21.6.1 Mono 類
21.6.2 服務端響應 ServerResponse
21.6.3 路由函數 RouterFunction
21.6.4 處理函數 HandlerFunction
21.6.5 測試輸出

[第22章 Kotlin 與 Spring Boot 視圖層模板引擎集成 ]()

22.1 Freemarker 基礎語法
22.2 FreeMarkerAutoConfiguration
22.3 Kotlin 與 Spring Boot 集成 Freemarker 模板引擎

22.4 Thymeleaf 基礎語法
22.5 ThymeleafAutoConfiguration
22.6 Kotlin 與 Spring Boot 集成 Thymeleaf 模板引擎

[第23章 Kotlin 與 Spring Boot 權限與安全集成 ]()

23.1 Spring Security 是什麼
23.2 使用 Spring Boot Security Starter 集成
23.3 Spring Boot Security 的基本配置

23.4 初級 Security: 默認認證用戶名密碼
23.4.1 WebMvcConfigurer
23.4.2 AuthenticationManager

23.5 中級 Security:內存用戶名密碼認證
23.5.1 httpBasic
23.5.2 formLogin
23.5.3 角色權限控制
23.5.4 獲取當前登陸認證經過的用戶信息
23.5.5 註冊 Servlet、Filter、Listener 等Bean

23.6 高級 Security: 用數據庫存儲用戶和角色,實現安全認證
23.6.1 用戶、角色及其關聯關係的表實體類:User,Role,UserRole
23.6.2 繼承 WebSecurityConfigurerAdapter 配置Spring Security
23.6.3 從數據庫中獲取用戶信息:UserDetailsService
23.6.4 配置錯誤處理頁面
23.6.5 測試運行

23.7 Shiro 是什麼
23.8 Kotlin 與 Spring Boot 集成 Shiro 配置步驟
23.9 使用 HashedCredentialsMatcher 對密碼進行編碼
23.10 使用 ShiroRealm 來處理用戶的認證和權限
23.11 使用 SecurityManager 進行權限的管理

[第24章 Kotlin 與 Spring Boot 定時任務集成 Spring Scheduling]()

24.1 直接使用@Scheduled實現靜態定時任務
24.2 實現 SchedulingConfigurer 接口完成動態定時任務

[第25章 Kotlin 與 Spring Boot 批量任務集成 Spring Batch]()

[第26章 Kotlin 與 Spring Boot 全文搜索引擎集成 ElasticSearch]()

[第27章 Kotlin 與 Spring Boot 消息中間件集成 Kafka]()

27.1 Kafka 配置
27.2 發送 Message
27.3 接收 Message

[第28章 Kotlin 與 Spring Boot 緩存集成 Redis]()

[第29章 Kotlin 與 Spring Boot 日誌集成 sl4j]()
29.1 配置 application.properties
29.2 logback-spring.xml 文件詳解

[第30章 Kotlin 與 Spring Boot 郵件功能集成]()

[第31章 Kotlin 與 Spring Boot 集成 Swagger2 自動化API管理]()

31.1 Swagger2 動化 API 管理
31.2 Kotlin 與 Spring Boot 集成 Swagger2 步驟
31.2.1 添加工程依賴
31.2.2 配置Swagger的Docket Bean
31.2.3 繼承WebMvcConfigurerAdapter 重寫 addResourceHandlers 函數
31.2.4 在Controller上面的使用 Swagger2 的@Api 註解
31.2.5 啓用Swagger2配置註解 @EnableSwagger2
31.3 運行測試

[第32章 Kotlin + Spring Boot 與 Spring Cloud 微服務實踐]()

[第33章 使用 Actuator 進行應用監控 ]()

33.1 Endpoints 介紹
33.2 設置 Endpoints 安全權限
33.3 實現自定義的 Endpoints

[第34章 Spring Boot 應用的部署與運維 ]()

34.1 應用打包成可執行的 jar 包
34.2 應用打包成可部署的 war 包
34.3 @Profile 註解與多環境部署

附錄:

  1. application.properties

詳見官網文檔:Appendix A. Common application properties

https://docs.spring.io/spring...

II. Auto-configuration classes

Appendix C. Auto-configuration classes

III. Test auto-configuration annotations
Appendix D. Test auto-configuration annotations


參考資料

Kotlin 1.2.0 新特性:
https://github.com/JetBrains/...

Spring Boot 與 微服務:

http://www.infoq.com/cn/articles/microframeworks1-spring-boot

http://blog.csdn.net/zeb_perfect/article/details/51945350

SpringBoot 自動配置原理:http://www.jianshu.com/p/ccad...

自定義 Spring Boot Starter :

http://blog.csdn.net/liuchuan...
http://www.jianshu.com/p/4553...
http://www.jianshu.com/p/8546...

Spring 5 新特性:

https://www.oschina.net/trans...

Spring Boot集成Spring Security:

http://www.jianshu.com/p/08cc...

SpringBoot + Shiro 整合 登陸認證和權限控制:

http://www.jianshu.com/p/672a...
http://shiro.apache.org/
https://segmentfault.com/a/11...
https://www.cnblogs.com/hlhdi...
http://blog.csdn.net/u0123738...
http://412887952-qq-com.iteye...

SpringBoot SpringMVC實現文件下載:
http://www.jianshu.com/p/cc31...

Spring Boot 集成日誌 logging sl4j:
http://www.jianshu.com/p/666e...

spring boot內置tomcat設置虛擬目錄

Spring Boot配置文件-多環境配置: https://www.cnblogs.com/winne...

SpringBoot官網文檔:

http://projects.spring.io/spring-boot/

https://pivotal.io/spring-app-framework#buildanything

https://pivotal.io/

http://projects.spring.io/

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/

Spring Data JPA:

https://projects.spring.io/sp...

spring-data-jpa-with-querydsl:

http://dontpanic.42.nl/2011/0...
http://www.jianshu.com/p/2b68...

SpringBoot 集成 MyBatis:

http://blog.csdn.net/isea533/...
https://github.com/EasySpring...

Spring MVC 消息轉換器:
http://www.jianshu.com/p/2f63...
http://blog.csdn.net/qwe61120...
http://jinnianshilongnian.ite...
SpringMVC之類型轉換Converter:
http://blog.csdn.net/renhui99...

SpringMVC 數據綁定流程
http://www.cnblogs.com/rocky-...

Spring Boot集成Swagger2構建自動化Rest API文檔:

http://www.jianshu.com/p/be05...

參考書籍:

《Kotlin 實戰》《Kotlin 極簡教程》《Spring 實戰》《Java 編程思想》《Effective Java》《Java 核心技術 I/II》《Spring MVC 學習指南》《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》

相關文章
相關標籤/搜索