Java 從 0 到 架構師
第一階段:Java 基礎文法
第二階段:JavaEE 基石
基本概念 + 環境搭建
Servlet_JSP
MySQL 基礎 + 多表查詢
JDBC、Spring JDBC、JUnit
JS_jQuery_BootStrap
Maven
會話跟蹤 Cookie_Session
Filter_Listener_AJAX
第二階段項目實戰 - 個人履歷項目
第三階段:進階網際網路架構師
MyBatis - 查詢
MyBatis - 增删改、動态SQL
MyBatis - 連接配接池、分頁_PageHelper
MyBatis - 多表查詢_延遲加載
MyBatis - 緩存_構造方法
MyBatis - dao
Spring - IoC 控制反轉、DI 依賴注入
Spring - 複雜對象、Converter
Spring - 整合 MyBatis
Spring - 生命周期、代理
Spring - AOP
Spring - 事務管理
Spring - 注解
SpringMVC - 基礎
SpringMVC - 傳回值
SpringMVC - 特殊的請求參數
SpringMVC - 異常處理_攔截器
SpringMVC - RESTful
SSM 整合(XML、純注解)
Maven - 依賴沖突、分子產品建構項目
SpringBoot - 入門_配置檔案_YAML
SpringBoot - 頁面模版_Thymeleaf
SpringBoot - MyBatis
日志處理 - Log4j 1.x
日志處理 - SLF4J、Logback、Log4j 2.x
日志處理 - 複雜的日志系統、SpringBoot 內建日志架構
SpringBoot - SpringMVC
項目實戰 - 駕考(舊)- Freemarker、MyBatis-Plus
項目實戰 - 前後端分離、後端校驗、Swagger
第四階段:進階網際網路架構師
工具
git
争取9月開學前學完這門課!!!!沖啊!!!
第一階段:Java 基礎文法
學習視訊:Java從0到架構師①零基礎高效率入門
面向對象基礎、Java程式的記憶體劃分、嵌套類(内部類、靜态嵌套類)、局部類、接口的更新問題(預設方法、靜态方法)、instanceof
匿名類(代碼傳遞、回調、過濾器)、Lambda表達式(方法引用)、函數式接口(Supplier、Consumer、Predicate、Function)
字元串(String、StringBuilder),日期(Date、日期SimpleDateFormat、Calendar)
單字元比對、預定字元、量詞、Matcher(貪婪、勉強、獨占模式)、捕獲組、邊界比對符、String類與正規表達式
異常、try-catch、finally、異常的種類、throws、thorw、自定義異常、斷言類
枚舉、包裝類、Math、Radnom、UUID、格式化、DecimalFormat、高精度計算(BigDecimal)
泛型(泛型類型、原始類型、泛型方法)、通配符(上界、下界、無限制、繼承)
ArrayList、LinkedList、Stack、Queue、Set、Map, 疊代器 Iterable、Iterator,Collections類
File、字元集、位元組流、字元流、緩沖流、資料流、對象流、序列化、try-with-resources語句
多線程、線程同步、死鎖、線程間通信(生産者消費者模型)、可重入鎖、線程池
計算機網絡體系結構(OIS參考模型、TCP/IP體系、網絡通信标準化組織)及 Java網絡程式設計
第二階段:JavaEE 基石
學習視訊:Java從0到架構師②JavaEE技術基石
Gitee 代碼:https://gitee.com/szluyu99/mj_java/tree/master
基本概念 + 環境搭建
【Java從0到架構師】基本概念 + 環境搭建
基本概念
網頁基礎知識、基本HTML标簽
Apache Tomcat
環境搭建
啟動和關閉 Tomcat
Tomcat 亂碼問題
Idea 關聯 Tomcat 源碼
Idea 左側顯示多個項目
建立 Web 項目
Servlet_JSP
【Java從0到架構師】Servlet_JSP
Servlet
亂碼問題
Servlet 的細節
Servlet 處理請求的常見過程
Servlet 生命周期
loadOnStartup
ServletContext
JSP
EL表達式、JSTL标簽庫
JSP 處理請求的常見過程
Servlet + JSP
Servlet + JSP 處理請求的常見過程
轉發 (forward)
轉發鍊條
重定向 (redirect)
轉發 vs 重定向
JSP 九大内置對象
MySQL 基礎 + 多表查詢
【Java從0到架構師】MySQL 基礎
MySQL
MySQL 的使用步驟
資料庫的内部存儲細節
GUI 工具
SQL 語句
DDL 語句
DDL 語句 - 資料庫
DDL 語句 - 表
常用資料類型 - 數字類型
常用資料類型 - 字元串類型
常用類型 - 日期和時間類型
TRUNCATE
表的複制
列的常用屬性
DML 語句
DQL 語句
聚合函數 (Aggregate Function)
常見的 WHERE 字句
UNIQUE 索引
主鍵 (PRIMARY KEY)
外鍵 (FOREIGN KEY)
級聯 (CASCADE)
【Java從0到架構師】SQL 多表查詢
多表查詢
多表查詢核心概念
多表查詢 SQL 示例
INNER JOIN
LEFT JOIN
LEFT JOIN EXCLUDING INNER JOIN
RIGHT JOIN
RIGHT JOIN EXCLUDING INNER JOIN
FULL OUTER JOIN
FULL OUTER JOIN EXCLUDING INNER JOIN
更多的表
排序、分頁
子查詢
JDBC、Spring JDBC、JUnit
【Java從0到架構師】JDBC、Spring JDBC、JUnit
下載下傳 MySQL 的 JDBC 實作(jar,驅動包)
JDBC 使用
Statement 的常用 API
ResultSet 的常用 API
PreparedStatement
配置檔案
資料庫連接配接池
Spring JDBC
JUnit
常用注解
斷言類 Assert 的常用方法
JS_jQuery_BootStrap
【Java從0到架構師】JS_jQuery_BootStrap
JavaScript
script 标簽
基礎文法
資料類型
字元串的周遊
數組的周遊
對象的周遊
常用 API 參考
函數
DOM 操作
jQuery
基于 jQuery 的各種插件
BootStrap
Maven
【Java從0到架構師】Maven
Tomcat 部署項目的方式
傳統項目 vs Maven 項目
Maven
Maven 項目的常見目錄
pom.xml
建構生命周期
default 生命周期
常用指令
dependency 中 scope 的取值
Maven 常見操作
初始化配置:環境變量、倉庫位置、配置鏡像
修改 Maven 的 JDK 版本
指令行建立 Maven 項目
IDEA 導入 Maven 項目
IDEA 建立 Maven 項目(Web 項目)
生成 Runnable Jar
安裝本地 jar 到 Maven 的 LocalRepository
Maven 常見問題解決
檔案編碼的警告:Using platform encoding
控制台輸出亂碼
會話跟蹤 Cookie_Session
【Java從0到架構師】會話跟蹤 Cookie_Session
Cookie
Cookie 的有效期 - expires、max-age
Cookie 的作用域 - domain、path
伺服器設定 Cookie
Session
Tomcat 中 getSession 的内部原理
Session 的有效期
Cookie Session 總結
Filter_Listener_AJAX
【Java從0到架構師】Filter_Listener_AJAX
過濾器 - Filter
Filter 中的生命周期方法
Filter - dispatcherTypes
Filter 示例
監聽器 - Listener
Listener 示例
AJAX
原生 AJAX 示例
jQuery AJAX 示例
jQuery - getJSON
第二階段項目實戰 - 個人履歷項目
【Java從0到架構師】個人履歷項目實戰
功能性
登陸流程
驗證碼
JavaWeb
Service、Dao 方法名規範
form 檔案上傳 - 前端、背景、實時預覽
頁面可見性
Service 層
面向接口程式設計
後端技巧
利用 Jackson 将 Java 對象轉成 Json 字元串
利用反射擷取泛型的類型
前端技巧
利用 reset 清空 form 表單
圖檔的 MIMEType
驗證碼功能發送不同的參數防止緩存
登陸/修改密碼功能,利用隐藏域發送加密後的密碼
第三階段:進階網際網路架構師
學習視訊:Java從0到架構師③進階網際網路架構師
在學習各種架構的時候,首先要牢牢掌握 XML 的使用方式,因為注解都是基于 XML 的
Gitee 代碼:https://gitee.com/szluyu99/mj_java_frame/tree/master
企業流行架構:
SSM (Spring、SpringMVC、Mybatis)
Apache Shiro
SpringBoot
MyBatis - 查詢
【Java從0到架構師】MyBatis - 查詢
資料庫事務 (Database Transaction)
MyBatis 使用準備
依賴
配置檔案
建立 Session
MyBatis 查詢
實體映射
字段映射 - resultMap
傳參 - 單個參數
傳參 - 多個參數
列印 SQL 語句
多表關聯查詢 - resultType
MyBatis - 增删改、動态SQL
【Java從0到架構師】MyBatis - 增删改、動态 SQL
動态 SQL
if 标簽
where 标簽
sql 标簽
foreach 标簽
typeAliases 标簽
添加
主鍵設定
批量添加 - 利用 foreach 标簽
更新
删除
批量删除 - 利用 foreach 标簽
MyBatis - 連接配接池、分頁_PageHelper
【Java從0到架構師】MyBatis - 連接配接池、分頁_PageHelper
內建 druid 連接配接池
讀取外部的配置檔案
分頁查詢 - PageHelper
PageHelper 環境配置
PageHelper 使用方法
MyBatis - 多表查詢_延遲加載
【Java從0到架構師】MyBatis - 多表查詢_延遲加載
多表關系
一對一
association 标簽 + JOIN 實作一對一
一對多 \ 多對一
collection 标簽 + LEFT JOIN 實作一對多
多對多
多對多的本質:雙方都是一對多的關系
延遲加載
全局延遲加載開關
延遲加載示例
MyBatis - 緩存_構造方法
【Java從0到架構師】MyBatis - 緩存_構造方法
緩存
一級緩存 - SqlSession
二級緩存
開啟二級緩存
useCache - 是否開啟二級緩存
lushCache - 是否需要清楚緩存
指定構造方法
XML 中指定構造方法
注解指定構造方法
MyBatis - dao
【Java從0到架構師】MyBatis - dao
使用 MyBatis 實作 dao 層的幾種方式
自定義實作類,XML 實作 dao 層
隻定義接口類,getMapper + XML 實作 dao 層
隻定義接口類,getMapper + 注解實作 dao 層
@Select、@Insert、@Update、@Delete、@SelectKey
@Param、@Options、@CacheNamespace
@Results、@ResultMap、@One、@Many
@ConstructorArgs、@Arg
script
Spring - IoC 控制反轉、DI 依賴注入
【Java從0到架構師】Spring - IoC 控制反轉、DI 依賴注入
Spring 簡介
Spring 基本使用 - IoC 容器
依賴注入 (Dependency Injection)
基于 setter 的注入 - 自定義對象 bean
基于 setter 的注入 - 基本類型、String、BigDecimal
基于 setter 的注入 - 數組、集合類型
基于 setter 的注入 - properties
基于 constructor 的注入 - 基本類型、String、BigDecimal
基于 constructor 的注入 - 自定義對象 bean
基于 constructor 的注入 - 集合類型
Spring - 複雜對象、Converter
【Java從0到架構師】Spring - 複雜對象、Converter
建立過程比較複雜的對象
執行個體工廠
靜态工廠
FactroyBean
引入外部配置檔案
SpEL表達式
scope - 控制 bean 是否單例
Converter
Spring 内置基本的類型轉換功能
自定義 Converter
Spring - 整合 MyBatis
【Java從0到架構師】Spring - 整合 MyBatis
整合 MyBatis - 依賴
整合 MyBatis - 資料源
整合 MyBatis - SqlSessionFactoryBean
整合 MyBatis - MapperScannerConfigurer
完整配置檔案
Spring - 生命周期、代理
【Java從0到架構師】Spring - 生命周期、代理
bean 的生命周期
代理
業務層的一些問題
靜态代理 (Static Proxy)
動态代理 (Dynamic Proxy)
JDK 動态代理 - Proxy.newProxyInstance
CGLib 動态代理 - Enhancer、MethodInterceptor
Spring - AOP
【Java從0到架構師】Spring - AOP
AOP 程式設計使用
AOP - MethodBeforeAdvice
AOP - MethodInterceptor
AOP - 動态代理的底層實作
AOP - 切入點表達式
AOP - 目标方法互相調用的細節
AOP - 配置多個 pointcut、advisor
Spring - 事務管理
【Java從0到架構師】Spring - 事務管理
聲明式事務
propagation - 設定事務傳播行為
read-only - 告訴資料庫該事務隻讀
timeout - 逾時抛出異常
rollback-for、no-rollback-for - 異常復原
isolation - 設定事務的隔離級别
Spring - 注解
【Java從0到架構師】Spring - 注解
讀取多個配置檔案
注解實作 bean 标簽 - @Component、@Component-scan
注解實作注入 - @Autowired、@Value、@PropertySource
注解實作 AOP
複用切入點 - @Pointcut
注解實作事務管理
@Configuration、@Bean
@Bean 方法的注入 - bean
@Bean 方法的注入 - FactoryBean
@Bean 方法的注入 - 其他類型
建立工廠的入口
bean 的建立方式總結
SpringMVC - 基礎
【Java從0到架構師】SpringMVC - 基礎
SpringMVC - 入門
web.xml 配置 DispatcherServlet
appliactionContext.xml
建立 Controller
SpringMVC - 基礎
請求參數 - @RequestParam
請求路徑變量 - @PathVariable
利用反射擷取參數名
亂碼處理 - GET、POST 請求參數亂碼
亂碼處理 - 響應資料亂碼
Servlet 的 url 比對 - 3 種
Tomcat 中預設的 Servlet
靜态資源被攔截的解決方案 - 2種
SpringMVC - 傳回值
【Java從0到架構師】SpringMVC - 傳回值
controller 中的傳回值
無傳回值 - 使用原始的 Servlet 的方法
普通文本、HTML - 設定響應頭 Content-Type
XML - 推薦使用 jaxb
JSON - 架構中已經內建 jackson
jsp 相關
轉發 - ModelAndView、String
路徑問題總結(Java、Html)
重定向 - “redirect:”
mvc:view-controller - 配置請求路徑和 viewName
InternalResourceViewResolver - 設定視圖的公共字首、字尾
忽略 InternalResourceViewResolver
自定義 InternalResourceViewResolver
@ResponseStatus - 設定響應碼
SpringMVC - 特殊的請求參數
SpringMVC - 特殊的請求參數
集合類型 - Map、List、Set、String[]
Multipart 參數 - multipartResolver
檔案參數 - MultipartFile
多檔案參數 - MultipartFile[]、List<>
CommonsMultipartResolver 的常用屬性
日期類型
@DateTimeFormat
Converter
SpringMVC - 異常處理_攔截器
【Java從0到架構師】SpringMVC - 異常處理_攔截器
異常處理
簡單的異常與頁面映射 - SimpleMappingExceptionResolver
√自定義異常處理類 - 實作 HandlerExceptionResolver 接口
@ExceptionHandler
√@ExceptionHandler + @ControllerAdvice
攔截器 (Interceptor)
實作 HandlerInterceptor 接口
配置攔截器
方法解析 preHandle、postHadnle、afterCompletion
SpringMVC 的執行流程 - 源碼跟蹤
doDispatch 核心流程
SpringMVC - RESTful
【Java從0到架構師】SpringMVC - RESTful
RESTful 風格的實踐建議
關于 put、delete
@RestController
SSM 整合(XML、純注解)
【Java從0到架構師】SSM 整合(XML、純注解)
父子容器
父子容器的配置檔案建議
子容器的加載建立
父容器的加載建立
MyBatis 補充
mybatis-config.xml
Maven 補充
SSM 整合 - 純注解
Initializer 取代 web.xml
SpringConfig
SpringMVCConfig
Interceptor - 添加攔截器
ViewResolver - 添加視圖解析器
MultipartResolver - 添加 multipart 參數解析
Converter - 類型轉換器
MessageConverters - 解決編碼問題
DefaultServletHandler
Maven - 依賴沖突、分子產品建構項目
【Java從0到架構師】Maven - 依賴沖突、分子產品建構項目
依賴沖突
解決方案 - dependencyManagement
自定義屬性
分子產品建構項目
繼承 - parent
聚合 - modules
依賴 - dependency
各子產品的分工 - 以層來劃分
父子產品:全局定義
dao 子產品:定義 dao 類、Model 類等
service 子產品:定義 service 類等
web 子產品:定義 controller 類等
optional
SpringBoot - 入門_配置檔案_YAML
【Java從0到架構師】SpringBoot - 入門_配置檔案_YAML
SpringBoot - 入門
@SpringBootApplication
可運作 jar - spring-boot-maven-plugin
熱部署 - devtools
配置檔案 - application
運作參數、VM 選項
配置檔案的内容
YAML
提高開發效率的依賴
屬性綁定 - @ConfigurationProperties]
構造方法綁定 - @ConstructorBinding
寬松綁定 (Relaxed Binding) - 概念
拆配置設定置檔案
banner
SpringBoot - 頁面模版_Thymeleaf
【Java從0到架構師】SpringBoot - 頁面模版_Thymeleaf
內建 JSP
內建 Thymeleaf
Thymeleaf 基本文法
注釋 - 3 種
字面量 - ${}、[[ ${} ]]
局部變量 - th:with、三目運算
選中變量表達式 - *{}
消息表達式 - #{}
連結表達式 - @{}
條件判斷 - th:if、th:unless、th:switch
周遊 - th:each
block - th:block
屬性設定 - th:attr
内置對象
視圖映射 - WebMvcConfigurer
SpringBoot - MyBatis
【Java從0到架構師】SpringBoot - MyBatis
內建 MyBatis
引入依賴
資料源配置 - 源碼
MyBatis 配置 - 源碼
掃描 Dao
MyBatis 主配置 - XML、注解、application
XML配置
注解
application
starter 的命名規範
日志處理 - Log4j 1.x
【Java從0到架構師】日志處理 - Log4j 1.x
Java 日志處理的發展史
Log4j 1.x
日志級别 - 6種
pattern - 輸出格式
Log4j 1.x - properties
子Logger
Appender - 控制日志的輸出目标
ConsoleAppender - 将日志輸出到控制台
FileAppender - 将日志輸出到檔案(單個)
RollingFileAppender - 将日志輸出到檔案(滾動)
DailyRollingFileAppender - 根據日期格式将日志輸出到檔案(滾動)
Log4j 1.x - XML
Filter - 讓 Appender 在 Logger 的基礎上過濾日志資訊
日志處理 - SLF4J、Logback、Log4j 2.x
【Java從0到架構師】日志處理 - SLF4J、Logback、Log4j 2.x
SLF4J + Log4j 1.x
SLF4J + Logback
Logback - 配置檔案
Logback - 控制台彩色列印
Logback - configuration
Logback - Appender 控制日志輸出位置
Logback - Filter 在 Logger 基礎上過濾日志輸出資訊
Logback - AsyncAppender 将寫日志變為異步操作
Log4j 2.x
Log4j 2.x - 配置檔案
Log4j 2.x - 控制台彩色列印
Log4j 2.x - Filter
Log4j 2.x - Appender
滾動政策 - Delete
Log4j 2.x - Loggers
Log4j 2.x - Async
SLF4J + Log4j 2.x
日志處理 - 複雜的日志系統、SpringBoot 內建日志架構
【Java從0到架構師】交錯的日志系統、SpringBoot 內建日志架構
交錯複雜的日志系統① - 多個項目實作 SLF4J 門面
交錯複雜的日志系統② - 統一底層實作為 Logback
交錯複雜的日志系統③ - 統一底層實作為 Log4j 2.x
解決方案1
解決方案2
日志依賴總結
SpringBoot 內建日志架構
SpringBoot 內建 Logback
SpringBoot 內建 Log4j 2.x
SpringBoot 的 logging 配置 (application)
SpringBoot - SpringMVC
【Java從0到架構師】SpringBoot - SpringMVC
SpringMVC 的配置
檔案上傳功能
檔案下載下傳 - 以附件形式下載下傳
靜态資源通路
靜态資源通路 - 映射
靜态資源通路 - webjars
項目實戰 - 駕考(舊)- Freemarker、MyBatis-Plus
【Java從0到架構師】項目實戰 - 駕考(舊)- Freemarker、MyBatis-Plus
項目實戰 - 前後端分離、後端校驗、Swagger
【Java從0到架構師】項目實戰 - 前後端分離、後端校驗、Swagger
第四階段:進階網際網路架構師
工具
git
【Java從0到架構師】git 核心原理剖析和基本應用
需要看名字聯系我