天天看點

小碼哥【Java從0到架構師】wangpan學習記錄

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 核心原理剖析和基本應用

需要看名字聯系我