課程描(miao)述(shu)INTRODUCTION
日程安(an)排(pai)SCHEDULE
課程大綱Syllabus
Java企業應用(yong)開發項(xiang)目(mu)課程
【課程背景】
企業通過校招或社招的新員工如何快速掌握Java開發的技能,進入實際的企業項目開發?企業已有員工想從其它崗位方向如何快速轉型Java企業應用開發?
本課程采取由淺入深、案例實戰驅動理論學習的教學方式,站在一個擁有多年Java開發經驗的角度以理論+案例實戰的方式帶領學員攻克一個個Java企業應用開發的各個必備技能?包括像Java企業應用開發的核心技術有哪些?如何利用業界主流的技術框架SpringBoot、SpringCloud快速的進行Java企業應用開發,完成整個綜合案例。
通過該課(ke)程(cheng)的學(xue)(xue)習,可使學(xue)(xue)員(yuan)(yuan)(yuan)了(le)解Java體系的技(ji)術(shu)要求(qiu),理解Java企業(ye)應用開發(fa)(fa)精(jing)髓,了(le)解業(ye)界(jie)最(zui)流行的Java框架與技(ji)術(shu),會結(jie)合開發(fa)(fa)工具的一(yi)些(xie)常用的功(gong)能、快(kuai)(kuai)速代碼(ma)生成的技(ji)巧(qiao)、調試技(ji)巧(qiao)跟學(xue)(xue)員(yuan)(yuan)(yuan)進行實戰講解,使學(xue)(xue)員(yuan)(yuan)(yuan)能夠熟練(lian)的掌握Java企業(ye)應用日常開發(fa)(fa)中(zhong)必備的一(yi)些(xie)技(ji)能。課(ke)程(cheng)全程(cheng)會貫(guan)(guan)穿一(yi)個完整項(xiang)目案例(li),貫(guan)(guan)穿課(ke)程(cheng)當中(zhong)所(suo)學(xue)(xue)知識,真(zhen)正做到學(xue)(xue)以致用和(he)快(kuai)(kuai)速落(luo)地。
【課程收益】
掌握Java語言基礎
掌握基于Java企業級應用開發流程
掌握數據庫設計與開發
掌握Java單體應用開發技術棧
掌握Java企業級應用開發框架SSM
掌握Java分布式系統開發技術棧
掌握Java快速開發框架SpringBoot
掌握(wo)微(wei)服務(wu)架構開發框架SpringCloud
【課程(cheng)(cheng)對象】研發工程(cheng)(cheng)師(shi)、售前技術工程(cheng)(cheng)師(shi)、運維(wei)工程(cheng)(cheng)師(shi)
【課程大綱】
一、Java企業應用開發之核心J2SE
1、Java簡介
Java語言簡介
Java語言特點
JDK安裝與環境變量配置
開發Java程序的步驟
集成開發環境IDEA的介紹
IDEA的環境配置
Java源程序和字節碼文件
案例:使用IDEA編寫第一個Java程序
2、Java虛擬機和垃圾回收
虛擬機的介紹和分類
Java虛擬機
Java虛擬機的運行過程
Java虛擬機的基本原理
Java虛擬機的基本概念
Java虛擬機的結構組成
垃圾回收介紹
垃圾回收的原理和意義
如何強制進行垃圾回收
垃圾回收策略和優化
案例:Java虛擬機調優
3、Java面向對象
Java繼承
Java Override/Overload
Java多態
Java抽象類
Java封裝
Java枚舉
Java包
面向對象的基本概念
面向對象的封裝、繼承與多態
面向對象設計原則
常用面向對象設計模式
案例:案例驅動面向對象原則和面向對象設計模式實戰
4、集合
集合的定義與集合框架的優點
Java.util中的常用的集合類介紹
ArrayList
迭代器
linkedList
Vector
HashMap
Set
集合的應用
高并發場景下非同步類容器面臨問題
Java中高并發容器原理與應用實戰
案例:實例演示各種集合類的應用
案例:實例模擬高并發下非同步類容器線程安全問題
案例:實例演示高并發容器的應用
5、異常
異常應用案例
異常分類:編譯時異常和運行時異常
自定義業務異常
案例:系統異常與自定義異常的應用實戰
6、多線程
線程的概念
進程與線程的區別
為什么要使用多線程
Java實現多線程的兩種方式Thread和Runnable
線程優先級
線程的生命周期
線程的狀態
什么是后臺線程
生產者與消費者模式
線程池的定義與應用場景
同步與異步的區別
有哪些常見的線程池以及用法
如何實現自定義線程池
多線程間線程同步問題怎么解決?
多線程間協作的模型有哪些
案例:實例演示4種類型線程池的應用
案例:案例演示多線程間協同調度
7、Maven工程結構
環境配置
創建maven項目
導出依賴jar包的插件配置pom.xml
如何正確配置dependency
如何配置*倉庫
如何配置maven私服nexus
Maven多模塊管理
8、JDBC
Reflection簡介與其工作原理
Java動態相關機制反射
使用Reflection的3個步驟
數據庫訪問技術簡介
數據庫編程步驟
ODBC與JDBC的介紹與使用差異
JDBC的詳細介紹
JDBC工作示意圖
JDBC訪問數據庫步驟
JDBC操作數據庫示例
事務的處理和使用
案例:基于JDBC訪問數據庫實現增刪改查
案例(li):基(ji)于JDBC訪(fang)問數據庫方(fang)式如何防(fang)止SQL注入(ru)
二、Java Web應用開發
1、Java企業應用開發之Web應用服務器tomcat
tomcat介紹
tomcat的安裝與環境配置
tomcat的常用操作與安裝目錄結構介紹
tomcat管控臺介紹
tomcat集成到IDEA
2、Servlet介紹與應用
Servlet簡介
基于Servlet實現MVC開發模式
Servlet工作原理
Servlet生命周期
基于Servlet實現文件的上傳和下載
什么是過濾器
過濾器的基本原理
案例:通過Servlet實現文件的上傳和下載Servlet過濾器
案例:通過Servlet實現IP Filter
案例:通過Servlet實現字符編碼的(de)Filter
三、數據庫設計與應用
1、數據庫設計概述
各數據庫分類與應用場景
關系數據庫管理系統與關系數據庫
結構化查詢語言SQL
常用數據庫建模與設計工具
E-R圖設計原則與繪制
2、關系型數據庫設計
實體與表間關系
表主鍵定義
一對多與多對多表關系
數據類型設計
合理表設計的幾大原則
3、表記錄的插入、更新和刪除
Insert插入表記錄
數據庫表自增字段
Update更新表記錄
批量插入多條記錄
Insert…select插入結果集數據
Delete刪除表記錄
Truncate刪除表記錄
4、表記錄的查詢
使用select語句查詢指定字段列表
使用from字句指定要查詢的數據表
多表關聯查詢
使用單一過濾條件過濾結果集
非空判斷運算符
使用like進行模糊查詢
使用order by字句對結果集排序
使用聚合函數匯總結果集
Group by與聚合函數
Group by與having字句
子查詢與比較運算符
子查詢與in運算符
子查詢與exists邏輯運算符
子查詢與any運算符
子查詢與all運算符
5、函數
系統函數與自定義函數
系統函數之數學函數
系統函數之字符串函數
系統函數之日期和時間函數
6、視圖與觸發器
視圖的定義與創建
視圖作用分析
刪除視圖
使用觸發器實現檢查約束
觸發器實現冗余數據維護
觸發器的刪除與注意事項
7、存儲過程
存儲過程的應用場景
存儲過程的定義與創建
預處理SQL
8、事務與鎖機制
為什么要使用事務
事務的自提交
事務的提交與回滾
事務的ACID特性
事務的隔離級別與并發問題
MySQL事務的四種隔離級別
鎖機制的必要性
表鎖
行鎖
間隙鎖
死鎖與鎖等待
四、Java企業級應用開發之SSM框架
1、SSM框架
框架是什么?為什么要使用框架?
Java企業應用開發各框架的應用情況
SSM框架的架構以及各層技術職責
MVC的介紹和原理
2、Spring
什么是Spring
Spring的模塊組成
Spring工作原理
搭建Spring開發環境
建立Spring項目
Spring中Bean配置
Spring-Bean作用域
IOC和DI
IOC出現之前-分離接口與實現
IOC出現之前-采用工廠設計模式
IOC反轉控制思想
Spring的IOC容器配置Bean
Spring容器
ApplicationContext
依賴注入的3種方式
外部屬性文件的使用
組件掃描和組件裝配
AOP簡介
Spring AOP思想與原理
Spring數據庫連接池
Spring事務管理
SpringMVC與Spring的整合
Mybatis與Spring整合
案例:基于Spring AOP實現的方法執行時間統計
3、前端控制層之SpringMVC
什么是SpringMVC
SpringMVC工作原理
SpringMVC請求處理流程
SpringMVC框架介紹
創建SpringMVC應用
基于注解應用
SpringMVC常用注解
SpringMVC與Web應用集成
案例:SpringBoot下SpringMVC完成增刪改查的界面和控制器部分
案例:SpringBoot下SpringMVC完成基于restful的增刪改查
4、數據訪問層
Java企業應用開發中數據訪問技術有哪些
數據訪問之Mybatis的介紹
數據訪問之Mybatis與傳統JDBC的比較
數據訪問之Mybatis環境配置
數據訪問之Mybatis事務管理
數據訪問之Mybatis配置數據源
數據訪問之Mybatis的SQL映射文件
CRUD(查詢)
CRUD(插入)
CRUD(修改)
CRUD(刪除)
數據訪問之Mybatis動態SQL
動態sql語句-if
動態sql語句-choose
動態sql語句-trim
動態sql語句-where
動態sql語句-set
動態sql語句-foreach
動態sql語句-array
動態sql語句-map
實現關聯數據的查詢
數據訪問之Mybatis的緩存
Mybatis代碼生成工具
Mybatis sql輸出
Mybatis延時加載
與Spring5的集成
與SpringMVC的集成
數據訪問之JdbcTemplate應用與實戰
數據訪問之JPA應用與實戰
案例:基于Mybatis實現的增刪改查
案例:基于JdbcTemplate實現的增刪改查
案例:基于JPA實現的增刪改查
案例:基于(yu)SSM三大(da)框架的整合案例實戰(zhan)
五、Java企業級應用快速開發框架之SpringBoot
1、微服務基礎
傳統單體架構面臨的問題
微服務架構演變過程剖析
從微服務架構要求剖析微服務架構應解決哪些問題?
介紹微服務基本概念、技術發展的由來,以及目前流行的技術(主要針對Java 平臺),Spring Boot、Spring Cloud、Spring Cloud Stream等
Spring Boot 預備環境、新建 Spring Boot 應用、代碼組織結構、運行
2、SpringBoot概述
什么是Spring Boot
Spring Boot的核心功能
Spring Boot的優缺點對比
Spring Boot的版本
Spring Boot環境快速搭建
實戰:使用SpringBoot快速構建RESTful API應用
3、SpringBoot核心配置
啟動類與@SpringBootApplication
自動配置的開閉
Spring Boot的配置文件
Spring Boot之starter pom
使用命令行參數實現外部配置
常規屬性的配置
多環境配置之Profile配置
SpringBoot的包版本管理
SpringBoot自動配置
SpringBoot熱部署機制
如何自定義配置參數?
外部化配置
多環境配置
Spring Boot常用注解
Spring Boot發布之jar與war
生產級特性
外部配置
監控
實戰:使用SpringBoot基于多環境的快速切換
4、SpringBoot數據庫開發
SpringBoot使用JPA實現ORM
SpringBoot的JPA常用注解
SpringBoot整合JPA
SpringBoot整合Mybatis
介紹JDBCTemplate背景
SpringBoot整合JDBCTemplate
實戰:SpringBoot對Spring Data JPA的整合
5、SpringBoot與Redis整合
Redis簡介與背景介紹
Redis安裝與配置
Redis常用數據類型
Redis結構與底層原理
Redis常用命令
Redis鍵
Redis字符串、列表、集合
Redis事務機制
Redis發布訂閱
Redis數據備份與恢復機制rdb與aof
SpringBoot與Redis整合
實戰:SpringBoot整合redis實現熱數據緩存
實戰:SpringBoot整合redis實現(xian)分布式鎖
七、Java企業應用開發之分布式系統與微服務
1、架構演變歷程
傳統單體架構分析
單體架構局限性與面臨的挑戰
如何解決單體架構的局限性和面臨挑戰?
架構的演變歷程剖析
案例:結合案例分析傳統單體架構面臨問題
2、微服務架構綜述
什么是微服務架構?
微服務架構優點
微服務架構面臨的挑戰有哪些?
微服務生命周期與交付流程
微服務管理規范
微服務解決方案的技術選型
微服務架構及常用組件
基于微服務架構的設計對于團隊有什么要求?
什么類型場景不適合上微服務架構?
3、微服務的設計與拆分
服務的設計、開發和運維流程
服務拆分的維度有哪些?如何正確的進行服務拆分?
服務拆分后常遇問題有哪些?如何解決?
服務的設計原則
服務拆分后面臨挑戰
4、微服務之Spring Cloud
Spring Cloud定義
Spring Cloud生態子項目剖析
Spring Cloud特點
5、微服務之注冊中心
服務調用端與服務提供端之間透明通信
如何實現服務的動態注冊與發現
注冊中心引入
注冊中心之zookeeper
注冊中心底層實現剖析
SpringCloud之注冊中心Eureka
Eureka服務注冊與發現的原理剖析
Eureka的自保護機制
Eureka的應用實戰
Eureka的高可用
SCA下服務注冊與發現中心之Nacos?
Nacos基本架構
Nacos支持功能(服務發現、配置管理…)
Nacos SDK與Open-API
Nacos與Eureka對比
實戰:將案例中的各微服務基于EurkaServer實現服務的注冊與發現
實戰:將案例實戰中的各微服務基于Nacos實現的服務注冊與發現
6、微服務之遠程調用
如何實現跨服務間的遠程調用?
跨服務間遠程調用的幾種方式?
跨服務間遠程調用需考慮的因素有哪些?
如何實現跨服務調用的負載均衡?
服務端負載均衡常見方案
客戶端負載均衡常見方案
7、微服務之遠程同步調用
基于RestTemplate的直連遠程調用
RestTemplate如何與Eureka實現服務發現以及負載均衡
基于Feign實現的遠程負載均衡調用
如何解決跨服務間同步調用的數據一致性?
本地事務定義以及事務的ACID特性分析
什么是分布式事務?
分布式事務的應用場景有哪些?
分布式事務的原理
分布式事務XA協議、兩階段提交與三階段提交的流程與原理剖析
SCA下Seata對事務模式的支持
Seata AT模式下的應用實戰
實戰:基于RestTemplate實現直連的遠程調用
實戰:基于RestTemplate與Eureka整合實現的遠程負載均衡調用
實戰:基于Feign方式實現的訂單服務遠程調用商品服務
8、微服務之遠程異步調用
跨服務間異步調用的實現方式
跨服務間異步調用如何確保異步成功執行?
基于MQ實現微服務異步調用
MQ的異步通知模型
異步通知模型下服務的冪等性要求
如何實現本地事務與MQ消息發送的一致性
基于MQ下的事務消息模型
分布式系統之同步調用案例分析
分布式系統同步調用存在問題與優化方向
消息隊列之分布式系統異步調用案例分析
消息隊列之削峰填谷案例分析
消息中間件選型與對比
消息隊列編程模型之點對點
消息隊列編程模型之發布/訂閱
消息隊列Kakfa安裝與配置
Kafka主題管理與創建
Kafka消息發送
Kafka消息消費(單播、多播)
Kafka消費消息偏移量
Kafka消費者分組
Kafka分區與副本
Kafka集群
實戰:實戰演示多服務間的遠程異步調用
9、微服務之容錯處理
雪崩效應場景分析
如何應對雪崩效應下的容錯處理
微服務間調用超時如何處理?
如何實現微服務的服務降級與熔斷
如何對服務提供者實現限流?
Spring Cloud體系下之容錯處理解決方案斷路器Hystrix
基于Hystrix實現方法級的服務降級與熔斷
基于Hystrix服務降級與熔斷策略的配置
如何正確設置服務的超時時間?應遵循什么原則?
基于Hystrix Dashboard實現服務的流量與熔斷監控
SCA服務限流降級之Sentinel
Sentinel的基本概念:資源、規則
Sentinel的工作流程與原理剖析
Sentinel對流量控制、熔斷降級的實現機制
Sentinel實時監控和規則管理的控制臺
Sentinel與開源框架的快速適配
Spring Cloud體系下之容錯處理解決方案斷路器Hystrix
Sentinel與Spring Cloud Hystrix對比
實戰:通過跨服務的遠程調用服務降級與熔斷模擬,通過Hystrix Dashboard查看可視化監控數據
實戰:基于Sentinel配置管理平臺實現動態限流
實戰:基于Sentinel實現上游服務訂單服務調用下游服務商品服務限流
10、微服務之網關
微服務網關定義
微服務網關的應用場景有哪些?
網關的實現原理
SpringCloud之微服務網關zuul
編寫zuul微服務網關的流程
zuul過濾器的應用
zuul的容錯與回退處理
zuul如何自定義服務的中轉策略
SpringCloud之微服務網關gateway
實戰:基于zuul實現遠程案例中服務的鑒權
實戰:基于spring cloud gateway實現遠程案例中服務的(de)鑒權
六、綜合案例
1、綜合案例介紹
需求與功能分析
架構設計(確認采用技術架構、技術棧、數據交互流程圖)
接口梳理
數據庫表設計
服務拆分與設計
2、工程搭建
創建父工程
創建基礎模塊
創建用戶微服務
創建商品微服務
創建訂單微服務
3、商品微服務開發
實體層開發
數據訪問層開發
服務層開發
接口層開發
單元測試
4、訂單微服務開發
實體層開發
數據訪問層開發
服務層開發
接口層開發
單元測試
5、用戶微服務開發
實體層開發
數據訪問層開發
服務層開發
接口層開發
單元測試
6、網關層微服務開發
網關路由映射設計
網關鑒權功能開發
8、集成測(ce)試(shi)與驗證
Java企業應(ying)用開發項(xiang)目(mu)課(ke)程
轉載://citymember.cn/gkk_detail/297044.html
已開(kai)課時間(jian)Have start time
- 陳國星
IT相關內訓
- 信息安全風險評估與加固技能 張勝生
- 大模型技術與應用培訓 葉梓
- 網安管理崗培訓 張(zhang)勝生
- Python高效辦公自動化 張曉如(ru)
- 軟件安全意識加強與技能提高 張勝生
- Fine BI 數據分析與 張曉如(ru)
- CISSP認證培訓課程 張勝生
- 電力信息化:價值和建設分析 劉宇佳(jia)
- 滲透測試與攻防實戰高級課程 張勝生(sheng)
- 互聯網新技術在銀行的應用 武(wu)威
- IT崗位數智化能力提升路徑 甄(zhen)文智
- 云計算的應用領域和實踐 武威