2023年9月27日 星期三

微服務開發指南:使用Spring Cloud與Docker

 





|Chapter 01| 使用 Spring 實作微服務架構

1.1. 微服務架構的演變  
1.1.1. 常見的 N 層架構 
1.1.2. 什麼是單體架構? 
1.1.3. 什麼是微服務架構?
1.1.4. 為什麼要改變建構應用程式的方式?
1.2. Spring 社群的微服務技術
1.3. 本書範例專案與相關微服務技術
1.4. 微服務編寫準則與開發模式
1.4.1. 微服務的核心模式
1.4.2. 微服務的路由模式
1.4.3. 微服務的用戶端彈性模式
1.4.4. 微服務的安全模式
1.4.5. 微服務的日誌紀錄和追蹤模式


|Chapter 02| 使用 Spring Cloud 打造微服務生態系統

2.1. Spring Cloud 關鍵技術
2.1.1. Spring Cloud Config
2.1.2. Spring Cloud Service Discovery
2.1.3. Spring Cloud LoadBalancer、Resilience4j
2.1.4. Spring Cloud Gateway
2.1.5. Spring Cloud Stream
2.1.6. Spring Cloud Sleuth、Zipkin
2.1.7. Spring Cloud Security
2.2. 使用 Spring Cloud 的簡單範例
2.3. 本書範例專案
2.3.1. 專案情境與需求
2.3.2. 使用 Spring Initializr 建立專案


|Chapter 03| 使用 Spring Boot 開發微服務程式

3.1. 架構師的任務:設計微服務架構
3.1.1. 解析業務需求
3.1.2. 決定服務粒度
3.1.3. 定義服務介面
3.1.4. 何時不該使用微服務?
3.2. 開發者的任務:使用 Spring Boot 建構微服務
3.2.1. 建立 Controller 類別
3.2.2. 建立 Domain 類別
3.2.3. 建立 Service 類別
3.2.4. 建立多國語系環境
3.2.5. 測試服務
3.3. DevOps 的任務:打造精密的執行環境
3.3.1. 服務組裝:打包和部署微服務
3.3.2. 服務引導:管理微服務的設定
3.3.3. 服務註冊和發現:用戶端如何與微服務通訊
3.3.4. 服務監控:傳達微服務的健康狀況
3.4. 結語


|Chapter 04| 整合 Docker 建構微服務專案與環境

4.1. 應該選擇虛擬機還是容器技術?
4.2. 使用 Docker 容器技術
4.2.1. 什麼是 Docker ?
4.2.2. 安裝 Docker Desktop 與 WSL
4.2.3. 常用 Docker 指令介紹
4.3. 使用 Dockerfile 建立 Docker 映像檔
4.3.1. Dockerfile 的編寫指示介紹
4.3.2. 使用 docker build 指令建構映像檔
4.4. 使用 Docker Compose 定義和管理 Docker 容器群組
4.4.1. Docker Compose 的安裝與簡介
4.4.2. docker-compose.yml 的編寫指示介紹
4.4.3. Docker Compose 的指令介紹
4.5. 整合 Docker 與微服務
4.5.1. 使用 Maven 插件 dockerfile-maven-plugin 支援 Docker
4.5.2. 編寫 Dockerfile
4.5.3. 建構 Docker 映像檔並執行
4.5.4. 使用 Buildpacks 建構 Docker 映像檔
4.5.5. 使用 Docker Compose 啟動服務


|Chapter 05| 使用 Spring Cloud Config Server 管理微服務的設定

5.1. 設定資料的複雜性與管理原則
5.1.1. 設定資料的管理架構
5.1.2. 設定資料的管理實作
5.2. 建構 Spring Cloud Config Server 的微服務用戶端
5.2.1. 設定微服務用戶端讀取 Spring Cloud Config Server 的資料
5.2.2. 使用介面 Environment 或 @Value 讀取設定資料
5.2.3. 微服務用戶端的資料設計
5.3. 建構 Spring Cloud Config Server
5.3.1. 選擇專案的依賴項目
5.3.2. 設定 Spring Cloud Config Server 的啟動類別
5.3.3. 使用檔案系統儲存設定資料
5.3.4. 啟動微服務架構的所有服務
5.3.5. 使用 Git 儲存設定資料
5.3.6. 同步讀取 Spring Cloud Config Server 更新後的設定資料
5.4. 保護機敏設定資料
5.4.1. 設定對稱密鑰
5.4.2. 啟用 Spring Cloud Config Server 的自動加解密機制


|Chapter 06| 整合 Netflix Eureka 建構 Service Discovery

6.1. Service Discovery 的需求與目的
6.1.1. Service Discovery 對於微服務的重要性
6.1.2. 使用負載均衡器解析服務位址的缺點
6.2. 雲端的 Service Discovery
6.2.1. Service Discovery 的機制
6.2.2. 使用 Spring Cloud 和 Netflix Eureka 實作 Service Discovery
6.3. 建構 Spring Cloud Eureka 服務 
6.3.1. 建立 Eureka Server 專案 
6.3.2. Eureka Server 的註冊與自我保存機制 
6.4. 向 Spring Cloud Eureka 註冊服務  
6.4.1. 建立查詢 Eureka Server 的微服務程式
6.4.2. 使用 Eureka Server 的儀表板與 REST API
6.5. 使用 Eureka Server 查找服務實例
6.5.1. 使用支援負載均衡的 RestTemplate 呼叫服務實例
6.5.2. 使用 DiscoveryClient 與標準 RestTemplate 元件呼叫服務實例
6.5.3. 使用 Netflix Feign 的用戶端程式呼叫服務實例


|Chapter 07| 整合 Resilience4j 建立彈性與容錯的微服務架構

7.1. 用戶端彈性模式簡介
7.1.1. 用戶端負載均衡 (Client-Side Load Balancing) 模式
7.1.2. 斷路器 (Circuit Breaker) 模式 
7.1.3. 回退 (Fallback) 模式
7.1.4. 隔板 (Bulkhead) 模式
7.2. 以 Resilience4j 實作用戶端彈性模式
7.2.1. 未使用彈性模式的情境
7.2.2. 使用彈性模式的情境
7.2.3. 使用 Book 微服務專案實作彈性模式
7.3. 實作斷路器 (Circuit Breaker) 模式
7.3.1. 斷路器的原理  
7.3.2. 查詢資料庫時套用斷路器模式  
7.3.3. 呼叫 Author 微服務時套用斷路器模式  
7.3.4. 自定義斷路器  
7.4. 實作回退 (Fallback) 模式 
7.5. 實作隔板 (Bulkhead) 模式 
7.6. 實作重試 (Retry) 模式 
7.7. 實作頻率限制器 (Rate Limiter) 模式 
7.8. 使用 ThreadLocal 追蹤服務呼叫  


|Chapter 08| 使用 Spring Cloud Gateway 支援服務路由

8.1. 簡介 Service Gateway 
8.2. 導入 Spring Cloud Gateway
8.2.1. 建構 Spring Cloud Gateway 專案
8.2.2. 設定 Spring Cloud Gateway 與 Eureka Server 的關聯
8.3. 設定 Spring Cloud Gateway 服務路由
8.3.1. Spring Cloud Gateway 是反向代理
8.3.2. 設定自動映射路由
8.3.3. 設定手動映射路由
8.3.4. 同時使用自動與手動映射路由
8.3.5. 動態重新載入路由設定
8.4. 使用 Spring Cloud Gateway 的 Predicate 與 Filter 工廠
8.4.1. 使用內建的 Predicate 工廠設定路由
8.4.2. 使用內建的 Filter 工廠設定路由
8.4.3. 自定義前置與後置 Filter 追蹤服務呼叫
8.5. 自定義 Spring Cloud Gateway 的前置 Filter 與建立關聯 ID
8.6. 完備關聯 ID 在服務內的追蹤流程
8.6.1. 建立 UserContextFilter 攔截並讀取 HTTP 標頭資訊
8.6.2. 建立 UserContext 與 UserContextHolder 保存 HTTP 標頭資訊
8.6.3. 建立 UserContextInterceptor 和 RestTemplate 傳播關聯 ID
8.7. 自定義 Spring Cloud Gateway 的後置 Filter 並回應關聯 ID 至用戶端


|Chapter 09| 使用 Keycloak 保護微服務架構

9.1. 簡介 OAuth2
9.2. 簡介 Keycloak
9.3. 建立與設定 Keycloak
9.3.1. 使用 Docker 啟動 Keycloak
9.3.2. 建立 Realm
9.3.3. 建立用戶端程式
9.3.4. 建立 Realm 角色
9.3.5. 建立使用者
9.3.6. 取得 OAuth2 的存取令牌
9.4. 使用 Keycloak 保護微服務 
9.4.1. 新增 Spring Security 與 Keycloak 的 Maven 依賴項目  
9.4.2. 設定微服務連線 Keycloak  
9.4.3. 建立設定類別與限制端點存取  
9.4.4. 使用存取令牌驗證保護機制 
9.5. 整合 Keycloak 與 Service Gateway  
9.5.1. 存取令牌的傳播流程 
9.5.2. 設定 Service Gateway 傳播 Authorization 標頭 
9.5.3. 設定 Book 服務啟用 Keycloak 保護  
9.5.4. 傳播存取令牌  
9.6. 解析存取令牌中的自定義資訊 
9.7. 更完整的微服務安全性架構  
9.7.1. 對所有服務通訊使用 HTTPS/SSL  
9.7.2. 呼叫所有服務均透過 Service Gateway  
9.7.3. 將 API 區分公開區域和私有區域  
9.7.4. 封鎖服務裡非必要開放的通訊埠  


|Chapter 10| 使用 Spring Cloud Stream 支援事件驅動架構

10.1. 訊息傳遞、事件驅動架構和微服務的案例  
10.1.1. 簡介訊息代理與訊息傳遞模型  
10.1.2. 使用同步的請求與回應模型傳達服務間狀態變化
10.1.3. 使用訊息傳遞模型傳達服務間狀態變化
10.1.4. 訊息架構的注意事項
10.2. 使用 Spring Cloud Stream
10.2.1. 簡介 Spring Cloud Stream
10.2.2. 設定 Apache Kafka 的 Docker 環境
10.2.3. 在微服務專案中建立訊息生產者
10.2.4. 在微服務專案中建立訊息消費者
10.2.5. 驗證訊息的發送與接收
10.3. 結合 Redis 與 Spring Cloud Stream
10.3.1. 設定 Redis 的 Docker 環境
10.3.2. 使用 Redis 快取
10.4. 使用 Spring Cloud Stream 的函數式編程模型
10.4.1. 調整訊息生產者改使用函數式編程模型 
10.4.2. 調整訊息消費者改使用函數式編程模型 


|Chapter 11| 使用 Spring Cloud Sleuth 與 Zipkin 追蹤微服務架構

11.1. 簡介 Spring Cloud Sleuth
11.1.1. 微服務架構下追蹤與除錯的難題
11.1.2. 使用 Spring Cloud Sleuth 追蹤服務軌跡
11.2. 使用 Spring Cloud Sleuth 與 ELK Stack 彙整日誌紀錄
11.2.1. 整合 ELK Stack 與 Spring Cloud Sleuth
11.2.2. 在服務中設定 Logback
11.2.3. 在 Docker 中定義和運行 ELK Stack 服務
11.2.4. 使用 Kibana 查詢日誌紀錄彙整結果
11.2.5. 在 Service Gateway 將追蹤 ID 新增到 HTTP 回應標頭
11.2.6. 由 Spring Boot 3.x 開始將停止支援 Spring Cloud Sleuth 
11.3. 使用 Zipkin 進行分散式追蹤 
11.3.1. 設定 Zipkin 
11.3.2. 使用 Zipkin 追蹤跨服務操作  
11.3.3. 使用 Zipkin 追蹤訊息傳遞 
11.3.4. 新增自定義跨度  

2023年8月19日 星期六

Java課程規劃

Java課程規劃

第1階段:JavaSE 基礎班

  1. 課程名稱:Java SE 基礎班

  2. 參考用書:OCP:Java SE 11 Developer 認證指南(上)- 物件導向設計篇,博碩出版社-曾瑞君

  3. 課程時數:48小時

  4. 適合對象:無程式語言基礎。

  5. 課程規劃:

  • 01| Java歷史與證照介紹
  • 02| Java程式語言簡介
  • 03| 物件導向的程式設計思維
  • 04| 認識Java語法與建立類別
  • 05| 認識變數與Java基本型別
  • 06| 使用參考型別操作物件與var宣告
  • 07| 使用選擇結構和相關運算子
  • 08| 陣列
  • 09| 使用重複結構
  • 10| 方法的設計與使用
  • 11| 物件導向程式設計(一)
  • 12| 物件導向程式設計(二)
  • 13| 程式執行異常處理
  • 14| 類別設計(一)
  • 15| 類別設計(二)
  • 16| 介面設計
  • 17| Lambda表示式入門

 

第2階段:JavaSE 進階班

  1. 課程名稱:Java SE 進階班

  2. 參考用書:OCP:Java SE 11 Developer認證指南(下) - API剖析運用篇,博碩出版社-曾瑞君

  3. 課程時數:48小時

  4. 適合對象:完成第1階段課程(或相同技術水平),有志取得OCP:Java SE 11 Developer證照者

  5. 課程規劃:

  • 01| 泛型(Generics)和集合物件(Collections)
  • 02| 例外(Exceptions)與斷言(Assertions)
  • 03| 輸入與輸出(I/O)
  • 04| NIO.2
  • 05| 執行緒(Threads)
  • 06| 執行緒與並行API(Concurrency API)
  • 07| 使用JDBC建立資料庫連線
  • 08| Java的區域化(Localization)
  • 09| Lambda表示式的應用
  • 10| 使用Stream API
  • 11| Date/Time API
  • 12| 資安監控程式實作(有剩餘時間才進行,約需1天,參考部落格)

 

補充課程1:JavaSE 11新功能

  1. 課程名稱:JavaSE 11新功能

  2. 參考用書:OCP:Java SE 11 Developer認證指南(下) - API剖析運用篇,博碩出版社-曾瑞君

  3. 課程時數:12小時

  4. 適合對象:完成第2階段課程(或相同技術水平),有志取得OCP:Java SE 11 Developer證照者

  5. 課程規劃:

  • 01| 標註型別(Annotation)
  • 02| Java平台模組系統(Java Platform Module System)
  • 03| 模組化應用程式
  • 04| 開發安全的Java程式

 

第3階段:JavaEE Web程式設計班

  1. 課程名稱:JavaEE Web程式設計班

  2. 參考用書:Java RWD Web企業網站開發指南 | 使用Spring MVC與Bootstrap,碁峰出版社-曾瑞君

  3. 課程時數:48小時

  4. 適合對象:完成第2階段課程(或相同技術水平)者。

  5. 課程規劃:

  • 01| 前端HTML入門
  • 02| 前端CSS入門
  • 03| 前端JavaScript入門
  • 04| Java Servlet
  • 05| Java Server Pages
  • 06| 實作 MVC 架構
  • 07| Servlet 的執行環境
  • 08| 容器支援 Servlet 和 JSP 的設備
  • 09| 再談 View 的機制
  • 10| JSP 程式設計
  • 11| 使用客製化標籤開發 JSP 程式
  • 12| 深入 Controller
  • 13| 深入 Model
  • 14| 非同步的 Servlets 和AJAX
  • 15| JavaEE網站安全性實作介紹

 

第4階段:Spring框架程式設計班

  1. 課程名稱:Spring框架程式設計班

  2. 參考用書:Spring Boot情境式網站開發指南|使用Spring Data JPA、Spring Security、Spring Web Flow,碁峰出版社-曾瑞君

  3. 課程時數:48小時

  4. 適合對象:完成第3階段課程(或相同技術水平)者。

  5. 課程規劃:

  • 01| 前端JQuery入門
  • 02| 前端Bootstrap入門
  • 03| Spring 框架導論
  • 04| Spring DI
  • 05| Spring AOP
  • 06| Spring JDBCTemplate
  • 07| Spring MVC
  • 08| Spring MVC View
  • 09| SiteMesh 框架
  • 10| Spring Security
  • 11| 綜合實作

 

第5階段:Spring Boot與JPA程式設計班

  1. 課程名稱:Spring Boot與JPA程式設計班

  2. 參考用書:Spring REST API開發與測試指南:使用Swagger、HATEOAS、JUnit、Mockito、PowerMock、Spring Test,碁峰出版社-曾瑞君

  3. 課程時數:42小時

  4. 適合對象:完成第4階段課程(或相同技術水平)者。

  5. 課程規劃:

  • 01| 使用Maven管理Java專案
  • 02| JPA與資料庫
  • 03| 使用JPQL查詢語言
  • 04| 使用Spring Data JPA讓ORM更聰明
  • 05| 使用Spring Boot簡化Spring開發
  • 06| 簡介REST
  • 07| 使用Spring Boot建構REST API專案
  • 08| REST API的例外處理
  • 09| 使用Spring Security的HTTP基礎驗證方式保護REST API

 

第6階段:Spring Cloud程式設計班

  1. 課程名稱:Spring Cloud程式設計班

  2. 參考用書:微服務開發指南:使用Spring Cloud與Docker (出版中)

  3. 課程時數:

  4. 適合對象:完成第5階段課程(或相同技術水平)者。

  5. 課程規劃:

  • 01| 使用Spring實作微服務架構
  • 02| 使用Spring Cloud打造微服務生態系統
  • 03| 使用Spring Boot開發微服務程式
  • 04| 整合Docker建構微服務專案與環境
  • 05| 使用Spring Cloud Config Server管理微服務的設定
  • 06| 整合Netflix Eureka建構Service Discovery
  • 07| 整合Resilience4j建立高彈性與高容錯的微服務架構
  • 08| 使用Spring Cloud Gateway支援服務路由
  • 09| 使用Keycloak保護微服務架構
  • 10| 使用Spring Cloud Stream支援事件驅動架構 
  • 11| 使用Spring Cloud Sleuth與Zipkin追蹤分散式架構 

 

講師簡介

於 國立台灣大學 土木工程學系、大地工程組研究所 畢業,

曾在 明基、華碩、訊連、宏達電、北富銀、台灣高鐵、港商太古、港商電訊盈科、美商美超微 等公司任職,工作內容和 Java、資料庫、資訊安全有關,接觸Java前後超過15年。

教學分享與寫作是我業餘興趣,也是在技術上溫故知新。

教學經歷:
  1. 中國文化大學 教育推廣部 講師
  2. 台灣科技大學 教育推廣部 講師
  3. 巨匠電腦 板橋/桃園/苗栗認證中心 認證課程講師
  4. 其他企業包班講師
著作:
  1. Java SE7/8 OCAJP 專業認證指南:擬真試題實戰,博碩出版社
  2. Java SE7/8 OCPJP 進階認證指南:擬真試題實戰,博碩出版社
  3. Java SE8 OCPJP 進階認證指南,博碩出版社
  4. Java SE8 OCAJP 專業認證指南,博碩出版社
  5. Java RWD Web 企業網站開發指南 | 使用Spring MVC與Bootstrap,碁峰出版社
  6. Spring Boot 情境式網站開發指南|使用Spring Data JPA、Spring Security、Spring Web Flow,碁峰出版社
  7. Spring REST API 開發與測試指南 | 使用Swagger、HATEOAS、JUnit、Mockito、PowerMock、Spring Test,碁峰出版社
  8. OCP:Java SE 11 Developer 認證指南(上) - 物件導向設計篇,博碩出版社
  9. OCP:Java SE 11 Developer 認證指南(下) - API剖析運用篇,博碩出版社
  10. 微服務開發指南:使用Spring Cloud與Docker,碁峰出版社,出版中
證照:
  1. OCP, Java SE 11 Developer
  2. OCP/OCA, Java SE 8 Programmer
  3. OCP/OCA, Java SE 7 Programmer
  4. OCE, Java EE 6 Web Component Developer
  5. OCE, Java EE 6 Web Services Developer
  6. SCJD, Sun Certified Developer for the Java 2 Platform
  7. SCBCD, Sun Certified Business Component Developer for the Java Platform, EE 5
  8. SCWCD, Sun Certified Web Component Developer for the Java Platform, EE 1.4
  9. SCJP, Sun Certified Programmer for the Java Platform 1.4
  10. ECSA, EC-Council Certified Security Analyst
  11. ECSP-Java ,  EC-Council Certified Secure Programmer - Java
  12. CEH, EC-Council Certified Ethical Hacker
  13. OCP 10, Oracle Database 10g Administrator Certified Professional
  14. OCP 9, Oracle9i Database Administrator Certified Professional
  15. PL/SQL OCA, Oracle PL/SQL Developer Certified Associate
  16. MCTS SQL Server 2005






2022年10月14日 星期五

2022-J04-Memo



2022年7月30日 星期六

2022-J03-Memo

2022年7月23日 星期六

OCP: Java SE 11 Developer 認證指南(下) - API剖析運用篇


|CHAPTER 01| 泛型(Generics)和集合物件(Collections)

1.1.   泛型(Generics)
1.1.1. 使用泛型設計的效益
1.1.2. 使用泛型設計類別
1.1.3. 使用泛型設計的類別
1.2.   集合物件(Collections)
1.2.1. 集合物件的定義和種類
1.2.2. List
1.2.3. 自動裝箱(Boxing)和開箱(Unboxing)
1.2.4. Set
1.2.5. Deque(Queue)
1.3.   Map
1.4.   集合物件成員的排序
1.4.1. 排序的做法
1.4.2. 使用Comparable介面排序
1.4.3. 使用Comparator介面排序
1.5.   使用of()與copyOf()方法建立List、Set與Map物件
1.5.1. 使用of()方法建立List、Set與Map物件
1.5.2. 使用copOf()方法建立List、Set與Map物件
1.5.3. 使用Arrays.asList()方法建立List物件

|CHAPTER 02| 例外(Exceptions)與斷言(Assertions)

2.1.   例外(Exceptions)
2.1.1. 使用try-catch程式碼區塊
2.1.2. 使用try-with-resources程式碼區塊和AutoCloseable介面
2.1.3. Suppressed Exceptions
2.1.4. 使用multi-catch敘述
2.1.5. 使用throws宣告
2.1.6. 建立客製的Exception類別
2.1.7. Exception物件的捕捉再拋出
2.2.   斷言(Assertions)
2.2.1. Assertions的簡介和語法
2.2.2. Assertions的使用

|CHAPTER 03| 輸入與輸出(I/O)

3.1.   I/O基礎 
3.1.1. 何謂I/O?
3.1.2. 處理串流的類別
3.1.3. 串流類別的串接
3.1.4. 使用java.io.File類別
3.2.   由主控台讀寫資料
3.2.1. 主控台的I/O
3.2.2. 使用標準輸出方法
3.2.3. 使用標準輸入由主控台取得輸入資料
3.2.4. java.io.Console類別介紹
3.3.   Channel I/O
3.4.   使用序列化技術讀寫物件

3.4.1. Java裡的資料保存(Persistence)
3.4.2. 序列化和物件圖譜
3.4.3. 不需要參加序列化的欄位
3.4.4. 定義物件保存的版本號碼
3.4.5. 序列化和反序列化範例

|CHAPTER 04| NIO.2

4.1.   NIO.2基礎
4.1.1. java.io.File 的限制
4.1.2. Java I/O套件發展歷史
4.1.3. 檔案系統、路徑和檔案
4.1.4. Symbolic Link檔案
4.1.5. NIO.2的基本架構
4.2.   使用Path介面操作檔案/目錄
4.2.1. Path介面
4.2.2. Path介面主要功能
4.2.3. 移除路徑裡的多餘組成
4.2.4. 建立子路徑
4.2.5. 結合2個路徑
4.2.6. 建立連接2個路徑的路徑
4.2.7. Hard Link
4.2.8. 處理Symbolic Link
4.3.   使用Files類別對檔案/目錄進行檢查、刪除、複製、移動
4.3.1. 處理檔案
4.3.2. 檢查檔案/目錄是否存在
4.3.3. 檢查檔案/目錄屬性
4.3.4. 建立檔案/目錄
4.3.5. 刪除檔案/目錄
4.3.6. 複製和移動檔案/目錄
4.3.7. Stream和Path互相複製
4.3.8. 列出目錄內容
4.3.9. 讀取和寫入檔案
4.4.   使用Files類別操作channel I/O和stream I/O讀寫檔案
4.4.1. 介面Channel和類別ByteBuffer
4.4.2. 隨機存取檔案
4.4.3. 對文字檔提供Buffered I/O方法
4.4.4. 取得Byte Streams的方法
4.5.   讀寫檔案/目錄的屬性
4.5.1. 使用Files管理檔案的屬性資料
4.5.2. 讀取檔案屬性
4.5.3. 修改檔案屬性
4.5.4. DOS之外的File Attribute Views
4.5.5. POSIX檔案系統的權限
4.6.   遞迴存取目錄樹
4.6.1. 對檔案目錄進行遞迴操作
4.7.   使用PathMatcher類別找尋符合的檔案
4.7.1. 搜尋檔案
4.7.2. glob樣式語法介紹
4.8.   其他
4.8.1. 使用FileStore類別
4.8.2. 使用WatchService
4.8.3. 由基礎I/O轉換至NIO.2

|CHAPTER 05| 執行緒(Threads)

5.1.   執行緒介紹
5.1.1. 名詞說明
5.1.2. 多執行緒的重要性
5.1.3. 執行緒類別
5.2.   執行緒常見的問題
5.2.1. 使用Shared Data可能造成的問題
5.2.2. 使用Non-Atomic Functions可能造成的問題
5.2.3. 使用Cached Data可能造成的問題
5.3.   執行緒的synchronized與等待
5.3.1. 使用synchronized關鍵字
5.3.2. 使用synchronized的時機
5.3.3. 縮小synchronized的程式區塊
5.3.4. 其他執行等待的情況
5.4.   其他執行緒方法介紹
5.4.1. 使用interrupt()方法
5.4.2. 使用sleep()方法
5.4.3. 使用其他方法
5.4.4. 不建議使用的方法

|CHAPTER 06| 執行緒與並行API(Concurrent API)

6.1.   使用並行API
6.1.1. 並行API介紹
6.1.2. AtomicInteger類別
6.1.3. ReentrantReadWriteLock類別
6.1.4. 執行緒安全的集合物件
6.1.5. 常用的同步器工具類別
6.2.   使用ExecutorService介面同時執行多樣工作
6.2.1. 使用更高階的多執行緒執行方案
6.2.2. ExecutorService概觀
6.2.3. 使用java.util.concurrent.Callable
6.2.4. 使用java.util.concurrent.Future
6.2.5. 關閉ExecutorService
6.2.6. ExecutorService完整範例
6.2.7. ExecutorService進階範例
6.3.   使用Fork-Join框架同時執行多樣工作
6.3.1. 平行處理的策略
6.3.2. 套用Fork-Join框架
6.3.3. Fork-Join框架的使用建議

|CHAPTER 07| 使用JDBC建立資料庫連線

7.1.  了解 Database、DBMS和SQL
7.1.1. 基本名詞介紹
7.1.2. 使用SQL存取資料庫
7.1.3. Derby資料庫介紹
7.1.4. 操作Derby資料庫
7.2.   使用Eclipse連線並存取資料庫
7.2.1. 連線資料庫
7.2.2. 存取資料表
7.3.   使用JDBC
7.3.1. JDBC API概觀
7.3.2. 專案引用資料庫驅動函式庫
7.3.3. 認識JDBC驅動函式庫JAR的組成
7.3.4. 開發JDBC程式
7.3.5. 結束JDBC相關物件的使用
7.3.6. 開發可攜式的JDBC程式碼
7.3.7. 使用java.sql.SQLException類別
7.3.8. Statement介面與SQL敘述的執行
7.3.9. 使用ResultSetMetaData介面
7.3.10.取得查詢結果的資料筆數
7.3.11.控制ResultSet每次由資料庫取回的筆數
7.3.12.使用PreparedStatement介面
7.3.13.使用CallableStatement介面
7.4.   使用JDBC進行交易
7.4.1. 何謂資料庫交易?
7.4.2. 使用JDBC的交易
7.5.   使用JDBC 4.1的RowSetProvider和RowSetFactory
7.6.   回顧DAO設計模式


|CHAPTER 08| Java的區域化 (Localization)

8.1 了解Java的軟體區域化作法
8.1.1 使用Locale類別
8.1.2 建立多國語系文字檔
8.1.3. 使用ResourceBundle類別
8.2 使用DateFormat類別提供日期的區域化顯示
8.3 使用NumberFormat類別提供幣別的區域化顯示

|CHAPTER 09| Lambda表示式的應用

9.1.   使用Lambda表示式
9.1.1. 匿名類別與功能性介面回顧
9.1.2. Lambda表示式語法回顧
9.2.   使用內建的功能性介面
9.2.1. 評斷型(predicate)功能性介面
9.2.2. 消費型(consumer)功能性介面
9.2.3. 功能型(function)功能性介面
9.2.4. 供應型(supplier)功能性介面
9.3.   在泛型內使用萬元字元
9.3.1. 在泛型裡使用多型
9.3.2. 存取使用<?>的泛型的集合物件
9.4.   使用其他內建的功能性介面
9.4.1. 基於4個基礎功能性介面的基本型別變形版
9.4.2. 基於Binary(二運算元相關)及其基本型別變形版
9.4.3. 基於Unary(單運算元相關)及其基本型別變形版
9.5.   使用方法參照
9.5.1. 方法參照使用類別方法且來自其他類別
9.5.2. 方法參照使用物件方法且物件參考來自Lambda表示式之外
9.5.3. 方法參照使用物件方法且物件參考來自Lambda表示式之內
9.5.4. 使用new呼叫建構子且建構子不帶參數
9.5.5. 使用new呼叫建構子且建構子帶少量參數
9.5.6. 使用new呼叫建構子且建構子帶多參數

|CHAPTER 10| 使用Stream API

10.1.   建構者設計模式和方法鏈結
10.2.   使用Optional類別
10.2.1. 使用null造成的困擾
10.2.2. 類別Optional的使用情境
10.2.3. 類別Optional的常用方法
10.3.   Stream API介紹
10.3.1. 介面Iterable和Collection的擴充
10.3.2. Stream API
10.4.   Stream API操作
10.4.1. 中間作業
10.4.2. 終端作業
10.4.3. 終端作業collect()與Collectors API
10.4.4. 短路型終端作業
10.5.   Stream API和NIO.2
10.6.   Stream API操作平行化

10.6.1. 平行化的前提
10.6.2. 平行化的作法
10.6.3. Reduction操作

|CHAPTER 11| Date/Time API

11.1.   Java 8在Date & Time相關類別的進步
11.2.   當地日期與時間
11.2.1. 類別LocalDate
11.2.2. 類別LocalTime
11.2.3. 類別LocalDateTime
11.3.   時區和日光節約時間
11.3.1. 時區和日光節約時間簡介
11.3.2. Java 8在時區和日光節約時間的應用
11.4.   描述日期與時間的數量
11.4.1. 類別Instant
11.4.2. 類別Period和Duration
11.4.3. 使用流暢(fluent)的程式風格

|CHAPTER 12| 標註型別(Annotation)

12.1.   認識標註型別
12.1.1. 認識Metadata
12.1.2. 標註型別的目的
12.2.   建立自定義標註型別
12.2.1. 建立標註型別
12.2.2. 定義必要(required)元素
12.2.3. 定義非必要(optional)元素
12.2.4. 定義元素型態(type)
12.2.5. 定義元素修飾詞
12.2.6. 定義常數變數
12.3.   標註型別的應用
12.3.1. 在宣告時使用標註型別
12.3.2. 定義名稱為value()的元素
12.3.3. 元素值為陣列的應用方式
12.4.   自定義標註型別時使用的內建標註型別
12.4.1. 以@Target限制使用標的
12.4.2. 以@Retention決定作用範圍
12.4.3. 以@Documented支援API文件顯示
12.4.4. 以@Inherited取得父類別標註型別
12.4.5. 以@Repeatable支援同一標的重複使用
12.4.6. 本章內建標註型別總結
12.5.   開發一般程式碼經常使用的內建標註型別
12.5.1. 使用@Override標註覆寫的方法
12.5.2. 使用@FunctionalInterface宣告介面
12.5.3. 使用@Deprecated停用程式碼
12.5.4. 使用@SuppressWarnings忽略警告
12.5.5. 使用@SafeVarargs保護參數
12.5.6. 本章內建標註型別總結

|CHAPTER 13| Java平台模組系統(Java Platform Module System)

13.1.   認識Java模組化
13.1.1. 介紹模組(Module)
13.1.2. 模組化的效益
13.2.   建立並執行模組化程式
13.2.1. 建立模組專案
13.2.2. 編譯模組專案
13.2.3. 執行模組專案
13.2.4. 打包模組專案
13.3.   建立相依模組程式
13.3.1. 使用exports開放模組內的套件
13.3.2. 使用requires相依模組外的套件
13.3.3. 使用Eclipse設定專案的模組相依關係
13.4.   認識module-info.java的宣告關鍵字
13.4.1. 使用exports
13.4.2. 使用requires和requires transitive
13.4.3. 使用provides、uses、opens
13.5.   在命令列(command line)使用模組指令選項
13.5.1. 使用java指令
13.5.2. 使用jar指令
13.5.3. 使用jdeps指令
13.5.4. 使用jmod指令
13.5.5. 指令彙整

|CHAPTER 14| 模組化應用程式

14.1.   回顧模組指令
14.2.   比較模組類型

14.2.1. 命名模組
14.2.2. 自動模組
14.2.3. 未命名模組
14.2.4. 比較模組類型
14.3.   分析JDK依賴關係
14.3.1. 識別內建模組
14.3.2. 使用JDEPS
14.4.   模組化既有應用程式
14.4.1. 確定函式庫相依順序
14.4.2. 使用由下而上的模組化策略
14.4.3. 使用由上而下的模組化策略
14.4.4. 解構與模組化單體應用程式
14.4.5. 循環的相依性導致無法編譯
14.5.   模組化Java服務結構
14.5.1. 建立服務提供者介面模組
14.5.2. 建立服務定位器模組
14.5.3. 建立用戶端程式模組
14.5.4. 建立服務提供者介面實作模組
14.5.5. 合併服務提供者介面模組之外的所有模組

|CHAPTER 15| 開發安全的Java程式

15.1.   設計安全物件
15.1.1. 限制可存取性
15.1.2. 限制可繼承性
15.1.3. 建立不可更改(immutable)物件
15.1.4. 複製(clone)物件
15.2.   注入(injection)攻擊與輸入(input)驗證
15.2.1. 使用PreparedStatement避免SQL注入攻擊
15.2.2. 使用輸入驗證(Input Validation)過濾無效輸入
15.3.   處理機敏資訊
15.3.1. 保護機敏資料的輸出
15.3.2. 保護記憶體中的資料
15.4.   序列化與反序列化物件
15.4.1. 指定序列化的物件欄位
15.4.2. 客製序列化流程
15.4.3. 改變序列化與反序列化的結果
15.5.   建立保護機敏資料的安全物件
15.5.1. 宣告方法為final
15.5.2. 宣告類別為final
15.5.3. 宣告建構子為private
15.6.   避免服務阻斷(denial of service)攻擊
15.6.1. 避免資源滲漏
15.6.2. 避免讀取大量資源
15.6.3. 避免數字溢位(overflow)
15.6.4. 避免資料結構的濫用

|CHAPTER 16| 擬真試題實戰詳解

2022年7月22日 星期五

OCP: Java SE 11 Developer 認證指南(上) - 物件導向設計篇


【內容簡介】

Oracle公司繼Java 8推出1Z0-808與1Z0-809認證考試科目後,原本在次一個長期支援版本的Java 11也推出1Z0-815與1Z0-816的雙考試,但在2020/10/01之後,改以1Z0-819取代前兩者,成為現行要取得「Oracle Certified Professional: Java SE 11 Developer」證照的唯一考試科目。

雖然由兩科考試合併為一科,但考試範圍並未縮減。作者依據原廠公布的命題範圍,深入研讀相關文件,推出上、下兩冊認證指南,分別是:
  • OCP:Java SE 11 Developer認證指南(上) - 物件導向設計篇
  • OCP:Java SE 11 Developer認證指南(下) - API剖析運用篇
上冊以基本語法入門,以至於了解封裝、繼承、多型等物件導向程式的撰寫方式與設計模式實作,也包含列舉型別、巢狀類別、lamdba表示式等特殊語法講授。

下冊聚焦Java API應用,包含泛型、集合物件與Map族群、基礎IO與NIO.2、執行緒與並行架構、JDBC連線資料庫、多國語系、lamdba進階與Stream類別族群、日期時間類別族群、標註型別、模組化應用、資訊安全等豐富主題。

兩冊並有依據原廠命題範圍而蒐錄編寫的擬真試題實戰與詳解,讀者可依自己的學習狀況分冊選讀,以掌握新版Java SE11的特色,並熟悉認證考試的重點。

【目錄】

|CHAPTER 01| Java歷史與證照介紹

1.1 誰在使用Java?
1.2 Java的歷史
1.3 Java的4大應用領域
1.4 Java認證考試介紹

|CHAPTER 02| Java程式語言簡介

2.1 Java程式語言的特色
2.2 Java的跨平台運行
2.3 JDK、JRE、JVM的區別
2.4 IDE介紹

|CHAPTER 03| 物件導向的程式設計思維

3.1 以物件導向的思考方式分析程式需求
3.2 塑模與UML


|CHAPTER 04| 認識Java語法與建立類別

4.1 定義類別及其成員
4.2 認識Java關鍵字
4.3 認識main方法
4.4 使用javac、java、jar指令建立並執行程式
4.5 使用Eclipse匯入範例專案並執行程式

|CHAPTER 05| 認識變數與Java基本型別

5.1 認識Java的基本型別、變數和常數
5.2 使用運算子
5.3 使用升等和轉型


|CHAPTER 06| 使用參考型別操作物件與var宣告

6.1 使用物件參考
6.2 使用String類別
6.3 使用StringBuilder類別
6.4 使用Java API文件
6.5 基本型別的包覆類別
6.6 使用var宣告變數


|CHAPTER 07| 使用選擇結構和相關運算子

7.1 選擇結構簡介
7.2 使用關係、條件運算子
7.3 使用if選擇結構
7.4 使用switch選擇結構

|CHAPTER 08| 陣列

8.1 一維陣列與二維陣列
8.2 存取陣列內容
8.3 使用指令列的args陣列參數
8.4 使用ArrayList類別

|CHAPTER 09| 使用重複結構

9.1 迴圈架構簡介
9.2 使用while迴圈
9.3 使用for迴圈
9.4 使用巢狀迴圈
9.5 使用for迴圈存取陣列
9.6 使用do-while迴圈
9.7 比較重複結構


|CHAPTER 10| 方法的設計與使用

10.1 使用方法
10.2 宣告static方法和變數
10.3 建立多載(Overloaded)的方法
10.4 認識Java傳遞變數的機制


|CHAPTER 11| 物件導向程式設計(一)

11.1 認識封裝
11.2 使用建構子
11.3 認識繼承
11.4 繼承和建構子的關係
11.5 使用父類別和子類別
11.6 認識多型
11.7 使用介面
11.8 認識物件始祖Object類別

|CHAPTER 12| 物件導向程式設計(二)

12.1 再談封裝
12.2 建立子類別和使用繼承關係
12.3 多載方法與使用可變動參數個數的方法
12.4 再談多型

|CHAPTER 13| 程式執行異常處理

13.1 執行時的異常與例外物件(Exception)
13.2 例外的傳播與處理
13.3 例外的繼承結構
13.4 處理例外的好習慣

|CHAPTER 14| 類別設計(一)

14.1 認識public、protected、private與預設的存取控管機制
14.2 覆寫(Override)方法
14.3 認識轉型的機制
14.4 覆寫Object類別的方法

|CHAPTER 15| 類別設計(二)

15.1 使用抽象類別
15.2 使用static宣告
15.3 使用final宣告
15.4 實作獨體設計模式
15.5 使用列舉型別(enum)
15.6 使用巢狀類別


|CHAPTER 16| 介面設計

16.1 使用介面與abstract方法
16.2 介面與設計模式
16.3 使用複合(Composition)
16.4 以default與static宣告介面方法並實作內容


|CHAPTER 17| Lambda表示式入門

17.1 Lambda表示式介紹
17.2 功能性介面(Functional Interface)與Lambda表示式
17.3 使用內建的功能性介面

|CHAPTER 18| 擬真試題實戰詳解


2022年1月18日 星期二

2022年行政院勞動署補助課程規劃說明

(1/5) Java SE 基礎班 / Java基礎程式開發設計培訓班

  1. 課程名稱:Java SE 班 / Java基礎程式開發設計培訓班

  2. 課程狀態:前期規劃 / 補助申請中 / 補助已核定 / 報名招生中 / 確定開班

  3. 報名查詢:https://ojt.wda.gov.tw/ClassSearch/Detail?OCID=142763&plantype=1

  4. 教材用書:Java SE8 OCAJP專業認證指南,博碩出版社 (https://www.drmaster.com.tw/Bookinfo.asp?BookID=MP21915)

  5. 辦理單位:台灣科技大學推廣教育中心

  6. 補助專案:勞動部勞動力發展署, 產業人才投資方案

  7. 課程時數:36小時 (每周日6小時)

  8. 課程費用 (含書籍費):

  9. 補助比例:約 80%

  10. 自付金額:約 2,000

  11. 課程規劃:

日期

授課時間

時數

課程進度/內容

2022/4/10

09:30 ~ 12:30

3

  • 了解Java的技術應用範圍、歷史。

2022/4/10

13:30~ 16:30

3

  • 物件導向介紹。

  • 類別與物件介紹。

2022/4/17

09:30 ~ 12:30

3

  • 變數介紹與使用方式。

  • 變數基本型別說明。

2022/4/17

13:30~ 16:30

3

  • 物件參考變數介紹。

  • String, StringBuilder類別介紹。

2022/4/24

09:30 ~ 12:30

3

  • 選擇結構介紹。

  • 使用if、else if、else等關鍵詞來設計程式結構

2022/4/24

13:30~ 16:30

3

  • 陣列的應用。

  • 使用ArrayList類別。

2022/5/15

09:30 ~ 12:30

3

  • 重複結構介紹。

  • 使用while、for loop迴圈。

2022/5/15

13:30~ 16:30

3

  • 類別方法的定義與使用。

  • 多載和變數傳值介紹。

2022/5/22

09:30 ~ 12:30

3

  • 介紹物件導向的封裝與使用方式。

  • 使用類別建構子。

2022/5/22

13:30~ 16:30

3

  • 使用物件導向的繼承。

  • 使用物件導向的多型(一)。

2022/5/29

09:30 ~ 12:30

3

  • 使用物件導向的多型(二)。

2022/5/29

13:30~ 16:30

3

  • 程式「意外狀況(exception)」的說明。

  • 使用Exception類別。


12. 報名狀況

 


(2/5) Java OCPJP 認證班 / 使用Java開發安全的應用程式

  1. 課程名稱:Java SE 班 / Java基礎程式開發設計培訓班

  2. 課程狀態:前期規劃 / 補助申請中 / 補助已核定 / 報名招生中 / 確定開班

  3. 報名查詢:https://ojt.wda.gov.tw/ClassSearch/Detail?OCID=143662&plantype=1

  4. 教材用書:Java SE8 OCAJP專業認證指南,博碩出版社 (https://www.drmaster.com.tw/Bookinfo.asp?BookID=MP21916)

  5. 辦理單位:台灣科技大學推廣教育中心

  6. 補助專案:勞動部勞動力發展署, 產業人才投資方案

  7. 課程時數:42小時 (每周日7小時)

  8. 課程費用 (含書籍費):

  9. 補助比例:約 80%

  10. 自付金額:約 2,000

  11. 課程規劃:

日期

授課時間

時數

課程進度/內容

2022/6/12

09:30 ~ 12:30

3

  • 使用封裝

  • 使用subclasses

  • Overload & Override

  • 使用variable argument (可變動參數個數)的方法

  • 使用多型

2022/6/12

13:30 ~ 17:30

4

  • 使用抽象類別

  • 使用static與final

  • 使用列舉型態

  • 實做獨體設計模式

  • 使用巢狀類別

2022/6/19

09:30 ~ 12:30

3

  • 泛型

  • 集合物件

2022/6/19

13:30 ~ 17:30

4

  • 例外

  • 斷言

2022/6/26

09:30 ~ 12:30

3

  • 檔案處理與基礎IO

  • 序列化與反序列化

  • NIO.2

2022/6/26

13:30 ~ 17:30

4

  • 執行緒介紹

  • 平行處理

2022/7/03

09:30 ~ 12:30

3

  • 認識DBMS和SQL

  • 使用JDBC存取資料庫

  • 使用JDBC進行交易

2022/7/03

13:30 ~ 17:30

4

  • 多國語言的實作

  • Date/Time API

2022/7/10

09:30 ~ 12:30

3

  • Functional Interface

  • Lambda表示式

2022/7/10

13:30 ~ 17:30

4

  • 建構者模式介紹

  • 使用Optional類別

  • 使用Stream API

2022/7/17

09:30 ~ 12:30

3

  • 模組化介紹

2022/7/17

13:30 ~ 17:30

4

  • 建立安全的Java程式

    • 設計安全物件

    • 注入攻擊與輸入驗證

    • 處理機敏資訊

    • 序列化與反序列化物件

    • 建立敏感的安全物件

    • 避免服務阻斷攻擊


12. 報名狀況


(3/5) Java Web 班 / 使用Java建購資訊安全的網站應用程式

  1. 課程名稱:Java Web 班 / 使用Java建購資訊安全的網站應用程式

  2. 課程狀態:前期規劃 / 補助申請中 / 補助已核定 / 報名招生中 / 確定開班

  3. 報名查詢:

  4. 教材用書:Java RWD Web企業網站開發指南 | 使用Spring MVC與Bootstrap,碁峰出版社 (http://books.gotop.com.tw/v_ACL055900)

  5. 辦理單位:台灣科技大學推廣教育中心

  6. 補助專案:勞動部勞動力發展署, 產業人才投資方案

  7. 課程時數:42小時 (每周日7小時)

  8. 課程費用 (含書籍費):

  9. 補助比例:約 80%

  10. 自付金額:約 2,000

  11. 課程規劃:

日期

授課時間

時數

課程進度/內容

2022/8/7

09:30 ~12:30

3

  • Java Servlet介紹

  • Java Server Pages介紹

2022/8/7

13:30 ~ 17:30

4

  • 實做MVC架構

  • Servlet的執行環境

  • 容器處理請求的流程

  • 使用HttpSession進行對話

2022/8/14

09:30 ~ 12:30

3

  • Web應用程式的部署與結構

  • Web應用程式的部署設定

2022/8/14

13:30 ~ 17:30

4

  • Web存取資料的4個範圍

  • EL進階介紹

  • JSTL基礎介紹

2022/8/21

09:30 ~ 12:30

3

  • 容器使用JSP的系統流程

  • 使用JSP的腳本(scripting)語言

2022/8/21

13:30 ~ 17:30

4

  • 使用課製化標籤開發JSP程式

2022/8/28

09:30 ~ 12:30

3

  • Servlet生命週期

  • 使用annotation標示生命週期

  • Servlet與執行緒安全

  • 使用過濾器

  • 處理Multipart的表單

2022/8/28

13:30 ~ 17:30

4

  • 再談MVC架構裡的Model概念

  • 資料庫和外部資源存取

  • ORM的軟體架構

  • Java Persistence API簡介

2022/9/4

09:30 ~ 12:30

3

  • 使用非同步的Servlets

  • 使用AJAX

2022/9/4

13:30 ~ 17:30

4

  • 網站應用程式的安全性考量

  • 常見的網站攻擊模式

  • 使用者的身分驗證和授權

  • 網路資料傳輸的加密

2022/9/18

09:30 ~ 12:30

3

  • 常見網站安全性問題(OWASP TOP10)與解決方式

2022/9/18

13:30 ~ 17:30

4

  • 常見網站安全性問題(OWASP TOP10)與解決方式


12. 報名狀況

 

(4/5) Spring MVC 班 / 使用Spring框架建構資訊安全的RWD網站應用程式

  1. 課程名稱:Spring MVC 班  / 使用Spring框架建構資訊安全的RWD網站應用程式

  2. 課程狀態:前期規劃 / 補助申請中 / 補助已核定 / 報名招生中 / 確定開班

  3. 報名查詢:https://ojt.wda.gov.tw/ClassSearch/Detail?OCID=144876&plantype=1

  4. 教材用書:Spring Boot情境式網站開發指南|使用Spring Data JPA、Spring Security、Spring Web Flow ,碁峰出版社(http://books.gotop.com.tw/v_ACL058600)

  5. 辦理單位:台灣科技大學推廣教育中心

  6. 補助專案:

  7. 課程時數:

  8. 課程費用 (含書籍費):

  9. 補助比例:

  10. 自付金額:

  11. 課程規劃:


日期

授課時間

時數

課程進度/內容

10/16

09:30 ~ 12:30

3

Spring框架介紹

  • Spring的目的與策略

  • Spring開發手法DI介紹

  • Spring開發手法AOP介紹

10/16

13:30~ 16:30

3

Spring框架介紹

  • Spring開發手法Template 介紹

  • Spring的架構

  • Spring 的模組與商品組合

10/23

09:30 ~ 12:30

3

Spring DI介紹與實做

  • 了解Spring DI的數種使用方式

  • 使用搜尋和縫合技術進行自動化DI

10/23

13:30~ 16:30

3

Spring DI介紹與實做

  • 使用Java設定類別指定元件進行DI

  • 使用XML設定檔指定元件進行DI

  • 使用混合方式進行DI

10/30

09:30 ~ 12:30

3

Spring AOP介紹與實做

  • 代理人設計模式

  • AOP介紹

  • 使用PointCut表示式篩選Joint Points

10/30

13:30~ 16:30

3

Spring AOP介紹與實做

  • 使用標註類別定義Aspect物件

  • 使用XML設定檔定義Aspect物件

11/6

09:30 ~ 12:30

3

Spring JDBC Template介紹與實做

  • 樣板方法設計模式介紹

  • 了解Spring框架資料處理邏輯

  • 設定Spring資料來源

11/6

13:30~ 16:30

3

Spring JDBC Template介紹與實做

  • 使用JDBC樣板類別

  • 使用交易

11/13

09:30 ~ 12:30

3

使用Spring MVC -  Controller

11/13

13:30~ 16:30

3

使用Spring MVC - Model

11/20

09:30 ~ 12:30

3

使用Spring MVC - View

11/20

13:30~ 16:30

3

SiteMash框架介紹

  • 使用SiteMesh設計網站版型

  • SiteMesh實作專案

11/27

09:30 ~ 12:30

3

OWASP TOP 10 &使用Spring Security框架提升網站安全性

11/27

13:30~ 16:30

3

OWASP TOP 10 &使用Spring Security框架提升網站安全性

12/04

09:30 ~ 12:30

3

實做1-下載bootstrap範本並套用Spring MVC

實做2-套用Sitemesh

12/04

13:30~ 16:30

3

實做3-建構content

實做4-套用Security


(5/5) Spring Boot 與 Spring Data JPA 建構安全的REST API班

  1. 課程名稱:Spring Boot 與 Spring Data JPA 建構安全的REST API班

  2. 課程狀態:2022 年沒有學校提案補助,改自辦課程,將於四階課程中說明

  3. 報名意願調查(Google表單):https://forms.gle/wHAj5k8yYFUMSpFg6

  4. 教材用書:自辦課程無贈書,參考書籍為:

  1. 辦理單位:個人自辦

  2. 課程時數:42 小時

  3. 課程日期:

  4. 課程費用:3000元

  5. 課程進行方式:以Google Meet視訊教學,無實體教室。

  6. 開班門檻:20人。將另行以Google表單統計預期報名人數,在2022/12/24統計截止。2022/12/25通知是否開班與匯款方式。

  7. 課程綱要:

    • 3 小時
      • J05_01 - 使用 Maven 管理 Java 專案
    • 24 小時
      • J05_02 - JPA 與 資料庫
      • J05_03 - 使用 JPQL 查詢語言
      • J05_04 - 使用 Spring Data JPA 讓 ORM 更聰明
    • 6 小時
      • J05_05 - 使用 Spring Boot 簡化 Spring 開發
      • J05_06 - 簡介 REST
    • 6 小時
      • J05_07 - 使用 Spring Boot 建構 REST API 專案
      • J05_08 - REST API 的例外處理
    • 3 小時
      • J05_10 - 使用Spring Security的HTTP基礎驗證方式保護 REST API