經常使用項目設計

1 經常使用項目設計框架

image.png
1.1 用戶在訪問服務器時由於併發量比較大,一般使用多臺服務器來解決高訪問的問題。而域名、端口等統一且惟一,用戶不可能在輸入網址時不斷的修改,所以用統一的代理服務器做爲惟一的入口,再進行分配。java

1.2 數據庫端一樣爲減小訪問量,增添了緩存服務器。以及主從數據庫,裏面數據徹底相同。一旦主機出現的故障,會根據特定算法自動切換到從機上。web

2 項目表設計

2.1 表與表之間的關係

2.1.1 一對一

image.png
一個商品對應一個商品描述,一個商品描述對應一個商品。
一般將一個表中的主鍵充當另外一個表中的外鍵。(pk--主鍵,fk--外鍵)算法

2.1.2 一對多

image.png
一個商品分類中對應多個商品,但一個商品卻只屬於一個商品分類。(當以某個對象爲主體時,則以此對象爲參考點。在以商品爲參考點時,此時已經選中了這個商品,即有且只有一個,只對應一個商品分類。)spring

2.1.3 多對多

image.png
一個角色對應多個權限,一個權限對應多個角色。(多對多並非指多個對象對多個對象,而是咱們在選取這個對象時,這個對象已經被肯定下來了,有且只有一個。這個‘多’表示其餘對象與它的關係。)sql

2.2 導入數據庫

導入指令; source 路徑/xxx.sql
image.png
('/'和'\' 都同樣,在導入時能夠先找到sql文件,先輸入指令 source+空格 而後將文件直接拉入,再回車便可,也可經過其餘工具導入。)
image.png數據庫

2.3 IDEA配置環境

2.3.1 JDK配置

2.3.1.1 輸入變量名,並找到對應的JDK安裝根目錄

image.png

image.png

3.3.1.2 在path上新建該變量

image.png

3.3.1.3 檢測JDK安裝是否成功

輸入指令:java -version
image.png緩存

2.3.2 IDEA經常使用配置

2.3.2.1 安裝Lombok插件

image.png

2.3.2.2 設置習慣的快捷鍵

image.png

2.3.2.3 修改鼠標縮放

image.png

2.3.2.4 智能提示

image.png

2.3.2.5 構建項目

image.png

2.3.2.6 配置maven

image.png

2.3.2.7 配置自動保存

image.png

2.3.2.8 修改自動提示

image.png

2.3.2.9 設置編碼

image.png

2.3.3 設置背景顏色

image.png

3 SpringBoot高級應用

3.1 建立SpringBoot項目

image.png
image.png
image.png
image.png

3.2 關於Maven說明

Maven是一站式的項目管理工具,能夠建立項目、管理項目、項目打包、依賴、發佈等。安全

3.2.1 關於Maven座標的說明

Maven中有不少其餘機構的開源jar包文件,經過座標形式進行統一的管理。服務器

<dependency>
            <groupId>org.springframework.boot  公司域名倒寫</groupId>
            <artifactId>spring-boot-starter-web 項目名稱</artifactId>
            <version>XX  版本號</version>
        </dependency>

jar包位置:
C:\The_four_step\maven\rep\org\springframework\boot\spring-boot-starter-web\2.4.1
image.png併發

3.3.2 關於maven中jar包依賴的傳遞性

在maven項目中若是A依賴B,B依賴C,當程序添加依賴A時,則一樣也添加了B,C依賴文件。
image.png

maven依賴的原理:
image.png
1 當用戶添加了jar包文件時,maven會根據jar包路徑查詢jar包文件
2 當加載完jar包後,會繼續解析該目錄下的自身帶有的pom文件,若是pom文件中包含jar包時,就會繼續加載。

3.3.3 maven工具如何實現jar包安全傳遞

當jar包完成下載時,本地庫中的jar文件數據會進行散列算法,而後與中央倉庫中的計算得出的散列值比較是否相等,以此來保證數據一致。

SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標準技術研究所(NIST)發佈爲聯邦數據處理標準(FIPS)。SHA-1能夠生成一個被稱爲消息摘要的160位(20字節)散列值,散列值一般的呈現形式爲40個十六進制數
image.png
常識:
1.若是數據相同,問: hash值是否相同? 值是相同的.
2.問 一個數據10K,一個數據1G 問 運算速度如何? 同樣快(約等於)

數據傳遞的流程:
image.png

3.4 SpringBoot POM.xml文件

3.4.1 maven在idea中展現的名稱

該名稱默認爲項目名。
image.png

3.4.2 maven打包方式

image.png
image.png
1 通常項目須要打包時,會先執行clean指令,表示清除 緩存,清除一些不須要但還存在在緩存中的數據。
2 而後再compile 從新編譯。
3 install 項目打包
image.png
打包後,會出現一個打包的jar包文件,便是咱們須要的打包文件;若是沒有出現,刷新下。

3.4.3 jar包文件運行測試

命令:java -jar 打包文件(xxx.jar)
image.png
測試的時候能夠在文件目錄下運行cmd
命令: ctr+c 表示退出

3.5 SpringBoot POM.xml文件-2

image.png
image.png

3.6 SpringBoot啓動流程

image.png
但項目啓動時,會找到main入口,對@SpringBootApplication註解進行解析。
image.png
ctr+鼠標右鍵 點擊此註解
image.png

3.6.1 元註解說明

此類註解爲元註解,用來修飾註解的註解
@Target(ElementType.TYPE) 限定註解的做用範圍(類裏面有效)
@Retention(RetentionPolicy.RUNTIME) 註解的生命週期,表示在運行期有效
@Documented 應該被javadoc記錄,動態生成文檔信息
@Inherited 表示類、子類能夠被繼承

3.6.2 排除過濾器啓動

@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
 @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
   /**
 * Exclude specific auto-configuration classes such that they will never be applied. * @return the classes to exclude
 */ @AliasFor(annotation = EnableAutoConfiguration.class)
   Class<?>[] exclude() default {};...

由於spring boot啓動時須要加載的不少,在這裏經過過濾器排除哪些不須要加載的,便是須要加載的了。(eg:求一個集合時,能夠對其求補集再取反)

3.6.3 SpringBootConfiguration中的註解

image.png
經過註解得知:主啓動類自己也是一個配置類
image.png

3.6.4 @EnableAutoConfiguaration

1 @AutoConfigurationPackage: 限定了spingBoot啓動時包掃描的路徑,只有在啓動類的同包及其子包下才會被掃描到。
2 @Import(AutoConfigurationImportSelector.class)
該註解主要表示當程序啓動時,springBoot內部會有多個選擇器依次啓動。選擇器啓動時會去加載指定的jar包文件。這時springBoot的開箱即用的做用才正式起做用。

相關文章
相關標籤/搜索