java大框架

本文章,列出了一些程序員須要學習的技術和知識點,有些技術和知識點沒有寫道,歡迎你們進行修改和補充,有些技術公司用到,你們須要先學習,有些技術和知識點過期,你們能夠了解。
本人筆記鏈接[[http://2863c718.wiz03.com/wapp/pages/view/share/s/0EoYso1Xqk4m2eAV4Y385xVk2vODbZ2BZ46Z2ChvzO2jhAyq|學習體系]]。
======一.前端======
=====1.前端基礎=====
====1.1.html4====
=== HTML介紹===
=== HTML做用 ===
=== 常見標籤 ===php

(1)圖片標籤css

(2)表單標籤html

(3)表格標籤前端

(4)頭標籤java

(5)框架集mysql

(6)其餘常見標籤程序員

====1.2.css2====web

CSS概述ajax

CSS和HTML結合的方式正則表達式

CSS選擇器

CSS擴展選擇器

CSS盒子模型

CSS佈局漂浮屬性

CSS佈局定位屬性

==== 1.3.JavaScript基礎 ====

===1.3.1.JS概述===

(1)JS與Java不一樣

(2)JS的歷史

(3)JS語言組成

(4)JS與HTML結合方式

=== 1.3.2.JS基礎 ===


(1)JS基本語法

(2)JS的數據類型

(3)JS基本語句

(4)JS運算符

(5)JS數組

(6)JS函數的定義

(7)JS中函數的重載

(8)JS中的全局變量和局部變量

=== 1.3.3.JS中常見對象 ===

String對象

Array對象

Date對象

Math對象

=== 1.3.4.JavaScript 全局函數(global) ===

=== 1.3.5.BOM對象 ===

什麼是BOM

==1.3.5.1.瀏覽器對象的使用==

1.3.5.1.1.History

History簡介
(1)back()方法
(2)forward()方法
(3)go()方法
(4)製做返回按鈕

1.3.5.1.2.Location

Location對象簡介
經過href屬性完成超連接效果
超連接按鈕效果

1.3.5.1.3.Window對象

Window對象簡介
(1)方法
① confirm()
② prompt()
③ open()
④ close()
⑤ setInterval()
⑥ setTimeout()
⑦ clearInterval()
⑧ alert()

=== 1.3.6.DOM簡單入門 ===


== 1.3.6.1.1.DOM簡介 ==


DOM結構模型

DOM的三個級別和DHTML介紹

BOM和HTML DOM關係

== 1.3.6.2.Document對象 ==


Element對象

Node經常使用屬性

節點名稱、值和類型

父節點、子節點和兄弟節點

Node經常使用方法

檢測子節點和屬性

是否存在某節點

是否存在屬性

操做DOM節點樹

(1)插入節點
①appendChild方法
②insertBefore方法
(2)刪除節點
(3)替換節點
(4)複製節點
(5)移動節點

innerHTML

JS經常使用事件

(1)鼠標移動事件
(2)鼠標點擊事件
(3)加載與卸載事件
(4)聚焦與離焦時間鍵盤事件
(5)提交與重置事件
(6)選擇與改變事件

省市縣三級聯動樹形菜單製做


==== 1.4.Jquery ====

===1.4.1.jQuery簡介===

什麼是jQuery

jQuery的特色
=== 1.4.2.jQuery選擇器 ===

基本選擇器

層次選擇器

過濾選擇器

內容過濾選擇器

表單域選擇器

=== 1.4.3.jQuery屬性操做 ===

=== 1.4.4.jQuery快捷操做 ===

class屬性值操做

標籤包含內容操做

css樣式操做

value屬性快捷操做
(1)複選框操做
(2)下拉列表操做
(3)單選按鈕操做
=== 1.4.5.jQuery和DOM對象關係 ===

=== 1.4.6.jQuery框架對象分析 ===

=== 1.4.7.jQuery加載事件 ===

=== 1.4.8.jQuery普通事件操做 ===

=== 1.4.9.jQuery對文檔的操做 ===

=== 1.4.10.jQuery屬性選擇器的使 ===

=== 1.4.11.jQuery事件綁定 ===

=== 1.4.12.jQuery動畫效果小案例 ===

 

=====2.前端中級=====
====2.1.js進階====
====2.2.php與數據庫====
====2.3.Ajax====
====2.4.HTML5+CSS3====
=====3.前端高級=====
==== 3.1.layui ====
==== 3.2.Bootstrap ====
==== 3.3.移動端 ====
==== 3.4.Canvas畫布 ====
==== 3.5.NodeJS ====
==== 3.6.AngularJS ====
==== 3.7.ES6-Babel-Webpack-Less ====
==== 3.8.Vue ====
==== 3.9.AngularJSX ====
==== 3.10.Webpack ====
==== 3.11.WebAPP-Cordova ====
==== 3.12.WebAPP-Ionic ====
==== 3.13.ES6 ====
==== 3.14.Git微信小程序 ====
==== 3.15.Gulp ====
==== 3.16.Node ====
==== 3.17.React ====

======二.後端======
=====1.Java基礎=====

==== 1.1.Java編碼規範 ====

源碼存儲規範

命名規則

書寫格式

代碼註釋

==== 1.2.JAVA開發環境 ====


安裝JDK1.7 ,開發環境目錄要求

設置環境變量

==== 1.3.軟件開發基礎 ====


計算機基礎

操做系統,文件,目錄,可執行程序,經常使用快捷鍵

經常使用的Shell命令

經常使用開發語言 瞭解

==== 1.4.第一個JAVA程序HelloWord ====


在記事本編寫程序

在Shell命令窗口編譯、執行

講解程序的編譯執行過程

關鍵字、標識符

什麼是標識符

(1)標識符的命名規範

(2)JAVA關鍵字

==== 1.5.數據類型 ====


數據類型簡介

JAVA中的數據類型

基本數據類型

引用數據類型

基本數據類型有哪些

數據類型的取值範圍

數據類型的轉換

自動類型轉換

強制類型轉換

==== 1.6.數組 ====


數組的說明

(1)爲何用數組

(2)一維數組的聲明與建立

(3)Java內存分析,堆和棧(局部變量存儲)

數組的初始化

(1)靜態初始化

(2)動態初始化

 

數組的訪問

(1)經過下標訪問指定元素

(2)循環訪問

數組的排序

(1)冒泡排序

(2)選擇排序

數組的查找

(1)順序查找

(2)二分法查找

Arrays工具類

二維數組

(1)二維數組的聲明

(2)二維數組的建立

二維數組的初始化

(1)靜態初始化

(2)動態初始化

 

 

二維數組的訪問

(1)經過下標訪問指定元素

(2)經過循環訪問數組

==== 1.7.流程控制 ====


什麼是JAVA語句的執行結構

(1)JAVA語句有哪些結構

(2)順序語句

(3)分支語句

(4)循環語句

If語句

(1)簡單if語句

(2)複雜if語句

(3)if-else語句

(4)多重if語句

(5)嵌套if語句

switch語句

(1)switch語句用法

(2)switch使用String分支

(3)switch語句與if語句的區別

枚舉的簡單使用

(1)枚舉的定義

(2)枚舉的使用(結合switch的使用)

 

循環語句

(1)什麼是循環

(2)Java中的循環語句

for循環語句

while循環

(1)while循環語句

(2)do-while循環語句

特殊流程控制語句

(1)break語句的使用

(2)continue語句的使用

(3)label 的簡述

比較while和do-while的區別

==== 1.8.類.變量,方法,對象 ====


類的定義

什麼是變量

變量的聲明和初始化

變量的分類

變量的做用域

對象的定義

對象的建立以及內存分析

構造方法的定義

(1)構造方法的定義

(2)構造方法的使用

(3)構造方法重載

(4)構造方法與普通方法的區別

this關鍵字

(1)this.屬性:訪問本類的成員屬性(成員變量與局部變量同名的狀況,成員變量無效)

(2)this.方法:訪問本類的成員方法

(3)this():訪問本類中的構造函數

static關鍵字

(1)靜態屬性

(2)靜態方法

(3)靜態代碼塊

static的應用

(1)工具類(操做數組經常使用方法爲例,寫一個工具類)

(2)工具類的概念

 

類中成員變量的定義

常量、進制轉換

(1)什麼是常量

(2)二進制轉換十進制

運算符

(1)經常使用運算符

(2)算術運算符

(3)賦值運算符

(4)關係運算符

(5)邏輯運算符

(6)三目運算符

(7)字符串鏈接運算符

(8)位運算符

(9)移位運算符

表達式的值和類型

轉義字符

運算符優先級

什麼是方法

(1)方法(函數)

(2)方法中的參數

① 形參

② 實參

(3)方法的返回值

方法的聲明和調用

(1)聲明方法的格式

(2)調用方法的格式

可變參數

(1)可變參數的寫法

(2)可變參數的使用

類中方法的定義

方法的重載

內部類

(1)成員內部類

(2)靜態內部類

(3)匿名內部類

(4)局部內部類

==== 1.9.面向對象 ====


1.9.1.什麼是面向對象

1.9.2.面向對象的設計思想

1.9.3.面向對象和麪向過程的區別

(1)面向對象

(2)面向過程

(3)區別總結

1.9.4.抽象類和抽象方法

(1)抽象類出現的緣由

(2)抽象類的特色

1.9.5.封裝

(1)private 的使用

(2)get/set

(3)方法的說明(講this以前,參數與成員變量名稱要不一樣)

1.9.6.繼承

繼承的概念

類的繼承的使用

super關鍵字

繼承中的構造方法

訪問權限

(1)private

(2)default(默認)

(3)protected

(4)public

方法重寫

(1)方法重寫的規則

(2)Object 類

 

 

① equals()方法

② hashCode()方法

③ getClass()方法

④ toString()方法

 

final關鍵字

(1)final修飾的類

(2)final修飾的方法

(3)final修飾的屬性

(4)final與static的區別

1.9.7.多態

什麼是多態

多態的體現

對象的多態性

多態的表現形式

接口

(1)接口的概念

(2)接口的使用

① 接口的聲明語法

② 接口的實現類

③ 接口的使用規則

④ 接口的使用用途

⑤ 接口與抽象類的區別

 

 

對象轉型

(1)對象的向上轉型

(2)instanceof 關鍵字

(3)對象的向下轉型


==== 1.10.正則表達式 ====


(1)String 正則

(2)Pattern Matcher

(3)正則元字符

(4)正則表達式

==== 1.11.經常使用類 ====


1.11.1.字符串

(1)String類

(2)StringBuffer類

(3)StringBuilder類

(4)String.format() 格式化

1.11.2.基本數據類型的包裝類

基本數據類型與其包裝類

數據的裝箱和拆箱

String 與 基本數據類型的互換

1.11.3.Date類

1.11.4.Calendar類

1.11.5.SimpleDateFormat類

1.11.6.Math類

1.11.7.Random類

1.11.8.Runtime類

1.11.9.System類

==== 1.12.異常 ====


異常的概念

異常的分類

異常的處理方式

(1)捕獲異常:try..catch..finally語句

(2)拋出異常:throws和throw

自定義異常

 

==== 1.13.泛型的使用 ====


泛型應用在集合上

泛型類聲明,方法返回泛型,方法參數泛型

泛型限定

==== 1.14.反射 ====


類的加載 Class.forName()

建立對象的兩種方式(newInstance與帶參數構造器)

成員變量的訪問Field類和getDeclaredField方法

方法的訪問與調用 Method

構造方法

 

==== 1.15.註解 ====


==== 1.16.集合 ====


1.16.1.集合框架介紹

(1)集合的概念

(2)集合的框架結構介紹

(3)集合與數組的對比

1.16.2.Collection接口

(1)集合對象的建立

(2)Collection中經常使用的方法

1.16.3.List接口

(1)List接口的存儲特色

(2)List接口的實現類

① ArrayList實現類的使用

② LinkedList實現類的使用

③ ArrayList與LinkedList存儲的比較

1.16.4.加強for循環

1.16.5.Iterator迭代器

(1)迭代器的工做原理

(2)迭代器的使用

1.16.6.集合工具

(1)Collections 工具類

(2)Comparable

(3)Comparator

1.16.7.Set接口

(1)集合的存儲特色

(2)HashSet的實現原理

① 重寫hashCode()

② 重寫equals()

(3)LinkedHashSet(添加)

1.16.8.Map接口

(1)Map接口的概述

(2)Map接口的經常使用方法

(3)Map接口的經常使用實現類

(4)HashMap

(5)Hashtable 和 HashMap的區別

(6)LinkedHashMap

(7)Map的遍歷:各類遍歷方式 Map.Entry

 

==== 1.17.IO流 ====


1.17.1.File類

File類做用

File類的構造方法

File類經常使用方法

使用File類對文件進行操做

使用File類瀏覽目錄中的文件和子目錄

遞歸算法遍歷目錄下全部文件與子目錄

1.17.2.IO概念

什麼是IO流?

流的做用和原理?

1.17.3.IO流的種類

按方向分:輸入流、輸出流

按數據單位分:字符流、字節流

按層次分:節點流、處理流

1.17.4.字節輸入流

InputStream類的經常使用方法

InputStream類的子類:文件輸入流FileInputStream

FileInputStream構造方法和經常使用方法

1.17.5.字節輸出流

OutputStream類的經常使用方法

OutputStream類的子類:文件輸出類FileOutputStream

FileOutputStream構造方法和經常使用方法

1.17.6.字節緩衝流

字節緩衝流的構造方法

使用字節緩衝流對文件進行讀寫

裝飾設計模式

1.17.7.字符輸入流

 

Reader類的經常使用方法

Reader類的子類:FileReader

FileReader構造方法和經常使用方法

1.17.8.字符緩衝流

字符緩衝流構造方法

字符緩衝流的經常使用方法:readLine(), newLine()

字符緩衝流對文件進行讀寫

1.17.9.字符輸出流

Writer類的經常使用方法

Writer類的子類:FileWriter

FileWriter構造方法和經常使用方法

1.17.10.轉換流

InputStreamReader的構造方法

InputStreamReader的使用

OutputStreamWriter的構造方法

OutputStreamWriter的使用

1.17.11.打印流

打印流構造方法

打印流的經常使用操做:print(), println()

1.17.12.標準輸入輸出流

(1)使用System.in獲取鍵盤數據

(2)使用System.out輸出數據

 

1.17.13.內存流(重點掌握)

什麼是內存流

內存流的構造方法

寫入到內存和讀取內存數據

經常使用方法:toByteArray(), toString()

1.17.14.數據輸入輸出流

DataOutputStream 使用

DataInputStream 使用

1.17.15.對象流

對象序列化

序列化的經常使用屬性

(1)static的屬性不能序列化

(2)transient的屬性不能序列化

(3)serialVersionUID=1L

對象輸入流ObjectInputStream

對象輸出流ObjectOutputStream

1.17.16.隨機流RandomAccessFile類

RandomAccessFile類的構造方法

RandomAccessFile經常使用操做:skipBytes() seek()

經常使用方法: getFilePointer() writerUTF() readUTF()

向文件中隨機寫入鍵盤文字

==== 1.18.線程 ====


1.18.1.線程和進程的介紹

進程的概念

線程的概念

進程和線程的關係以及區別

 

1.18.2.線程的實現實現

Runnable接口

兩種實現方式的比較

 

1.18.3.線程的啓動

調用start()方法啓動線程

調用start()與調用run()的區別

 

1.18.4.線程的生命週期和經常使用方法

線程的優先級

線程的名稱

線程的睡眠

線程的中斷

線程的中止

 

1.18.5.多線程訪問臨界資源時的數據安全問題

synchronized關鍵字

同步代碼塊

同步方法

同步靜態方法

鎖對象

死鎖

 

1.18.6.生產者消費者

 

1.18.7.線程池

單線程池

固定線程池

緩衝線程池

 

==== 1.19.網絡編程 ====


1.19.1.網絡通訊協議介紹

TCP/IP協議

IP地址和端口號

基於TCP的網絡編程

Socket和ServerSocket

UDP編程(視頻)

 

1.19.2.URL類的使用

什麼是URL類

URL的構造方法

URL類的經常使用方法

1.19.3.HttpURLConnection類簡介(重點)

簡單介紹HttpURLConnection類

HttpURLConnection的經常使用方法

1.19.4.HttpURLConnection類的應用

HttpURLConnection請求服務器,獲取響應的文本

HttpURLConnection下載文件

1.19.5.OkHttp 簡單使用

同步GET、POST請求

1.19.6.接口回調

接口回調結合多線程的應用

異步請求,利用內部類,實現接口回調

 

==== 1.20.Xml ====


1.20.1.XML簡介

什麼是XML

XML語法結構

XML元素定義

XML屬性使用

自定義XML文件

XML解析的三種方式說明:SAX, PULL, DOM

 

1.20.2.PULL解析

PULL解析原理

PULL解析XML文件

網絡XML文件解析

1.20.3.SAX解析

SAX解析的原理

SAX解析經常使用類介紹

SAX解析XML文件步驟

網絡XML文件解析

PULL解析與SAX解析的區別

==== 1.21.Json ====


1.21.1.JSON解析簡介

什麼是JSON

JSON與XML之間的比較

JSON解析在網絡中的應用

1.21.2.JSON的數據表示

鍵值對的對象表示

數組的表示

1.21.3.JSON解析

一個對象的JSON解析

多個對象的解析

複雜對象的解析

將集合轉成JSON字符串

官方JSON解析

Gson解析

==== 1.22.設計模式 ====


單例設計模式

簡單工廠設計模式

裝飾者模式

代理模式

觀察者模式
======三.Web基礎======
====1.數據庫====

1.1.須要學習瞭解的數據庫

Mysql

公司使用,主要學習,MySQL 在 2008 年被Sun收購須要學習其餘數據庫語言做爲可替代方案

oracle

Sqlserver

微軟的只能在Windows平臺使用,工做中基本不用,只需瞭解

MariaDB

PostgreSQL

MangoDB

NoSQL

 

1.2.Mysql

數據庫簡介

mysql安裝和概述

mysql基本命令

mysqlDDL操做

mysqlDML操做

mysqlDQL操做

mysql模糊查詢

mysql分組查詢

分頁

數據庫約束

多表查詢

查詢練習

MySQL數據庫的備份與恢復

1.3.JDBC

Java操做數據庫

獲取數據庫鏈接

使用Statement執行更新操做

使用ResultSet執行查詢操做

以面向對象思想編寫JDBC

使用PreparedStatement

利用反射及JDBC元數據編寫通用的查詢方法

DAO設計模式

JDBC元數據JDBC獲取插入記錄的主鍵值

JDBC處理Blob

事務介紹

JDBC處理事務

批量處理

數據庫鏈接池

(1)TOMCAT中的數據庫鏈接池

(2)C3P0

(3)DBCP

(4)Druid

使用DBUtils

1.4.oracle

數據庫簡介

Oracle服務端和客戶端安裝

Oracle基本命令

Oracle中的用戶管理

Oracle中表的管理

Oracle查詢操做

Oracle中的函數表的邏輯備份與恢復

數據庫約束

Oracle索引、權限

分頁
====2.Tomcat====
Tomcat簡介

Tomcat安裝

Tomcat安裝目錄介紹

====3.Servlet====

3.1.Servlet概述

什麼是Servlet

實現Servlet的方式

建立HelloWorld應用

3.2.Servlet接口

3.2.1.Servlet生命週期

Servlet出生

Servlet服務

Servlet的離去

3.2.2.Servlet接口相關類型

ServletRequest和ServletResponse

ServletConfig

3.2.3.GenericServlet

GenericServlet概述

GenericServlet的init()方法

實現了ServletConfig接口

3.2.4.HttpServlet

3.2.4.1.概述

3.2.4.2.HttpServlet覆蓋了service()方法

3.2.4.3.<url-pattern>

(1)/XXX

(2)*.XXX

3.2.4.4.doGet()和doPost()

3.2.4.5.Response

response概述

response響應正文

(1)字符響應流

設置響應頭

信息設置狀態碼及其餘方法

重定向

(1)什麼是重定向

(2)完成重定向

(3)便捷的重定向方式

(4)重定向小結

Request

(1)request概述

(2)request域方法

(3)request獲取請求頭數據

(4)request獲取請求相關的其它方法

(5)request獲取請求參數

(6)請求轉發和請求包含

① 請求轉發

② 請求包含

③ 請求轉發與請求包含比較

④ 請求轉發與重定向比較

3.3.Servlet細節

Servlet與線程安全

讓服務器在啓動時就建立Servlet

服務端跳轉與客戶端跳轉

web.xml文件的繼承(瞭解)

3.4.ServletContext

ServletContext概述

獲取ServletContext

域對象的功能

獲取應用初始化參數

獲取資源相關方法

(1)獲取真實路

(2)徑獲取資源流

(3)獲取指定目錄下全部資源路徑

訪問量統計

====4.編碼====
4.1.請求編碼

(1)直接在地址欄中給出中文

(2)在頁面中發出請求

(3)GET請求解讀編碼

(4)POST請求解讀編碼

4.2.響應編碼

4.3.URL編碼
====5.路徑問題====
與路徑相關的操做

客戶端路徑

服務端路徑

<url-pattern>

ServletContext獲取資源

Class獲取資源

ClassLoader獲取資源
====6.註解配置Servlet====
====7.JSP====

7.1.JSP概述

什麼是JSP

JSP的組成

7.2.JSP語法

JSP腳本

多個<%...%>能夠通用

7.3.JSP原理

JSP是特殊的Servlet

JSP真身存放目錄

7.4.再論JSP腳本

7.5.JSP註釋

7.6.三個基本的腳本元素

7.7.JSP指令

7.8.JSP動做

7.9.JSP EL表達式

7.10.JSP標籤庫

JSTL

fmt標籤庫經常使用標籤

7.11.絕對路徑和相對路徑

7.12.靜態包含和動態包含

7.13.頁面中的幾個路徑

7.14.驗證碼案例

驗證碼的做用

VerifyCode類

在頁面中顯示動態圖片

在註冊頁面中使用驗證碼

RegisterServlet

總結驗證碼案例

 

7.15.MVC設計模式

7.16.JavaWeb與MVC

JSP Model1第一代

JSP Model1第二代

JSP Model2

7.17.JavaWeb經典三層框架

7.18.Filter

7.18.1.過濾器概述

Filter簡介

過濾器之HelloWorld

7.18.2.過濾器詳細

過濾器的生命週期

FilterConfig

FilterChain

多個過濾器執行順序

四種攔截方式

過濾器的應用場景

設置目標資源

Filter小結

7.18.3.過濾器應用案例

分ip統計網站訪問次數

粗粒度權限控制

禁用資源

解決全站字符亂碼

頁面靜態化

7.19.JavaWeb監聽器

JavaWeb監聽器概述

建立與銷燬監聽器

操做域屬性的監聽器

HttpSession的監聽器

 

7.20.國際化

什麼是國際化

理解國際化

Locale類

ResourceBundle類

頁面國際化

NumberFormat

DateFormat

MessageFormat

 

7.21.Ajax

7.21.1.js原生的ajax

7.21.2.jQuery封裝的ajax

AJAX概述

(1)什麼是AJAX

(2)同步交互與異步交互

(3)AJAX常見應用情景

(4)AJAX優缺點

AJAX技術

(1)AJAX第一例

(2)AJAX發送POST請求

(3)AJAX判斷用戶名是否已註冊

(4)AJAX實現省市二級聯動

7.22.文件上傳和下載

文件上傳

(1)文件上傳的做用

(2)文件上傳對頁面的要求

(3)比對文件上傳表單和普通文本表單的區別

(4)文件上傳對Servlet的要求

 

commons-fileupload

(1)fileupload概述

(2)fileupload簡單應用

(3)簡單上傳示例

 

文件上傳細節

(1)把上傳的文件放到WEB-INF目錄下

(2)文件名稱(完整路徑、文件名稱)

(3)中文亂碼問題

(4)上傳文件同名問題

(5)一個目錄不能存放過多文件

(6)上傳的單個文件的大小限制

(7)上傳文件的總大小限制

(8)緩存大小與臨時目錄

 

文件下載

(1)經過Servlet下載1

(2)經過Servlet下載2

(3)經過Servlet下載3

 

7.23.會話

7.23.1.會話跟蹤技術

什麼是會話跟蹤技術

會話跟蹤技術使用Cookie或Session完成

7.23.2.Cookie

Cookie概述

(1)什麼是Cookie

(2)Cookie規範

(3)Cookie與HTTP頭

(4)Cookie的覆蓋

(5)Cookie的第一例

 

Cookie的生命週期

(1)什麼是Cookie的生命週期

(2)瀏覽器查看Cookie

(3)案例:顯示上次訪問時間

 

Cookie的Path

(1)什麼是Cookie的路徑

(2)Cookie路徑與請求路徑的關係

(3)設置Cookie的路徑

 

Cookie的domain

Cookie中保存中文

顯示曾經瀏覽過的商品

 

7.23.3.HttpSession

HttpSession概述

登陸案例

Session實現原理

Session與瀏覽器

Session其餘經常使用API

URL重寫
======四.Web高級======
=====1.經典框架=====

==== 1.1.Maven ====

 

maven的介紹

maven的安裝配置

建立maven工程之maven命令

maven核心概念之座標

maven核心概念之依賴管理

maven核心概念之生命週期

maven核心概念之插件

maven核心概念之繼承

maven核心概念之聚合

 

==== 1.2.MyBatis ====


1.2.1.單獨使用JDBC編程問題總結

JDBC程序

JDBC編程步驟

JDBC問題總結以下

 

1.2.2.MyBatis介紹

1.2.3.MyBatis架構

1.2.4.MyBatis下載

1.2.5.建立數據庫

 

1.2.6.MyBatis入門程序

(1)需求

(2)第一步:建立Java工程

(3)第二步:加入jar包

(4)第三步:log4j.properties

(5)第四步:SqlMapConfig.xml

(6)第五步:POJO類

(7)第六步:程序編寫

① 查詢

② 添加

③ 刪除

④ 修改

(8)MyBatis解決JDBC編程的問題

 

1.2.7.Dao開發方法

 

需求

SqlSession的使用範圍

(1)SqlSessionFactoryBuilder

(2)SqlSessionFactory

(3)SqlSession

原始Dao開發方式

① 映射文件

② Dao接口

③ 問題

Mapper動態代理方式

① 實現原理

② Mapper.xml

③ Mapper.java

④ 加載UserMapper.xml文件

⑤ 測試

⑥ 總結

 

1.2.8.SqlMapConfig.xml文件

 

配置內容

properties屬性

settings配置

typeAliases

① mybatis支持別名

② 自定義別名

typeHandler

Mappers

① <mapper resource=""/>

② <mapper url=""/>

③ <mapper class=""/>

④ <package name=""/>

 

1.2.9.Mapper.xml映射文件

1.2.9.1.parameterType

#{}與${}

傳遞簡單類型

傳遞POJO對象

傳遞POJO包裝對象

① 定義包裝對象

② mapper.xml映射文件

傳遞HashMap

1.2.9.2.resultType

輸出簡單類型

輸出POJO對象

輸出POJO列表

resultType總結

輸出HashMap

1.2.9.3.resultMap

Mapper.xml定義

定義result

MapMapper接口定義

 

1.2.9.4.動態SQL

If

Where

Foreach

① 經過POJO傳遞List

② 傳遞單個List

③ 傳遞單個數組(數組中是POJO)

④ 傳遞單個數組(數組中是字符串類型)

 

sql片斷

 

1.2.10.關聯查詢

 

商品訂單數據模型

一對一查詢

① 方法一

② 方法二

一對多查詢

③ Sql語句

④ 定義POJO類

⑤ Mapper.xml

⑥ 定義resultMap

1)resultMap使用繼承

⑦ Mapper接口

⑧ 測試

⑨ 小結

 

多對多查詢

① 查詢用戶購買的商品信息

② 小結

 

resultMap小結

延遲加載

(1)開啓延遲加載

(2)一對一查詢延遲加載

① 需求

② Sql語句

③ 定義POJO類

④ Mapper.xml

⑤ 定義resultMap

⑥ Mapper接口

⑦ 測試

⑧ 延遲加載優缺點分析

 

一對多查詢延遲加載

延遲加載小結

 

1.2.11.查詢緩存

 

1.2.11.1.MyBatis緩存介紹

1.2.11.2.一級緩存

原理

測試

1.2.11.3.二級緩存

原理

開啓二級緩存

實現序列化

測試

禁用二級緩存

刷新緩存

MyBatis Cache參數

MyBatis整合ehcache

(1)原理

(2)整合步驟

① 引入緩存的依賴包

② 引入緩存的配置文件

③ 開啓ehcache緩存

 

應用場景

侷限性

 

==== 1.3.Spring ====


1.3.1.初識Spring

1.3.1.1.簡化Java開發

什麼是最小侵入式

依賴注入

應用切面

使用模板消除樣板式代碼

 

1.3.1.2.Spring主要模塊

1.3.2.Bean的注入

1.3.2.1.XMl配置

普通構造方法建立

靜態工廠建立

實例工廠建立

屬性注入方式

① 構造方法注入

② set方法注入

③ p名稱空間注入

④ 對象的注入

⑤ 數組注入

⑥ List集合注入

⑦ Map注入

⑧ Properties注入

 

1.3.2.2.Java配置

1.3.2.3.自動配置

經過Java代碼實現

經過XML配置文件實現

1.3.2.4.混合配置

1.3.2.5.Profile

Java配置

XML配置

 

1.3.2.6.條件註解

1.3.2.7.Bean的做用域

1.3.2.8.其餘問題

1.3.3.AOP

1.3.3.1.AOP簡介

1.3.3.2.AOP幾個關鍵概念

1.3.3.3.AOP原理

1.3.3.4.AOP實現

1.3.3.4.1.經過Java代碼實現

使用註解攔截

(1)前置、後置通知

(2)返回通知

(3)環繞通知

(4)異常通知

按照方法規則攔截

(1)前置、後置通知

(2)返回通知

(3)環繞通知

(4)異常通知

1.3.3.4.2.經過XML配置實現

使用註解攔截

按照方法規則攔截

(1)前置通知

(2)返回通知

(3)環繞通知

(4)異常通知

(5)後置通知

1.3.3.5.JdbcTemplate

 

增刪改查

配合數據庫鏈接池

 

1.3.3.6.Spring事務管理

回憶事務

XML配置實現

Java配置實現

 

1.3.3.7.Spring高級應用

1.3.3.8.服務端校驗

普通校驗

分組校驗

校驗註解

 

1.3.3.9.數據回顯

默認方式

Model方式

@ModelAttribute

(1)解決數據回顯問題

(2)方法返回值暴露爲模型數據

 

異常處理

文件上傳

JSON數據交互

(1)@RequestBody

(2)@ResponseBody

 

 

 

RESTful支持

(1)RESTful簡介

(2)SpringMVC對RESTful的支持

 

靜態資源訪問

攔截器

 

==== 1.4.SpringMVC ====


1.4.1.簡介

SpringMVC工做流程

SpringMVC相關組件

HelloWorld

 

1.4.2.組件介紹

1.4.2.1.DispatcherServlet

1.4.2.2.Controller

1.4.2.2.1.@RequestMapping

(1)URL路徑映射

(2)窄化請求映射

(3)請求方法限定

 

1.4.2.2.2.Controller方法返回值

 

返回ModelAndView

 

返回void

(1)使用request轉向頁面

(2)經過response頁面重定向

(3)經過response指定響應結果

 

 

 

返回字符串

(1)邏輯視圖名

(2)Redirect重定向

(3)forward轉發

 

1.4.2.2.3.參數綁定

默認支持的參數類型

 

簡單數據類型

(1)簡單類型

(2)@RequestParam

 

POJO

(1)簡單pojo

(2)包裝pojo

 

自定義參數綁定

 

集合類

(1)字符串數組

(2)Lis

(3)tMap

 

1.4.2.2.4.問題總結

 

404

Post時中文亂碼

 

1.4.2.3.其餘組件

 

=== 1.5.Freemarker ===

 


1.5.1.Freemarker介紹

Freemarker簡介

使用引入

1.5.2.ftl基本語法

if else語句

list循環語句

輸出展現

=== 1.6.SpringMVC+Freemarker案例 ===


=== 1.7.SpringMVC+AJAX實現動態樹形菜單 ===


=== 1.8.MyBatis整合Spring ===


1.8.1.MyBatis與Spring整合jar

1.8.2.MyBatis配置文件

1.8.3.Spring配置文件

1.8.4.Mapper編寫的三種方式

Dao接口實現類繼承SqlSessionDaoSupport

使用org.mybatis.spring.mapper.MapperFactoryBean

使用Mapper掃描器

 

=== 1.9.MyBatis逆向工程 ===


使用方式

Mapper文件內容不覆蓋而是追加

Table schema問題

 

 

=== 1.10.Struts2 ===


1.10.1.Struts2概述

1.10.2.Struts2框架入門

1.10.3.Struts2執行過程

1.10.4.Struts2核心配置文件

標籤package

標籤action

標籤result

 

1.10.5.Struts2常量配置

1.10.6.分模塊開發

1.10.7.Action編寫方式

1.10.8.訪問Action的方法

 

使用action標籤method屬性

使用通配符實現

 

1.10.9.結果頁面配置

全局結果頁面

局部結果頁面

Result標籤的type屬性

 

 

1.10.10.Action獲取表單提交數據

使用ActionContext類獲取

使用ServletActionContext類獲取

在Action操做域對象

 

1.10.11.Struts2封裝獲取表單數據方式

 

屬性封裝

模型驅動封裝

封裝到集合中

(1)封裝數據到List集合中

(2)封裝數據到Map集合中

 

Struts2攔截器概述

攔截器底層原理

重要概念

自定義攔截器

自定義登陸攔截器

Struts2的標籤庫

Struts2總結

 

=== 1.11.Hibernate ===


1.11.1.Hibernate概述

什麼是框架

什麼是hibernate框架

什麼是ORM思想

 

1.11.2.Hibernate入門

搭建Hibernate環境

實現添加操做

 

1.11.3.Hibernate配置文件詳解

Hibernate映射配置文件

Hibernate核心配置文件

 

1.11.4.Hibernate核心API

 

Configuration

SessionFactory

Session

Transaction

 

1.11.5.Hibernate主鍵生成策略

1.11.6.實體類操做

添加

根據id查詢

修改操做

刪除操做

 

1.11.7.Hibernate的一級緩存

什麼是緩存

Hibernate緩存

驗證緩存

Hibernate一級緩存執行過程

Hibernate一級緩存特性

 

1.11.8.Hibernate事務操做

 

事務相關概念

Hibernate事務代碼規範寫法

Hibernate綁定session

 

1.11.9.Hibernate的API的使用

 

Query對象

Criteria對象

SQLQuery對象

 

1.11.10.Hibernate一對多操做

 

一對多映射配置

一對多級聯操做

一對多級聯保存

一對多級聯刪除

一對多修改操做

 

1.11.11.Hibernate查詢

 

對象導航查詢

OID查詢

HQL查詢

QBC查詢

 

=== 1.12.Spring Boot ===

 


1.12.1.Spring Boot概述

什麼是Spring Boot

Spring Boot的核心功能

Spring Boot的優缺點

1.12.2.Spring Boot快速搭建

1.12.3.Spring Boot核心

1.12.3.1.基本配置

 

(1)入口類和@SpringBootApplication

(2)關閉特定的自動配置

(3)定製Banner

(4)Spring Boot的配置文件

(5)Starter pom

(6)使用xml配置

 

1.12.3.2.外部配置

命令行參數配置

常規屬性配置

類型安全配置

 

1.12.3.3.日誌配置

1.12.3.4.Profile配置

 

1.12.4.Spring Boot運行原理

 

運做原理

核心註解

實例分析

 

1.12.5.Spring Boot的Web開發支持

1.12.6.Thymeleaf模板引擎

 

Thymeleaf基礎知識

與Spring MVC集成

Spring Boot的Thymeleaf支持

案例

 

1.12.7.Web相關配置

 

Spring Boot提供的自動配置

接管Spring Boot的Web配置

註冊Serlvet、Filter、Listener

 

1.12.8.Tomcat配置

 

配置Tomcat

代碼配置Tomcat

替換Tomcat

SSL配置

 

1.12.9.Favicon配置

 

默認的Favicon

關閉Favicon

設置本身的Favicon

 

1.12.10.WebSocket

 

什麼是WebSocket

Spring Boot提供的自動配置

案例

 

1.12.11.基於Bootstrap和AngularJS的現代Web應用

 

1.12.12.Spring Boot的數據訪問

Spring Data JPA

Spring Data REST

聲名式事務

(1)回憶Spring 的事務機制

(2)聲名式事務

(3)註解事務行爲

(4)類級別使用@Transactional

(5)Spring Boot的事務支持

(6)案例

 

1.12.13.數據緩存Cache

Spring的緩存支持

Spring Boot的支持

緩存切換技術

案例

 

1.12.14.Spring Boot企業級開發

 

安全控制Spring Security

批處理Spring Batch

異步消息

集成Spring Integration

 

=== 1.13.Shiro ===

 


1.13.1.Shiro簡介

1.13.2.HelloWorld

1.13.3.Shiro集成Spring

1.13.4.Shiro工做流

1.13.5.權限URL配置細節

1.13.6.認證思路分析

1.13.7.實現認證流程

1.13.8.實現認證Realm

1.13.9.密碼的比對

1.13.10.密碼的MD5加密

1.13.11.密碼的MD5鹽值加密

1.13.12.多Realm驗證

1.13.13.認證策略

1.13.14.把realms配置給SecurityManager

1.13.15.Shiro權限配置

1.13.16.Shiro受權流程分析

1.13.17.多Realm受權的經過標準

1.13.18.實現受權

1.13.19.標籤

1.13.20.權限註解

1.13.21.從數據表中初始化資源和權限

1.13.22.會話管理

1.13.23.SessionDao

1.13.24.緩存認證和記住個人區別

1.13.25.Shiro實現Rememberme

=== 1.14.Spring Cloud ===


=====2.JavaEE進階=====

==== 2.1.Linux ====

2.1.1.Linux簡介

 

簡介

Linux版本

 

2.1.2.Linux系統安裝

VMware安裝

CentOs安裝

CentOs root用戶

CentOs 使

用CentOs目錄介紹

 

2.1.3.Linux基本命令

切換目錄命令

端口查看命令

文件執行命令

解壓命令

受權命令

建立目錄命令

文件複製命令

chkconfig命令

 

2.1.4.vi編輯器&vim

2.1.5.應用安裝準備

安裝路徑

上傳文件到Linux

 

2.1.6.jdk安裝

 

2.1.7.Tomcat安裝

 

安裝

啓動

中止

 

關閉防火牆

安裝zookeper

安裝mysql數據庫

 

==== 2.2.Redis ====

 


2.2.1.NoSQL概述

 

2.2.1.1.入門概述

爲何用NoSQL

什麼是NoSQL

NoSQL能幹什麼

 

2.2.1.2.3V+3高

 

2.2.1.3.當下的NoSQL經典應用(以阿里巴巴爲例)

 

架構發展史

阿里巴巴中文站商品信息存放

(1)商品基本信息

(2)商品描述、詳情、評價信息(多文字類)

(3)商品的圖片

(4)商品關鍵字

(5)商品的波段性的熱點高頻信息

(6)商品的交易、價格計算、積分累計

 

大型互聯網應用(大數據、高併發、多樣數據類型)的難點和解決方案

難點

解決辦法UDSL

 

2.2.1.4.NoSQL數據模型簡介

傳統數據庫模型

NoSQL數據模型

聚合模型

 

2.2.1.5.NoSQL數據庫的四大分類

KV鍵值

 

文檔型數據庫(bson格式比較多)

 

列存儲數據庫

(1)Cassandra, HBase

(2)分佈式文件系統

 

圖關係數據庫

 

四者對比

 

2.2.1.6.分佈式數據庫中CAP原理

 

傳統的ACID分別是什麼

CAP

CAP的3選2

BASE是什麼

分佈式和集羣

 

2.2.2.Redis入門介紹

 

2.2.2.1.入門概述

VMWare上安裝Linux

(1)VMWare虛擬機的安裝

(2)CentOS或者RedHad5的安裝

(3)VMTools的安裝

(4)設置共享目錄

(5)上述環境都OK後開始進行Redis的服務器安裝配置

 

2.2.2.2.Redis的安裝

 

Windows版安裝

重要提示:

Linux版安裝

 

2.2.2.3.Redis啓動後雜項基礎知識講解

 

2.2.3.Redis的數據類型

 

2.2.3.1.Redis的五大數據類型

string(字符串)

hash(哈希,相似java裏的Map)

list(列表)

set(集合)

zset(sorted set:有序集合)

 

2.2.3.2.Redis 鍵(key)

經常使用

案例

 

2.2.3.3.Redis字符串(String)

 

經常使用

案例

 

2.2.3.4.Redis列表(List)

經常使用

案例

(1)lpush/rpush/lrange

(2)lpop/rpop

(3)lindex,按照索引下標得到元素(從上到下)

(4)Llen

(5)lrem key 刪N個value

(6)ltrim

(7)rpoplpush 源列表 目的列表

(8)lset key index value

(9)linsert key before/after 值1 值2

(10)性能總結

 

2.2.3.5.Redis集合(Set)

 

經常使用

案例

(1)sadd/smembers/sismember

(2)scard,獲取集合裏面的元素個數

(3)srem key value 刪除集合中元素

(4)srandmember key 某個整數(隨機出幾個數)

(5)spop key 隨機出棧

(6)smove key1 key2 在key1裏某個值

(7)數學集合類

① 差集:sdiff

② 交集:sinter

③ 並集:sunion

 

2.2.3.6.Redis哈希(Hash)

 

經常使用

案例

(1)hset/hget/hmset/hmget/hgetall/hdel

(2)hlen hexists key key裏面的某個值的key

(3)hkeys/hvals

(4)hincrby/hincrbyfloat

(5)Hsetnx

 

2.2.3.7.Redis有序集合Zset(sorted set)

 

經常使用

案例

(1)zadd/zrange

(2)zrangebyscore key 開始score 結束score

(3)zrem key 某score下對應的value值

(4)zcard/zcount/zrank /zscore

(5)zrevrank

(6)zrevrange

(7)zrevrangebyscore key 結束score 開始score

 

2.2.4.解析配置文件redis.conf

2.2.4.1.它在哪

2.2.4.2.units單位

2.2.4.3.INCLUDES包含

2.2.4.4.GENERAL通用

(1)daemonize

(2)Pidfile

(3)Port

(4)tcp-backlog

(5)Timeout

(6)Bind

(7)tcp-keepalive

(8)Loglevel

(9)Logfile

(10)syslog-enabled

(11)syslog-ident

(12)syslog-facility

(13)Databases

 

2.2.4.5.SNAPSHOTTING快照

(1)Save

① save 秒鐘寫操做次數

② 禁用

(2)stop-writes-on-bgsave-error

(3)rdbcompression

(4)rdbchecksum

(5)dbfilename

(6)Dir

 

2.2.4.6.REPLICATION複製

2.2.4.7.SECURITY安全

2.2.4.8.LIMITS限制

Maxclients

Maxmemory

maxmemory-policy

maxmemory-samples

 

2.2.4.9.APPEND ONLY MODE追加

2.2.4.10.常見配置redis.conf介紹

 

2.2.5.redis的持久化

2.2.5.1.RDB(Redis DataBase)

 

簡介

Fork

配置位置

如何觸發RDB快照

如何恢復

優點

劣勢

如何中止

小總結

 

2.2.5.2.AOF(Append Only File)

 

概述

配置位置

AOF啓動/修復/恢復

(1)正常恢復

(2)異常恢復

 

Rewrite

(1)是什麼

(2)重寫原理

(3)觸發機制

 

優點

劣勢

小總結

 

2.2.5.3.總結

 

2.2.6.Redis的事務

 

2.2.6.1.概述

2.2.6.2.用法

常見用法

Redis事務錯誤處理

watch監控

(1)悲觀鎖/樂觀鎖/CAS(Check And Set)

(2)初始化信用卡可用餘額和欠額

(3)無加塞篡改,先監控再開啓multi, 保證兩筆金額變更在同一個事務內

(4)有加塞篡改

(5)Unwatch

(6)小結

 

3階段

3特性

 

2.2.7.Redis的發佈訂閱

概述

命令

案列

 

2.2.8.Redis的複製(Master/Slave)

 

2.2.8.1.是什麼

2.2.8.2.配置

2.2.8.2.1.配從(庫)不配主(庫)

2.2.8.2.2.從庫配置:slaveof 主庫IP 主庫端口

2.2.8.2.3.m

2.2.8.2.4.經常使用3招

一主二僕

① M

② 一個Master兩個Slave

③ 日誌查看

④ 主從問題演示

 

薪火相傳

反客爲主

 

2.2.8.3.複製原理

 

2.2.8.4.哨兵模式(sentinel)

是什麼

使用步驟

一組sentinel能同時監控多個Master

 

2.2.8.5.複製的缺點

 

2.2.9.Redis的Java客戶端Jedis

 

2.2.9.1.搭建環境

2.2.9.2.Jedis經常使用操做

 

測試連通性

5+1

事務提交

(1)平常

(2)加鎖

 

主從複製

(1)6379,6380啓動,先各自先獨立

(2)主寫

(3)從讀

 

2.2.9.3.JedisPool

 

獲取Jedis實例須要從JedisPool中獲取

用完Jedis實例須要返還給JedisPool

若是Jedis在使用過程當中出錯,則也須要還給JedisPool

案例見代碼

(1)JedisPoolUtil

(2)調用

 

配置總結all

 

2.2.10.Spring Data Redis

簡介

案例

 

 

 

==== 2.3.JPA ====

 


2.3.1.JPA概述

JPA簡介

JPA HelloWorld

2.3.2.經常使用註解

 

基本註解

Transient註解

Temporal註解

Table主鍵生成策略

2.3.3.JPA EntityManager

2.3.4.JPA EntityTransaction

2.3.5.JPA 映射單向多對一關聯關係

2.3.6.JPA 映射單向一對多關聯關係

2.3.7.JPA 映射雙向一對多的關聯關係

2.3.8.JPA 映射雙向一對一的關聯關係

2.3.9.JPA 二級緩存

 

2.3.10.JPQL

JPQL查詢緩存

ORDER BY和GROUP BY

關聯查詢

子查詢和內建函數

DELETE和UPDATE

2.3.11.JPA整合Spring

==== 2.4.分佈式系統 ====


2.4.1.RPC

什麼是RPC

RPC使用場景

 

2.4.2.分佈式介紹

分佈式系統

分佈式種類

分佈式與集羣的區別

 

2.4.3.Dubbo使用

dubbo服務器

2.4.4.zookeper介紹

2.4.5.zookeper安裝

2.4.6.服務端應用

2.4.7.客戶端應用

2.4.8.分佈式架構

==== 2.5.支付寶支付 ====


==== 2.6.微信支付 ====

 


==== 2.7.消息隊列 ====


==== 2.8.WebSocket ====


2.8.1.建立第一個WebSocket應用

建立WebSocket端點

部署端點

建立WebSocket客戶端

 

2.8.2.WebSocket端點

 

2.8.3.編程式端點

 

2.8.4.深刻Echo示例

部署階段

接收第一個鏈接

WebSocket消息通訊

 

2.8.5.WebSocket生命週期

2.8.6.高級消息處理

檢查鏈接

異步發送WebSocket消息

(1)經過Future發送消息

(2)經過Handler發送消息

(3)區別與聯繫

 

WebSocket路徑映射

Portfolio應用

 

2.8.7.保護WebSocket服務器端點

2.8.8.Java EE平臺中的WebSocket

==== 2.9.Lucene ====

 


2.9.1.Lucene簡介

什麼是lucene

全文檢索的應用場景

(1)搜索引擎

(2)站內搜索

(3)文件系統搜索

(4)總結

 

全文檢索的定義

lucene實現全文檢索的流程

 

2.9.2.入門案例

2.9.2.1.需求

2.9.2.2.搭建環境

(1)數據庫腳本初始化

(2)lucene準備

2.9.2.3.工程搭建

2.9.2.4.索引流程

 

爲何採集數據

採集數據的方式

(1)網頁採集

(2)數據庫採集

索引文件的邏輯結構

索引

 

2.9.2.5.搜索流程

輸入查詢語句

搜索分詞

搜索索引

 

2.9.3.Field域

 

Field的屬性

Field的經常使用類型

修改入門程序的代碼

 

2.9.4.索引維護

 

需求

添加索引

刪除索引

修改索引

 

2.9.5.搜索

建立查詢對象的方式

經過Query子類來查詢對象

經過QueryParser建立查詢對象

TopDocs

 

2.9.6.相關度排序

 

什麼是相關度排序

設置bosst值影響打分

 

2.9.7.中文分詞器

 

什麼是中文分詞器

Lucene自帶的中文分詞器

第三方中文分詞器

Ikanalyzer

 

==== 2.10.Solr ====

 


2.10.1.Solr介紹

什麼是Solr

Solr和Lucene的區別

2.10.2.Solr安裝配置

下載Solr

運行環境

SolrCore配置

(1)SolrHome和SolrCore

(2)目錄結構

(3)建立SolrCore

(4)配置SolrCoreSolr

工程部署管

理界面功能介紹

多SolrCore配置

 

2.10.3.Solr基本使用

schema.xml

配置中文分析器

配置業務Field

dataimportHandler插件

 

2.10.4.Solrj的使用

什麼是Solrj

需求

環境準備

工程搭建

代碼實現

(1)添加、修改索引

(2)刪除索引

(3)查詢索引

 

2.10.5.案例

需求

分析

(1)UI分析

(2)架構分析

 

環境準備

工程搭建

代碼實現

 

==== 2.11.Nginx ====


==== 2.12.Dubbo ====


==== 2.13.Docker ====


==== 2.14.Kubernetes ====


==== 2.15.lvs ====


==== 2.16.Activemq ====


==== 2.17.Rocketmq ====


==== 2.18.Kafka ====


==== 2.19.Mycat ====

==== 2.20.Sharding-jdbc ====


==== 2.21.Zookeeper ====


==== 2.22.RPC ====

======五.工具的使用======

=====1.SVN使用=====

=====2.Git使用 =====

===== 3.Eclipse開發工具的介紹 =====

 

工做空間的概念

工程的概念以及命名規範

包的概念以及命名規範

(1)建立包

(2)導入包

(3)建立包的命名規範

經常使用快捷鍵的介紹

工程的導入導出

===== 4.VMware (虛擬機) =====


===== 5.IntelliJ IDEA =====


===== 6.StarUML =====


===== 7.Dreamweaver =====


===== 8.PdShell =====


===== 9.Postman =====


===== 10.Xshell 5 =====


===== 11.Xftp 5 =====


===== 12.RedisDesktopManager =====


===== 13.HiJson =====


===== 14.數據庫圖形化工具 =====

本文章,列出了一些程序員須要學習的技術和知識點,有些技術和知識點沒有寫道,歡迎你們進行修改和補充,有些技術公司用到,你們須要先學習,有些技術和知識點過期,你們能夠了解。本人筆記鏈接[[http://2863c718.wiz03.com/wapp/pages/view/share/s/0EoYso1Xqk4m2eAV4Y385xVk2vODbZ2BZ46Z2ChvzO2jhAyq|學習體系]]。======一.前端===========1.前端基礎=========1.1.html4======= HTML介紹====== HTML做用 ====== 常見標籤 ===(1)圖片標籤(2)表單標籤(3)表格標籤(4)頭標籤(5)框架集(6)其餘常見標籤====1.2.css2====CSS概述CSS和HTML結合的方式CSS選擇器CSS擴展選擇器CSS盒子模型CSS佈局漂浮屬性CSS佈局定位屬性==== 1.3.JavaScript基礎 =======1.3.1.JS概述===(1)JS與Java不一樣(2)JS的歷史(3)JS語言組成(4)JS與HTML結合方式=== 1.3.2.JS基礎 ===(1)JS基本語法(2)JS的數據類型(3)JS基本語句(4)JS運算符(5)JS數組(6)JS函數的定義(7)JS中函數的重載(8)JS中的全局變量和局部變量=== 1.3.3.JS中常見對象 ===String對象Array對象Date對象Math對象=== 1.3.4.JavaScript 全局函數(global) ====== 1.3.5.BOM對象 ===什麼是BOM==1.3.5.1.瀏覽器對象的使用==1.3.5.1.1.History  History簡介    (1)back()方法    (2)forward()方法    (3)go()方法    (4)製做返回按鈕1.3.5.1.2.Location  Location對象簡介     經過href屬性完成超連接效果    超連接按鈕效果1.3.5.1.3.Window對象  Window對象簡介     (1)方法    ① confirm()    ② prompt()    ③ open()    ④ close()    ⑤ setInterval()    ⑥ setTimeout()    ⑦ clearInterval()    ⑧ alert()=== 1.3.6.DOM簡單入門 ===== 1.3.6.1.1.DOM簡介 ==DOM結構模型DOM的三個級別和DHTML介紹BOM和HTML DOM關係== 1.3.6.2.Document對象 ==Element對象Node經常使用屬性節點名稱、值和類型父節點、子節點和兄弟節點Node經常使用方法檢測子節點和屬性是否存在某節點是否存在屬性操做DOM節點樹  (1)插入節點    ①appendChild方法    ②insertBefore方法  (2)刪除節點  (3)替換節點  (4)複製節點  (5)移動節點innerHTMLJS經常使用事件  (1)鼠標移動事件  (2)鼠標點擊事件  (3)加載與卸載事件  (4)聚焦與離焦時間鍵盤事件  (5)提交與重置事件  (6)選擇與改變事件省市縣三級聯動樹形菜單製做==== 1.4.Jquery =======1.4.1.jQuery簡介===什麼是jQueryjQuery的特色=== 1.4.2.jQuery選擇器 ===基本選擇器層次選擇器過濾選擇器內容過濾選擇器表單域選擇器=== 1.4.3.jQuery屬性操做 ====== 1.4.4.jQuery快捷操做 ===class屬性值操做標籤包含內容操做css樣式操做value屬性快捷操做  (1)複選框操做  (2)下拉列表操做  (3)單選按鈕操做=== 1.4.5.jQuery和DOM對象關係 ====== 1.4.6.jQuery框架對象分析 ====== 1.4.7.jQuery加載事件 ====== 1.4.8.jQuery普通事件操做 ====== 1.4.9.jQuery對文檔的操做 ====== 1.4.10.jQuery屬性選擇器的使 ====== 1.4.11.jQuery事件綁定 ====== 1.4.12.jQuery動畫效果小案例 ========2.前端中級=========2.1.js進階========2.2.php與數據庫========2.3.Ajax========2.4.HTML5+CSS3=========3.前端高級========= 3.1.layui ======== 3.2.Bootstrap ======== 3.3.移動端 ======== 3.4.Canvas畫布 ======== 3.5.NodeJS ======== 3.6.AngularJS ======== 3.7.ES6-Babel-Webpack-Less ======== 3.8.Vue ======== 3.9.AngularJSX ======== 3.10.Webpack ======== 3.11.WebAPP-Cordova ======== 3.12.WebAPP-Ionic ======== 3.13.ES6 ======== 3.14.Git微信小程序 ======== 3.15.Gulp ======== 3.16.Node ======== 3.17.React ==========二.後端===========1.Java基礎========= 1.1.Java編碼規範 ====源碼存儲規範命名規則書寫格式代碼註釋==== 1.2.JAVA開發環境 ====安裝JDK1.7 ,開發環境目錄要求設置環境變量==== 1.3.軟件開發基礎 ====計算機基礎 操做系統,文件,目錄,可執行程序,經常使用快捷鍵經常使用的Shell命令經常使用開發語言 瞭解==== 1.4.第一個JAVA程序HelloWord ====在記事本編寫程序在Shell命令窗口編譯、執行講解程序的編譯執行過程關鍵字、標識符什麼是標識符(1)標識符的命名規範(2)JAVA關鍵字==== 1.5.數據類型 ====數據類型簡介JAVA中的數據類型基本數據類型引用數據類型基本數據類型有哪些數據類型的取值範圍數據類型的轉換自動類型轉換強制類型轉換==== 1.6.數組 ====數組的說明(1)爲何用數組(2)一維數組的聲明與建立(3)Java內存分析,堆和棧(局部變量存儲)數組的初始化(1)靜態初始化(2)動態初始化數組的訪問(1)經過下標訪問指定元素(2)循環訪問數組的排序(1)冒泡排序(2)選擇排序數組的查找(1)順序查找(2)二分法查找Arrays工具類二維數組(1)二維數組的聲明(2)二維數組的建立二維數組的初始化(1)靜態初始化(2)動態初始化二維數組的訪問(1)經過下標訪問指定元素(2)經過循環訪問數組==== 1.7.流程控制 ====什麼是JAVA語句的執行結構(1)JAVA語句有哪些結構(2)順序語句(3)分支語句(4)循環語句If語句(1)簡單if語句(2)複雜if語句(3)if-else語句(4)多重if語句(5)嵌套if語句switch語句(1)switch語句用法(2)switch使用String分支(3)switch語句與if語句的區別枚舉的簡單使用(1)枚舉的定義(2)枚舉的使用(結合switch的使用)循環語句(1)什麼是循環(2)Java中的循環語句for循環語句while循環(1)while循環語句(2)do-while循環語句特殊流程控制語句(1)break語句的使用(2)continue語句的使用(3)label 的簡述比較while和do-while的區別==== 1.8.類.變量,方法,對象 ====類的定義什麼是變量變量的聲明和初始化變量的分類變量的做用域對象的定義對象的建立以及內存分析構造方法的定義(1)構造方法的定義(2)構造方法的使用(3)構造方法重載(4)構造方法與普通方法的區別this關鍵字(1)this.屬性:訪問本類的成員屬性(成員變量與局部變量同名的狀況,成員變量無效)(2)this.方法:訪問本類的成員方法(3)this():訪問本類中的構造函數static關鍵字(1)靜態屬性(2)靜態方法(3)靜態代碼塊static的應用(1)工具類(操做數組經常使用方法爲例,寫一個工具類)(2)工具類的概念類中成員變量的定義常量、進制轉換(1)什麼是常量(2)二進制轉換十進制運算符(1)經常使用運算符(2)算術運算符(3)賦值運算符(4)關係運算符(5)邏輯運算符(6)三目運算符(7)字符串鏈接運算符(8)位運算符(9)移位運算符表達式的值和類型轉義字符運算符優先級什麼是方法(1)方法(函數)(2)方法中的參數① 形參② 實參(3)方法的返回值方法的聲明和調用(1)聲明方法的格式(2)調用方法的格式可變參數(1)可變參數的寫法(2)可變參數的使用類中方法的定義方法的重載內部類(1)成員內部類(2)靜態內部類(3)匿名內部類(4)局部內部類==== 1.9.面向對象 ====1.9.1.什麼是面向對象1.9.2.面向對象的設計思想1.9.3.面向對象和麪向過程的區別(1)面向對象(2)面向過程(3)區別總結1.9.4.抽象類和抽象方法(1)抽象類出現的緣由(2)抽象類的特色1.9.5.封裝(1)private 的使用(2)get/set(3)方法的說明(講this以前,參數與成員變量名稱要不一樣)1.9.6.繼承繼承的概念類的繼承的使用super關鍵字繼承中的構造方法訪問權限(1)private(2)default(默認)(3)protected(4)public方法重寫(1)方法重寫的規則(2)Object 類① equals()方法② hashCode()方法③ getClass()方法④ toString()方法final關鍵字(1)final修飾的類(2)final修飾的方法(3)final修飾的屬性(4)final與static的區別1.9.7.多態什麼是多態多態的體現對象的多態性多態的表現形式接口(1)接口的概念(2)接口的使用① 接口的聲明語法② 接口的實現類③ 接口的使用規則④ 接口的使用用途⑤ 接口與抽象類的區別對象轉型(1)對象的向上轉型(2)instanceof 關鍵字(3)對象的向下轉型==== 1.10.正則表達式 ====(1)String 正則(2)Pattern Matcher(3)正則元字符(4)正則表達式==== 1.11.經常使用類 ====1.11.1.字符串(1)String類(2)StringBuffer類(3)StringBuilder類(4)String.format() 格式化1.11.2.基本數據類型的包裝類基本數據類型與其包裝類數據的裝箱和拆箱String 與 基本數據類型的互換1.11.3.Date類1.11.4.Calendar類1.11.5.SimpleDateFormat類1.11.6.Math類1.11.7.Random類1.11.8.Runtime類1.11.9.System類==== 1.12.異常 ====異常的概念異常的分類異常的處理方式(1)捕獲異常:try..catch..finally語句(2)拋出異常:throws和throw自定義異常==== 1.13.泛型的使用 ====泛型應用在集合上泛型類聲明,方法返回泛型,方法參數泛型泛型限定 ==== 1.14.反射 ====類的加載 Class.forName()建立對象的兩種方式(newInstance與帶參數構造器)成員變量的訪問Field類和getDeclaredField方法方法的訪問與調用 Method構造方法==== 1.15.註解 ======== 1.16.集合 ====1.16.1.集合框架介紹(1)集合的概念(2)集合的框架結構介紹(3)集合與數組的對比1.16.2.Collection接口(1)集合對象的建立(2)Collection中經常使用的方法1.16.3.List接口(1)List接口的存儲特色(2)List接口的實現類① ArrayList實現類的使用② LinkedList實現類的使用③ ArrayList與LinkedList存儲的比較1.16.4.加強for循環1.16.5.Iterator迭代器(1)迭代器的工做原理(2)迭代器的使用1.16.6.集合工具(1)Collections 工具類(2)Comparable(3)Comparator1.16.7.Set接口(1)集合的存儲特色(2)HashSet的實現原理① 重寫hashCode()② 重寫equals()(3)LinkedHashSet(添加)1.16.8.Map接口(1)Map接口的概述(2)Map接口的經常使用方法(3)Map接口的經常使用實現類(4)HashMap(5)Hashtable 和 HashMap的區別(6)LinkedHashMap(7)Map的遍歷:各類遍歷方式 Map.Entry==== 1.17.IO流 ====1.17.1.File類File類做用File類的構造方法File類經常使用方法使用File類對文件進行操做使用File類瀏覽目錄中的文件和子目錄遞歸算法遍歷目錄下全部文件與子目錄1.17.2.IO概念什麼是IO流?流的做用和原理?1.17.3.IO流的種類按方向分:輸入流、輸出流按數據單位分:字符流、字節流按層次分:節點流、處理流1.17.4.字節輸入流InputStream類的經常使用方法InputStream類的子類:文件輸入流FileInputStreamFileInputStream構造方法和經常使用方法1.17.5.字節輸出流OutputStream類的經常使用方法OutputStream類的子類:文件輸出類FileOutputStreamFileOutputStream構造方法和經常使用方法1.17.6.字節緩衝流字節緩衝流的構造方法使用字節緩衝流對文件進行讀寫裝飾設計模式1.17.7.字符輸入流Reader類的經常使用方法Reader類的子類:FileReaderFileReader構造方法和經常使用方法1.17.8.字符緩衝流字符緩衝流構造方法字符緩衝流的經常使用方法:readLine(), newLine()字符緩衝流對文件進行讀寫1.17.9.字符輸出流Writer類的經常使用方法Writer類的子類:FileWriterFileWriter構造方法和經常使用方法1.17.10.轉換流InputStreamReader的構造方法InputStreamReader的使用OutputStreamWriter的構造方法OutputStreamWriter的使用1.17.11.打印流打印流構造方法打印流的經常使用操做:print(), println()1.17.12.標準輸入輸出流(1)使用System.in獲取鍵盤數據(2)使用System.out輸出數據1.17.13.內存流(重點掌握)什麼是內存流內存流的構造方法寫入到內存和讀取內存數據經常使用方法:toByteArray(), toString()1.17.14.數據輸入輸出流DataOutputStream 使用DataInputStream 使用1.17.15.對象流對象序列化序列化的經常使用屬性(1)static的屬性不能序列化(2)transient的屬性不能序列化(3)serialVersionUID=1L對象輸入流ObjectInputStream對象輸出流ObjectOutputStream1.17.16.隨機流RandomAccessFile類RandomAccessFile類的構造方法RandomAccessFile經常使用操做:skipBytes() seek()經常使用方法: getFilePointer() writerUTF() readUTF()向文件中隨機寫入鍵盤文字==== 1.18.線程 ====1.18.1.線程和進程的介紹進程的概念線程的概念進程和線程的關係以及區別1.18.2.線程的實現實現Runnable接口兩種實現方式的比較1.18.3.線程的啓動調用start()方法啓動線程調用start()與調用run()的區別1.18.4.線程的生命週期和經常使用方法線程的優先級線程的名稱線程的睡眠線程的中斷線程的中止1.18.5.多線程訪問臨界資源時的數據安全問題synchronized關鍵字同步代碼塊同步方法同步靜態方法鎖對象死鎖1.18.6.生產者消費者1.18.7.線程池單線程池固定線程池緩衝線程池==== 1.19.網絡編程 ====1.19.1.網絡通訊協議介紹TCP/IP協議IP地址和端口號基於TCP的網絡編程Socket和ServerSocketUDP編程(視頻)1.19.2.URL類的使用什麼是URL類URL的構造方法URL類的經常使用方法1.19.3.HttpURLConnection類簡介(重點)簡單介紹HttpURLConnection類HttpURLConnection的經常使用方法1.19.4.HttpURLConnection類的應用HttpURLConnection請求服務器,獲取響應的文本HttpURLConnection下載文件1.19.5.OkHttp 簡單使用同步GET、POST請求1.19.6.接口回調 接口回調結合多線程的應用異步請求,利用內部類,實現接口回調==== 1.20.Xml ====1.20.1.XML簡介什麼是XMLXML語法結構XML元素定義XML屬性使用自定義XML文件XML解析的三種方式說明:SAX, PULL, DOM1.20.2.PULL解析PULL解析原理PULL解析XML文件網絡XML文件解析1.20.3.SAX解析SAX解析的原理SAX解析經常使用類介紹SAX解析XML文件步驟網絡XML文件解析PULL解析與SAX解析的區別==== 1.21.Json ====1.21.1.JSON解析簡介什麼是JSONJSON與XML之間的比較JSON解析在網絡中的應用1.21.2.JSON的數據表示鍵值對的對象表示數組的表示1.21.3.JSON解析一個對象的JSON解析多個對象的解析複雜對象的解析將集合轉成JSON字符串官方JSON解析Gson解析==== 1.22.設計模式 ====單例設計模式簡單工廠設計模式裝飾者模式代理模式觀察者模式======三.Web基礎==========1.數據庫====1.1.須要學習瞭解的數據庫Mysql公司使用,主要學習,MySQL 在 2008 年被Sun收購須要學習其餘數據庫語言做爲可替代方案oracleSqlserver  微軟的只能在Windows平臺使用,工做中基本不用,只需瞭解MariaDBPostgreSQLMangoDBNoSQL1.2.Mysql數據庫簡介mysql安裝和概述mysql基本命令mysqlDDL操做mysqlDML操做mysqlDQL操做mysql模糊查詢mysql分組查詢分頁數據庫約束多表查詢查詢練習MySQL數據庫的備份與恢復1.3.JDBCJava操做數據庫獲取數據庫鏈接使用Statement執行更新操做使用ResultSet執行查詢操做以面向對象思想編寫JDBC使用PreparedStatement利用反射及JDBC元數據編寫通用的查詢方法DAO設計模式JDBC元數據JDBC獲取插入記錄的主鍵值JDBC處理Blob事務介紹JDBC處理事務批量處理數據庫鏈接池(1)TOMCAT中的數據庫鏈接池(2)C3P0(3)DBCP(4)Druid使用DBUtils1.4.oracle數據庫簡介Oracle服務端和客戶端安裝Oracle基本命令Oracle中的用戶管理Oracle中表的管理Oracle查詢操做Oracle中的函數表的邏輯備份與恢復數據庫約束Oracle索引、權限分頁====2.Tomcat====Tomcat簡介Tomcat安裝Tomcat安裝目錄介紹====3.Servlet====3.1.Servlet概述什麼是Servlet實現Servlet的方式建立HelloWorld應用3.2.Servlet接口3.2.1.Servlet生命週期Servlet出生Servlet服務Servlet的離去3.2.2.Servlet接口相關類型ServletRequest和ServletResponseServletConfig3.2.3.GenericServletGenericServlet概述GenericServlet的init()方法實現了ServletConfig接口3.2.4.HttpServlet3.2.4.1.概述3.2.4.2.HttpServlet覆蓋了service()方法3.2.4.3.<url-pattern>(1)/XXX(2)*.XXX3.2.4.4.doGet()和doPost()3.2.4.5.Responseresponse概述response響應正文(1)字符響應流設置響應頭信息設置狀態碼及其餘方法重定向(1)什麼是重定向(2)完成重定向(3)便捷的重定向方式(4)重定向小結Request(1)request概述(2)request域方法(3)request獲取請求頭數據(4)request獲取請求相關的其它方法(5)request獲取請求參數(6)請求轉發和請求包含① 請求轉發② 請求包含③ 請求轉發與請求包含比較④ 請求轉發與重定向比較3.3.Servlet細節Servlet與線程安全讓服務器在啓動時就建立Servlet服務端跳轉與客戶端跳轉web.xml文件的繼承(瞭解)3.4.ServletContextServletContext概述獲取ServletContext域對象的功能獲取應用初始化參數獲取資源相關方法(1)獲取真實路(2)徑獲取資源流(3)獲取指定目錄下全部資源路徑訪問量統計====4.編碼====4.1.請求編碼(1)直接在地址欄中給出中文(2)在頁面中發出請求(3)GET請求解讀編碼(4)POST請求解讀編碼4.2.響應編碼4.3.URL編碼====5.路徑問題====與路徑相關的操做客戶端路徑服務端路徑<url-pattern>ServletContext獲取資源Class獲取資源ClassLoader獲取資源====6.註解配置Servlet========7.JSP====7.1.JSP概述什麼是JSPJSP的組成7.2.JSP語法JSP腳本多個<%...%>能夠通用7.3.JSP原理JSP是特殊的ServletJSP真身存放目錄7.4.再論JSP腳本7.5.JSP註釋7.6.三個基本的腳本元素7.7.JSP指令7.8.JSP動做7.9.JSP EL表達式7.10.JSP標籤庫JSTLfmt標籤庫經常使用標籤7.11.絕對路徑和相對路徑7.12.靜態包含和動態包含7.13.頁面中的幾個路徑7.14.驗證碼案例驗證碼的做用VerifyCode類在頁面中顯示動態圖片在註冊頁面中使用驗證碼RegisterServlet總結驗證碼案例7.15.MVC設計模式7.16.JavaWeb與MVCJSP Model1第一代JSP Model1第二代JSP Model27.17.JavaWeb經典三層框架7.18.Filter7.18.1.過濾器概述Filter簡介過濾器之HelloWorld7.18.2.過濾器詳細過濾器的生命週期FilterConfigFilterChain多個過濾器執行順序四種攔截方式過濾器的應用場景設置目標資源Filter小結7.18.3.過濾器應用案例分ip統計網站訪問次數粗粒度權限控制禁用資源解決全站字符亂碼頁面靜態化7.19.JavaWeb監聽器JavaWeb監聽器概述建立與銷燬監聽器操做域屬性的監聽器HttpSession的監聽器7.20.國際化什麼是國際化理解國際化Locale類ResourceBundle類頁面國際化NumberFormatDateFormatMessageFormat7.21.Ajax7.21.1.js原生的ajax7.21.2.jQuery封裝的ajaxAJAX概述(1)什麼是AJAX(2)同步交互與異步交互(3)AJAX常見應用情景(4)AJAX優缺點AJAX技術(1)AJAX第一例(2)AJAX發送POST請求(3)AJAX判斷用戶名是否已註冊(4)AJAX實現省市二級聯動7.22.文件上傳和下載文件上傳(1)文件上傳的做用(2)文件上傳對頁面的要求(3)比對文件上傳表單和普通文本表單的區別(4)文件上傳對Servlet的要求commons-fileupload(1)fileupload概述(2)fileupload簡單應用(3)簡單上傳示例文件上傳細節(1)把上傳的文件放到WEB-INF目錄下(2)文件名稱(完整路徑、文件名稱)(3)中文亂碼問題(4)上傳文件同名問題(5)一個目錄不能存放過多文件(6)上傳的單個文件的大小限制(7)上傳文件的總大小限制(8)緩存大小與臨時目錄文件下載(1)經過Servlet下載1(2)經過Servlet下載2(3)經過Servlet下載37.23.會話7.23.1.會話跟蹤技術什麼是會話跟蹤技術會話跟蹤技術使用Cookie或Session完成7.23.2.CookieCookie概述(1)什麼是Cookie(2)Cookie規範(3)Cookie與HTTP頭(4)Cookie的覆蓋(5)Cookie的第一例Cookie的生命週期(1)什麼是Cookie的生命週期(2)瀏覽器查看Cookie(3)案例:顯示上次訪問時間Cookie的Path(1)什麼是Cookie的路徑(2)Cookie路徑與請求路徑的關係(3)設置Cookie的路徑Cookie的domainCookie中保存中文顯示曾經瀏覽過的商品7.23.3.HttpSessionHttpSession概述登陸案例Session實現原理Session與瀏覽器Session其餘經常使用APIURL重寫======四.Web高級===========1.經典框架========= 1.1.Maven ====maven的介紹maven的安裝配置建立maven工程之maven命令maven核心概念之座標maven核心概念之依賴管理maven核心概念之生命週期maven核心概念之插件maven核心概念之繼承maven核心概念之聚合==== 1.2.MyBatis ====1.2.1.單獨使用JDBC編程問題總結JDBC程序JDBC編程步驟JDBC問題總結以下1.2.2.MyBatis介紹1.2.3.MyBatis架構1.2.4.MyBatis下載1.2.5.建立數據庫1.2.6.MyBatis入門程序(1)需求(2)第一步:建立Java工程(3)第二步:加入jar包(4)第三步:log4j.properties(5)第四步:SqlMapConfig.xml(6)第五步:POJO類(7)第六步:程序編寫① 查詢② 添加③ 刪除④ 修改(8)MyBatis解決JDBC編程的問題1.2.7.Dao開發方法需求SqlSession的使用範圍(1)SqlSessionFactoryBuilder(2)SqlSessionFactory(3)SqlSession原始Dao開發方式① 映射文件② Dao接口③ 問題Mapper動態代理方式① 實現原理② Mapper.xml③ Mapper.java④ 加載UserMapper.xml文件⑤ 測試⑥ 總結1.2.8.SqlMapConfig.xml文件配置內容properties屬性settings配置typeAliases① mybatis支持別名② 自定義別名typeHandlerMappers① <mapper resource=""/>② <mapper url=""/>③ <mapper class=""/>④ <package name=""/>1.2.9.Mapper.xml映射文件1.2.9.1.parameterType#{}與${}傳遞簡單類型傳遞POJO對象傳遞POJO包裝對象① 定義包裝對象② mapper.xml映射文件傳遞HashMap1.2.9.2.resultType輸出簡單類型輸出POJO對象輸出POJO列表resultType總結輸出HashMap1.2.9.3.resultMapMapper.xml定義定義resultMapMapper接口定義1.2.9.4.動態SQLIfWhereForeach① 經過POJO傳遞List② 傳遞單個List③ 傳遞單個數組(數組中是POJO)④ 傳遞單個數組(數組中是字符串類型)sql片斷1.2.10.關聯查詢商品訂單數據模型一對一查詢① 方法一② 方法二一對多查詢③ Sql語句④ 定義POJO類⑤ Mapper.xml⑥ 定義resultMap1)resultMap使用繼承⑦ Mapper接口⑧ 測試⑨ 小結多對多查詢① 查詢用戶購買的商品信息② 小結resultMap小結延遲加載(1)開啓延遲加載(2)一對一查詢延遲加載① 需求② Sql語句③ 定義POJO類④ Mapper.xml⑤ 定義resultMap⑥ Mapper接口⑦ 測試⑧ 延遲加載優缺點分析一對多查詢延遲加載延遲加載小結1.2.11.查詢緩存1.2.11.1.MyBatis緩存介紹1.2.11.2.一級緩存原理測試1.2.11.3.二級緩存原理開啓二級緩存實現序列化測試禁用二級緩存刷新緩存MyBatis Cache參數MyBatis整合ehcache(1)原理(2)整合步驟① 引入緩存的依賴包② 引入緩存的配置文件③ 開啓ehcache緩存應用場景侷限性==== 1.3.Spring ====1.3.1.初識Spring1.3.1.1.簡化Java開發什麼是最小侵入式依賴注入應用切面使用模板消除樣板式代碼1.3.1.2.Spring主要模塊1.3.2.Bean的注入1.3.2.1.XMl配置普通構造方法建立靜態工廠建立實例工廠建立屬性注入方式① 構造方法注入② set方法注入③ p名稱空間注入④ 對象的注入⑤ 數組注入⑥ List集合注入⑦ Map注入⑧ Properties注入1.3.2.2.Java配置1.3.2.3.自動配置經過Java代碼實現經過XML配置文件實現1.3.2.4.混合配置1.3.2.5.ProfileJava配置XML配置1.3.2.6.條件註解1.3.2.7.Bean的做用域1.3.2.8.其餘問題1.3.3.AOP1.3.3.1.AOP簡介1.3.3.2.AOP幾個關鍵概念1.3.3.3.AOP原理1.3.3.4.AOP實現1.3.3.4.1.經過Java代碼實現使用註解攔截(1)前置、後置通知(2)返回通知(3)環繞通知(4)異常通知按照方法規則攔截(1)前置、後置通知(2)返回通知(3)環繞通知(4)異常通知1.3.3.4.2.經過XML配置實現使用註解攔截按照方法規則攔截(1)前置通知(2)返回通知(3)環繞通知(4)異常通知(5)後置通知1.3.3.5.JdbcTemplate增刪改查配合數據庫鏈接池1.3.3.6.Spring事務管理回憶事務XML配置實現Java配置實現1.3.3.7.Spring高級應用1.3.3.8.服務端校驗普通校驗分組校驗校驗註解1.3.3.9.數據回顯默認方式Model方式@ModelAttribute(1)解決數據回顯問題(2)方法返回值暴露爲模型數據異常處理文件上傳JSON數據交互(1)@RequestBody(2)@ResponseBodyRESTful支持(1)RESTful簡介(2)SpringMVC對RESTful的支持靜態資源訪問攔截器==== 1.4.SpringMVC ====1.4.1.簡介SpringMVC工做流程SpringMVC相關組件HelloWorld1.4.2.組件介紹1.4.2.1.DispatcherServlet1.4.2.2.Controller1.4.2.2.1.@RequestMapping(1)URL路徑映射(2)窄化請求映射(3)請求方法限定1.4.2.2.2.Controller方法返回值返回ModelAndView返回void(1)使用request轉向頁面(2)經過response頁面重定向(3)經過response指定響應結果返回字符串(1)邏輯視圖名(2)Redirect重定向(3)forward轉發1.4.2.2.3.參數綁定默認支持的參數類型簡單數據類型(1)簡單類型(2)@RequestParamPOJO(1)簡單pojo(2)包裝pojo自定義參數綁定集合類(1)字符串數組(2)Lis(3)tMap1.4.2.2.4.問題總結404Post時中文亂碼1.4.2.3.其餘組件=== 1.5.Freemarker ===1.5.1.Freemarker介紹Freemarker簡介使用引入1.5.2.ftl基本語法if else語句list循環語句輸出展現=== 1.6.SpringMVC+Freemarker案例 ====== 1.7.SpringMVC+AJAX實現動態樹形菜單 ====== 1.8.MyBatis整合Spring ===1.8.1.MyBatis與Spring整合jar1.8.2.MyBatis配置文件1.8.3.Spring配置文件1.8.4.Mapper編寫的三種方式Dao接口實現類繼承SqlSessionDaoSupport使用org.mybatis.spring.mapper.MapperFactoryBean使用Mapper掃描器=== 1.9.MyBatis逆向工程 ===使用方式Mapper文件內容不覆蓋而是追加Table schema問題=== 1.10.Struts2 ===1.10.1.Struts2概述1.10.2.Struts2框架入門1.10.3.Struts2執行過程1.10.4.Struts2核心配置文件標籤package標籤action標籤result1.10.5.Struts2常量配置1.10.6.分模塊開發1.10.7.Action編寫方式1.10.8.訪問Action的方法使用action標籤method屬性使用通配符實現1.10.9.結果頁面配置全局結果頁面局部結果頁面Result標籤的type屬性1.10.10.Action獲取表單提交數據使用ActionContext類獲取使用ServletActionContext類獲取在Action操做域對象1.10.11.Struts2封裝獲取表單數據方式屬性封裝模型驅動封裝封裝到集合中(1)封裝數據到List集合中(2)封裝數據到Map集合中Struts2攔截器概述攔截器底層原理重要概念自定義攔截器自定義登陸攔截器Struts2的標籤庫Struts2總結=== 1.11.Hibernate ===1.11.1.Hibernate概述什麼是框架什麼是hibernate框架什麼是ORM思想1.11.2.Hibernate入門搭建Hibernate環境實現添加操做1.11.3.Hibernate配置文件詳解Hibernate映射配置文件Hibernate核心配置文件1.11.4.Hibernate核心APIConfigurationSessionFactorySessionTransaction1.11.5.Hibernate主鍵生成策略1.11.6.實體類操做添加根據id查詢修改操做刪除操做1.11.7.Hibernate的一級緩存什麼是緩存Hibernate緩存驗證緩存Hibernate一級緩存執行過程Hibernate一級緩存特性1.11.8.Hibernate事務操做事務相關概念Hibernate事務代碼規範寫法Hibernate綁定session1.11.9.Hibernate的API的使用Query對象Criteria對象SQLQuery對象1.11.10.Hibernate一對多操做一對多映射配置一對多級聯操做一對多級聯保存一對多級聯刪除一對多修改操做1.11.11.Hibernate查詢對象導航查詢OID查詢HQL查詢QBC查詢=== 1.12.Spring Boot ===1.12.1.Spring Boot概述什麼是Spring BootSpring Boot的核心功能Spring Boot的優缺點1.12.2.Spring Boot快速搭建1.12.3.Spring Boot核心1.12.3.1.基本配置(1)入口類和@SpringBootApplication(2)關閉特定的自動配置(3)定製Banner(4)Spring Boot的配置文件(5)Starter pom(6)使用xml配置1.12.3.2.外部配置命令行參數配置常規屬性配置類型安全配置1.12.3.3.日誌配置1.12.3.4.Profile配置1.12.4.Spring Boot運行原理運做原理核心註解實例分析1.12.5.Spring Boot的Web開發支持1.12.6.Thymeleaf模板引擎Thymeleaf基礎知識與Spring MVC集成Spring Boot的Thymeleaf支持案例1.12.7.Web相關配置Spring Boot提供的自動配置接管Spring Boot的Web配置註冊Serlvet、Filter、Listener1.12.8.Tomcat配置配置Tomcat代碼配置Tomcat替換TomcatSSL配置1.12.9.Favicon配置默認的Favicon關閉Favicon設置本身的Favicon1.12.10.WebSocket什麼是WebSocketSpring Boot提供的自動配置案例1.12.11.基於Bootstrap和AngularJS的現代Web應用1.12.12.Spring Boot的數據訪問Spring Data JPASpring Data REST聲名式事務(1)回憶Spring 的事務機制(2)聲名式事務(3)註解事務行爲(4)類級別使用@Transactional(5)Spring Boot的事務支持(6)案例1.12.13.數據緩存CacheSpring的緩存支持Spring Boot的支持緩存切換技術案例1.12.14.Spring Boot企業級開發安全控制Spring Security批處理Spring Batch異步消息集成Spring Integration=== 1.13.Shiro ===1.13.1.Shiro簡介1.13.2.HelloWorld1.13.3.Shiro集成Spring1.13.4.Shiro工做流1.13.5.權限URL配置細節1.13.6.認證思路分析1.13.7.實現認證流程1.13.8.實現認證Realm1.13.9.密碼的比對1.13.10.密碼的MD5加密1.13.11.密碼的MD5鹽值加密1.13.12.多Realm驗證1.13.13.認證策略1.13.14.把realms配置給SecurityManager1.13.15.Shiro權限配置1.13.16.Shiro受權流程分析1.13.17.多Realm受權的經過標準1.13.18.實現受權1.13.19.標籤1.13.20.權限註解1.13.21.從數據表中初始化資源和權限1.13.22.會話管理1.13.23.SessionDao1.13.24.緩存認證和記住個人區別1.13.25.Shiro實現Rememberme=== 1.14.Spring Cloud ========2.JavaEE進階========= 2.1.Linux ====2.1.1.Linux簡介簡介Linux版本2.1.2.Linux系統安裝VMware安裝CentOs安裝CentOs root用戶CentOs 使用CentOs目錄介紹2.1.3.Linux基本命令切換目錄命令端口查看命令文件執行命令解壓命令受權命令建立目錄命令文件複製命令chkconfig命令2.1.4.vi編輯器&vim2.1.5.應用安裝準備安裝路徑上傳文件到Linux2.1.6.jdk安裝2.1.7.Tomcat安裝安裝啓動中止關閉防火牆安裝zookeper安裝mysql數據庫==== 2.2.Redis ====2.2.1.NoSQL概述2.2.1.1.入門概述爲何用NoSQL什麼是NoSQLNoSQL能幹什麼2.2.1.2.3V+3高2.2.1.3.當下的NoSQL經典應用(以阿里巴巴爲例)架構發展史阿里巴巴中文站商品信息存放(1)商品基本信息(2)商品描述、詳情、評價信息(多文字類)(3)商品的圖片(4)商品關鍵字(5)商品的波段性的熱點高頻信息(6)商品的交易、價格計算、積分累計大型互聯網應用(大數據、高併發、多樣數據類型)的難點和解決方案難點解決辦法UDSL2.2.1.4.NoSQL數據模型簡介傳統數據庫模型NoSQL數據模型聚合模型2.2.1.5.NoSQL數據庫的四大分類KV鍵值文檔型數據庫(bson格式比較多)列存儲數據庫(1)Cassandra, HBase(2)分佈式文件系統圖關係數據庫四者對比2.2.1.6.分佈式數據庫中CAP原理傳統的ACID分別是什麼CAPCAP的3選2BASE是什麼分佈式和集羣2.2.2.Redis入門介紹2.2.2.1.入門概述VMWare上安裝Linux(1)VMWare虛擬機的安裝(2)CentOS或者RedHad5的安裝(3)VMTools的安裝(4)設置共享目錄(5)上述環境都OK後開始進行Redis的服務器安裝配置2.2.2.2.Redis的安裝Windows版安裝重要提示:Linux版安裝2.2.2.3.Redis啓動後雜項基礎知識講解2.2.3.Redis的數據類型2.2.3.1.Redis的五大數據類型string(字符串)hash(哈希,相似java裏的Map)list(列表)set(集合)zset(sorted set:有序集合)2.2.3.2.Redis 鍵(key)經常使用案例2.2.3.3.Redis字符串(String)經常使用案例2.2.3.4.Redis列表(List)經常使用案例(1)lpush/rpush/lrange(2)lpop/rpop (3)lindex,按照索引下標得到元素(從上到下) (4)Llen(5)lrem key 刪N個value (6)ltrim (7)rpoplpush 源列表 目的列表 (8)lset key index value (9)linsert key before/after 值1 值2(10)性能總結2.2.3.5.Redis集合(Set)經常使用案例 (1)sadd/smembers/sismember (2)scard,獲取集合裏面的元素個數 (3)srem key value 刪除集合中元素(4)srandmember key 某個整數(隨機出幾個數) (5)spop key 隨機出棧 (6)smove key1 key2 在key1裏某個值 (7)數學集合類① 差集:sdiff② 交集:sinter③ 並集:sunion2.2.3.6.Redis哈希(Hash)經常使用案例 (1)hset/hget/hmset/hmget/hgetall/hdel (2)hlen hexists key key裏面的某個值的key (3)hkeys/hvals (4)hincrby/hincrbyfloat (5)Hsetnx2.2.3.7.Redis有序集合Zset(sorted set)經常使用案例 (1)zadd/zrange (2)zrangebyscore key 開始score 結束score (3)zrem key 某score下對應的value值 (4)zcard/zcount/zrank /zscore (5)zrevrank (6)zrevrange (7)zrevrangebyscore key 結束score 開始score2.2.4.解析配置文件redis.conf2.2.4.1.它在哪2.2.4.2.units單位2.2.4.3.INCLUDES包含2.2.4.4.GENERAL通用(1)daemonize(2)Pidfile(3)Port(4)tcp-backlog(5)Timeout(6)Bind(7)tcp-keepalive(8)Loglevel(9)Logfile(10)syslog-enabled(11)syslog-ident(12)syslog-facility(13)Databases2.2.4.5.SNAPSHOTTING快照(1)Save ① save 秒鐘寫操做次數② 禁用(2)stop-writes-on-bgsave-error (3)rdbcompression (4)rdbchecksum (5)dbfilename (6)Dir2.2.4.6.REPLICATION複製2.2.4.7.SECURITY安全2.2.4.8.LIMITS限制MaxclientsMaxmemorymaxmemory-policymaxmemory-samples2.2.4.9.APPEND ONLY MODE追加2.2.4.10.常見配置redis.conf介紹2.2.5.redis的持久化2.2.5.1.RDB(Redis DataBase)簡介Fork配置位置如何觸發RDB快照如何恢復優點劣勢如何中止小總結2.2.5.2.AOF(Append Only File)概述配置位置AOF啓動/修復/恢復(1)正常恢復(2)異常恢復Rewrite(1)是什麼(2)重寫原理(3)觸發機制優點劣勢小總結2.2.5.3.總結2.2.6.Redis的事務2.2.6.1.概述2.2.6.2.用法常見用法Redis事務錯誤處理watch監控(1)悲觀鎖/樂觀鎖/CAS(Check And Set)(2)初始化信用卡可用餘額和欠額(3)無加塞篡改,先監控再開啓multi, 保證兩筆金額變更在同一個事務內(4)有加塞篡改 (5)Unwatch(6)小結3階段3特性2.2.7.Redis的發佈訂閱概述命令案列2.2.8.Redis的複製(Master/Slave)2.2.8.1.是什麼2.2.8.2.配置2.2.8.2.1.配從(庫)不配主(庫)2.2.8.2.2.從庫配置:slaveof 主庫IP 主庫端口2.2.8.2.3.m2.2.8.2.4.經常使用3招一主二僕① M② 一個Master兩個Slave③ 日誌查看④ 主從問題演示薪火相傳反客爲主2.2.8.3.複製原理2.2.8.4.哨兵模式(sentinel)是什麼使用步驟一組sentinel能同時監控多個Master2.2.8.5.複製的缺點2.2.9.Redis的Java客戶端Jedis2.2.9.1.搭建環境2.2.9.2.Jedis經常使用操做測試連通性5+1事務提交(1)平常(2)加鎖主從複製(1)6379,6380啓動,先各自先獨立(2)主寫(3)從讀2.2.9.3.JedisPool獲取Jedis實例須要從JedisPool中獲取用完Jedis實例須要返還給JedisPool若是Jedis在使用過程當中出錯,則也須要還給JedisPool案例見代碼(1)JedisPoolUtil(2)調用配置總結all2.2.10.Spring Data Redis簡介案例==== 2.3.JPA ====2.3.1.JPA概述JPA簡介JPA HelloWorld2.3.2.經常使用註解基本註解Transient註解Temporal註解Table主鍵生成策略2.3.3.JPA EntityManager2.3.4.JPA EntityTransaction2.3.5.JPA 映射單向多對一關聯關係2.3.6.JPA 映射單向一對多關聯關係2.3.7.JPA 映射雙向一對多的關聯關係2.3.8.JPA 映射雙向一對一的關聯關係2.3.9.JPA 二級緩存2.3.10.JPQLJPQL查詢緩存ORDER BY和GROUP BY關聯查詢子查詢和內建函數DELETE和UPDATE2.3.11.JPA整合Spring==== 2.4.分佈式系統 ====2.4.1.RPC什麼是RPCRPC使用場景2.4.2.分佈式介紹分佈式系統分佈式種類分佈式與集羣的區別2.4.3.Dubbo使用dubbo服務器2.4.4.zookeper介紹2.4.5.zookeper安裝2.4.6.服務端應用2.4.7.客戶端應用2.4.8.分佈式架構==== 2.5.支付寶支付 ======== 2.6.微信支付 ======== 2.7.消息隊列 ======== 2.8.WebSocket ====2.8.1.建立第一個WebSocket應用建立WebSocket端點部署端點建立WebSocket客戶端2.8.2.WebSocket端點2.8.3.編程式端點2.8.4.深刻Echo示例部署階段接收第一個鏈接WebSocket消息通訊2.8.5.WebSocket生命週期2.8.6.高級消息處理檢查鏈接異步發送WebSocket消息(1)經過Future發送消息(2)經過Handler發送消息(3)區別與聯繫WebSocket路徑映射Portfolio應用2.8.7.保護WebSocket服務器端點2.8.8.Java EE平臺中的WebSocket==== 2.9.Lucene ====2.9.1.Lucene簡介什麼是lucene全文檢索的應用場景(1)搜索引擎(2)站內搜索(3)文件系統搜索(4)總結全文檢索的定義lucene實現全文檢索的流程2.9.2.入門案例2.9.2.1.需求2.9.2.2.搭建環境(1)數據庫腳本初始化(2)lucene準備2.9.2.3.工程搭建2.9.2.4.索引流程爲何採集數據採集數據的方式(1)網頁採集(2)數據庫採集索引文件的邏輯結構索引2.9.2.5.搜索流程輸入查詢語句搜索分詞搜索索引2.9.3.Field域Field的屬性Field的經常使用類型修改入門程序的代碼2.9.4.索引維護需求添加索引刪除索引修改索引2.9.5.搜索建立查詢對象的方式經過Query子類來查詢對象經過QueryParser建立查詢對象TopDocs2.9.6.相關度排序什麼是相關度排序設置bosst值影響打分2.9.7.中文分詞器什麼是中文分詞器Lucene自帶的中文分詞器第三方中文分詞器Ikanalyzer==== 2.10.Solr ====2.10.1.Solr介紹什麼是SolrSolr和Lucene的區別2.10.2.Solr安裝配置下載Solr運行環境SolrCore配置(1)SolrHome和SolrCore(2)目錄結構(3)建立SolrCore(4)配置SolrCoreSolr工程部署管理界面功能介紹多SolrCore配置2.10.3.Solr基本使用schema.xml配置中文分析器配置業務FielddataimportHandler插件2.10.4.Solrj的使用什麼是Solrj需求環境準備工程搭建代碼實現(1)添加、修改索引(2)刪除索引(3)查詢索引2.10.5.案例需求分析(1)UI分析(2)架構分析環境準備工程搭建代碼實現==== 2.11.Nginx ======== 2.12.Dubbo ======== 2.13.Docker ======== 2.14.Kubernetes ======== 2.15.lvs ======== 2.16.Activemq ======== 2.17.Rocketmq ======== 2.18.Kafka ======== 2.19.Mycat ======== 2.20.Sharding-jdbc ======== 2.21.Zookeeper ======== 2.22.RPC ==========五.工具的使用===========1.SVN使用==========2.Git使用 ========== 3.Eclipse開發工具的介紹 =====工做空間的概念工程的概念以及命名規範包的概念以及命名規範(1)建立包(2)導入包(3)建立包的命名規範經常使用快捷鍵的介紹工程的導入導出===== 4.VMware (虛擬機) ========== 5.IntelliJ IDEA ========== 6.StarUML ========== 7.Dreamweaver ========== 8.PdShell ========== 9.Postman ========== 10.Xshell 5 ========== 11.Xftp 5 ========== 12.RedisDesktopManager ========== 13.HiJson ========== 14.數據庫圖形化工具 =====

相關文章
相關標籤/搜索