摘要:下一代服務端開發下一代服務端開發第部門快速開始第章快速開始環境準備,,快速上手實現一個第章企業級服務開發從到語言的缺點發展歷程的缺點為什么是產生的背景解決了哪些問題為什么是的發展歷程容器的配置地獄是什么從到下一代企業級服務開發在移動開發領域
《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》
Kotlin + Spring Boot : 下一代 Java 服務端開發
第 O 部門 快速開始[第1章 Kotlin + Spring Boot 快速開始 Hello World]()
1.1 環境準備:JDK,Gradle,IDEA
1.2 快速上手:Kotlin + Spring Boot 實現一個 Restful Hello World
[第2章 Spring Boot 企業級服務開發:從 Java 到 Kotlin]()
2.1 Java語言的缺點
2.1.1 Java 發展歷程
2.1.2 Java 的缺點
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 移動開發領域勢不可擋
[第3章 Kotlin 語言簡介]()
3.1 Kotlin 是什么
3.2 Kotlin 目標平臺
3.2.1 JVM
3.2.2 Android
3.2.3 Browser
3.2.4 Native
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 協程與線程比較
[第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 注解與多環境部署
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 服務端開發 》
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68020.html
摘要:是什么著名廠商開發的基于的靜態類型編程語言,聲稱。語法近似和,且已活躍在開發領域,被譽為平臺的。各有千秋,我更認同改寫字節碼。的作用是防止敏感字段被泄露到中,的作用是軟刪除數據不可見,但沒有真的刪除。 Kotlin是什么? 著名IDE廠商JetBrains開發的基于JVM的靜態類型編程語言,聲稱100%?interoperable?with?Java。Kotlin是由工程師設計的,各種...
摘要:二教程環境三創建項目創建項目有兩種方式一種是在官網上創建二是在上創建如圖所示勾選然后點,然后一直默認最后點擊完成即可。我們這里看到和普通的接口沒有異同,除了返回類型是用包裝之外。與之對應的還有,這個后面我們會講到。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 從去年開始就開始學習...
摘要:應用化極簡教程陳光劍基于的企業級應用開發最佳實踐前面的章節中,我們都是在環境中開發運行測試應用程序。關鍵字是分布式應用微服務容器虛擬化。通常,在企業項目實踐中,會實現一套應用部署發布的自動化運維平臺工具。 Spring Boot 應用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)—— 基于 Gradle + Kotlin的企業級應用開發最佳實踐 前面的章節中,...
摘要:應用化極簡教程陳光劍基于的企業級應用開發最佳實踐前面的章節中,我們都是在環境中開發運行測試應用程序。關鍵字是分布式應用微服務容器虛擬化。通常,在企業項目實踐中,會實現一套應用部署發布的自動化運維平臺工具。 Spring Boot 應用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)—— 基于 Gradle + Kotlin的企業級應用開發最佳實踐 前面的章節中,...
摘要:環境依賴修改文件,添加依賴。使用為被標注的類去掉,允許被繼承。數據源方案一使用默認配置使用默認配置,不需要在創建和的。相關為了展現效果,我們先定義一組簡單的接口進行測試。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 歡迎轉載,轉載請注明作者及出處,謝謝! 本文講解 Spring Boot2 基礎下,如何使用 Kotlin,并無縫整合與完美交融。為了讓讀...
閱讀 3059·2021-11-25 09:43
閱讀 1035·2021-11-24 10:22
閱讀 1364·2021-09-22 15:26
閱讀 690·2019-08-30 15:44
閱讀 2469·2019-08-29 16:33
閱讀 3705·2019-08-26 18:42
閱讀 918·2019-08-23 18:07
閱讀 1840·2019-08-23 17:55