当前位置:网站首页>知識點總結
知識點總結
2022-06-26 18:22:00 【[email protected]】
1.知識小結
1.1 Mysql
版本說明: 最好不要使用mysql8.0 建議使用mariadb 10以上
下載地址: https://mariadb.org/download/?rel=10.6.4&prod=mariadb&os=windows&cpu=x86_64&pkg=msi&mirror=ossplanet
基本功能 CRUD操作。
連接方式: 左連接,右連接,內連接
1.2 JDBC
功能和作用: java中操作數據庫中最為直接的方式。
錶述: JDBC開發效率高? 開發效率低
JDBC運行效率高? 操作數據庫最快的就是JDBC
1.3 前端
核心知識:
1.html
2.javascript JS 學一學
3.CSS 美化
4、Ajax
前端的內容屬於靜態頁面。
動態頁面: JSP html + java代碼 tomcat負責解析。
1.4 框架說明
SpringBoot 核心是Spring,簡化框架的開發
理解:SpringBoot是框架的框架
SpringMVC 理念: 主要負責實現前後端交互.
媒介: http(不安全)/https(安全) 秘鑰:證書(公鑰私鑰) 協議
TCP/IP協議 (3次握手規則) 速度是很快的
常用工具: Ajax
Spring框架
主要作用: 主要整合第三方框架,使得程序可以以一種統一的方式進行管理.
概念:
1. 控制反轉/依賴注入 IOC/DI
2. 面向切面編程 AOP(1-2年)
2. IDEA環境配置
2.1 准備工作目錄
說明: 整合第三階段的代碼都統一的放到目錄cgb2108中, 該目錄不要與其它的軟件耦合.
程序員操守: 1.路徑中不要有中文/空格/特殊字符
2.軟件目錄結構不要與其它軟件耦合!!!
3.找一個趁手的文本編輯器 EverEdit.exe
2.2 IDEA環境配置
具體步驟 參見資料PPT
2.3 maven配置
2.3.1 Maven介紹
Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。
Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建脚本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目采用 Maven 的比例在持續增長。
2.3.2 Maven下載
2.3.3 Maven工作原理
1.用戶使用的jar包都來源於本地庫.
2.本地庫中的jar包 來源於私服鏡像和遠程服務器.
2.3.4 Maven Settings 文件
配置本地倉庫比特置
<localRepository>E:/project3/repo</localRepository>
配置私服鏡像
<mirror>
<id>aliyun</id>
<name>aliyun for maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
舊版本eclipse的配置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>
1.8
</maven.compiler.compilerVersion>
</properties>
</profile>
2.3.5 IDEA 整合Maven
2.4 SpringBoot入門案例
2.4.1 選擇鏡像地址
2.4.2 編輯項目配置
2.4.3 編輯選擇springboot版本
說明:
1.選擇springboot版本 2.3.7
2.勾選 Spring Web
3 SpringBoot高級用法
3.1 maven坐標說明
3.1.1 maven坐標作用
maven的坐標主要標識項目,並且標識 唯一標識.
maven項目操作時,與本地倉庫一一對應.
<!--組ID-->
<groupId>com.jt</groupId>
<!--項目名稱-->
<artifactId>springboot_demo1</artifactId>
<!--版本號-->
<version>0.0.1-SNAPSHOT</version>
3.1.2 maven 命令
clean 清空項目中的target文件目錄的. xxx.class文件信息
install 將項目打包處理
install詳細說明:
每次打包 會在2個比特置生成jar包文件.
比特置1: target文件目錄中.
比特置2: 根據坐標,在本地倉庫中生成具體的jar包文件,該文件可以被其它項目依賴.
3.1.3 打包類型
jar包文件 springboot項目/工具API項目/框架的項目
war包文件 動態web項目 JSP類型 tomcat服務器.
pom類型(標識符) POM類型錶示聚合工程 微服務架構設計一般采用pom類型.
3.1.4 關於Maven 下載說明
說明: 根據坐標可以在本地倉庫的指定比特置 查找到jar包文件
作用: 可以被其它項目依賴
3.1.5 maven jar包依賴的傳遞性
案例說明1: 用戶只需要引入特定的jar包文件,則maven可以通過依賴的傳遞性,實現其它jar包文件的引入.
數據結構說明:
A.jar 依賴 B.jar, B.jar 依賴 C.jar 如果只導入A.jar 則自動依賴B/C
3.1.5.1 Jar傳遞性的實現原理
實現原理:
1. 當maven掃描依賴信息時,會根據坐標找到對應的jar包文件.
2. 之後掃描當前目錄下的xxx.pom文件
3. 根據pom文件中的依賴項dependency 再次查找其它的依賴jar包,直到所有jar包依賴完成為止.
3.1.5.2 jar包傳遞安全性問題(擴展知識)
問題: jar包文件都是通過網絡下載而來的,如何保證文件不被篡改???
3.1.5.3 sha1算法介紹
SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標准技術研究所(NIST)發布為聯邦數據處理標准(FIPS)。SHA-1可以生成一個被稱為消息摘要的160比特(20字節)散列值,散列值通常的呈現形式為40個十六進制數。
3.1.5.4 關於hash基本常識
如果數據相同,相同的hash算法 問 hash值是否相同?? 必定相同!!!
如果數據不同,相同的hash算法 問hash值是否相同?? 可能相同!!!
(hash碰撞)
常見hash 一般 8比特16進制數組成
3.1.5.5 工作原理
說明: 對原始數據進行hash計算 得到摘要信息, 獲得數據時 采用hash計算 比較2個的摘要信息,如果相同則數據相同,如果不同則數據必然被篡改.
3.2 關於項目依賴項
3.2.1 關於Springboot版本管理說明
說明: spring-boot-dependencies 是SpringBoot官網進行調試之後,將所有的關聯的jar包進行了定義.從根本上解决了jar包版本沖突的問題.
說明2: 如果需要引入其它的jar包文件,只需要添加jar包名稱即可.
說明3: 特殊的jar包文件 需要手動添加版本號
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3.3 關於build標簽作用
說明: 當springboot項目需要打包時,springBoot中的build標簽會起作用,將springBoot按照可以執行的方式打成jar包文件.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.jt.SpringbootDemo1Application</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果沒有build標簽 則項目啟動報錯如下.
3.4 關於配置文件說明
3.4.1 默認配置文件名稱
springboot項目 默認配置文件的名稱 application.properties 名稱一般固定,不會隨意更改.
3.4.2 properties語法說明
語法說明:
1. 數據結構 key=value
2. value中前後不要有空格
3. properties文件 程序默認讀取采用ISO-8859-1編碼結構 中文必定亂碼.
4. pro文件中key的名稱不能複用.
3.4.3 YML語法說明
語法說明:
1. 數據結構 key:(空格)value
2. key的關鍵字有層級縮進效果, 注意縮進.
3. YML文件默認采用UTF-8編碼格式 所以對中文友好.
4. value中不要有多餘的空格
5. YML文件中key的前綴可以複用. 注意層級3.5 動態為屬性賦值
3.5.1 入門案例
package com.jt.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//注解說明: @RestController = @Controller + @ResponseBody
//效果: 1. @Controller 將當前類交給Spring容器管理
// 2. @ResponseBody 前後端交互時,將後端服務器返回的對象轉化為JSON
// 前後端交互媒介 http協議 傳輸的數據都是字符串
// JSON: 有特殊格式的字符串
@RestController
public class HelloController {
private String name = "李四";
/**
* URL: http://localhost:8080/getName
* 返回值: 變量的name屬性
*/
@RequestMapping("/getName") //建議大家寫絕對路徑
public String getName(){
return name;
}
}
3.5.2 需求說明
由於下列的代碼 將將名稱直接寫死到變量中,如果後續需要修改,則需要改變源碼. 後期維護不便.
解决方案: 為屬性動態賦值.
3.5.3 編輯YML文件
3.5.4 編輯HelloController
@RestController
public class HelloController {
//作用:從Spring容器中獲取數據,需要指定key
// $ springel spel錶達式
@Value("${cgbname}")
private String name; // = "王五";
/**
* URL: http://localhost:8080/getName
* 返回值: 變量的name屬性
*/
@RequestMapping("/getName") //建議大家寫絕對路徑
public String getName(){
return name;
}
}
3.6 利用pro文件為屬性賦值
3.6.1 業務說明
問題: YML文件是Spring的核心配置文件. 主要的目的是為了整合第三方框架而使用的. 如果將
大量的業務數據寫到YML文件中,則會導致代碼結構混亂.
解决方案: 可以使用pro文件實現業務數據處理.3.6.2 編輯pro配置文件
cgbname2=齊天大聖
3.6.3 實現數據賦值操作
package com.jt.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//注解說明: @RestController = @Controller + @ResponseBody
//效果: 1. @Controller 將當前類交給Spring容器管理
// 2. @ResponseBody 前後端交互時,將後端服務器返回的對象轉化為JSON
// 前後端交互媒介 http協議 傳輸的數據都是字符串
// JSON: 有特殊格式的字符串
@RestController
//加載指定配置文件,並且設定字符集編碼格式
@PropertySource(value = "classpath:/name.properties",encoding = "UTF-8")
public class HelloController {
//作用:從Spring容器中獲取數據,需要指定key
// $ springel spel錶達式
@Value("${cgbname}")
private String name; // = "王五";
@Value("${cgbname2}") //該屬性是pro文件中,必須要求spring容器加載pro文件
private String name2;
/**
* URL: http://localhost:8080/getName
* 返回值: 變量的name屬性
*/
@RequestMapping("/getName") //建議大家寫絕對路徑
public String getName(){
return name+"|"+name2;
}
}
4.1 關於maven項目加載問題
有時可能創建項目 不是maven ,需要右鍵點擊加載.
4.2 Spring容器如何理解
4.2.1 關於IOC的說明
IOC: 控制反轉
具體含義: 將對象創建的權利交給Spring容器管理.
原因: 如果將對象自己管理,則必然出現耦合性高的現象. 不方便擴展
容器: 是一種數據結構類型 Map<K,V>集合
KEY: 類名首字母小寫
Value: Spring為當前的類創建的對象.
只要程序啟動成功,則Map集合中(容器),裏邊包含了所有的IOC管理的對象
任務說明
vue脚手架安裝
視頻名稱 VUE後臺脚手架安裝過程 一周後使用 上課時會給大家一個完整的項目
虛擬機安裝
VMware配置說明 大約課時第15天左右開始使用
SpringBoot開箱即用原理(面試問題)
SpringBoot開箱即用原理
SpringMVC 調用流程
版权声明
本文为[[email protected]@yxg]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/177/202206261820089148.html
边栏推荐
猜你喜欢

50行代码爬取Top500图书导入TXT文档

Interview key points that must be mastered index and affairs (with B-tree and b+ tree)

Runtimeerror: CUDA error: out of memory own solution (it is estimated that it is not applicable to most people in special circumstances)

ISO documents

Introduction to Ethereum Technology Architecture

最小生成树、最短路径、拓扑排序、关键路径

Detailed explanation of asymmetric cryptosystem

博云,站在中国容器潮头

CLion断点单步调试

DVD-数字通用光盘
随机推荐
ISO documents
Image binarization
ISO文件
判断某个序列是否为栈的弹出序列
一些基本错误
Plt How to keep show() not closed
A little experience of next (ITER (dataloader))
Concept and working principle of data encryption standard (DES)
Conditional compilation in precompiling instructions
JS common regular expressions
Properties file garbled
基于tensorflow的手写数字识别
Detailed explanation of dos and attack methods
微信小程序 自定义 弹框组件
Example of using QPushButton style (and method of adding drop-down menu to button SetMenu)
Paging query and join Association query optimization
DVD-数字通用光盘
sql中的几种删除操作
博云,站在中国容器潮头
Map and filter methods for processing scarce arrays