此文檔是在課上根據操做流程整理,更多細節請參見劉老師的專欄java
《cgb2008-京淘day01》web
工做3~5年以後算法
單體架構模式:將全部的功能模塊寫到一個tomcat服務器中。tomcat併發能力:200/秒,帶寬:10M。spring
www.jd.com:80 "IP+端口"的方式只能訪問一個服務器sql
防火牆 /網絡安全 --> 反向代理服務器(公司訪問的惟一入口) --> 服務分發給不一樣的tomcat服務器 --> 緩存服務器集羣... --> 中間件[保護數據庫的規則] --> 數據庫代理 --> 數據庫服務器(本身維護)主機/寫操做 --> 從機(備份)/讀操做 [讀寫分離] --> 從機... [負載均衡][高可用]
祕籍:想象成爲找對象的業務場景!!!(從心裏(本身)出發)數據庫
i. 一對一:商品與描述緩存
1) 商品與描述一對一;2) 描述與商品一對一tomcat
關聯關係:本身的主鍵\<pk>充當別人的外鍵\<fk>,主鍵和外鍵一致。安全
ii. 一對多:分類與商品springboot
<u>有外鍵的表通常與關聯表是一對一,關聯表與加外鍵的表是一對多。</u>
1) 分類與商品一[主]對多;2) 商品與分類一[主]對一[外]
關聯關係:主鍵不能夠重複,通常條件下<u>外鍵能夠重複</u>,主鍵和外鍵不一致。
iii. 多對多(實質:雙向一對多):角色與權限
1) 一個角色對應多個權限; 2) 一個權限被多個角色所具備
表的個數:3張表 --> 角色表[role_id\<pk>] + 權限表[pri_id\<pk>]
+ 角色權限關係表[id,role_id\<fk1>,pri_id\<fk2>] 聯合主鍵:<fk1,fk2>
導入數據庫
導入的命令 source 路徑:/xxx.sql
i. 安裝數據庫工具 -- SQLyog
ii. 導入數據庫
右鍵 --> 從腳本文件建立數據庫 --> 選擇jtdb.sql
關於Maven說明
Maven是一站式項目管理工具,能夠建立項目,管理項目,項目打包,依賴、發佈等。
i. 關於Maven座標的說明
中央倉庫jar <--> 代理(私服鏡像-阿里雲) <--> 本地庫
Maven中有不少其餘機構開源的jar包,未來經過座標的形式進行統一管理。
jar包位置:D:\JavaDevelop\localRepo\org\springframework\boot\spring-boot-starter\2.4.0
<dependency> <groupId>org.springframework.boot</groupId> 公司域名倒寫 <artifactId>spring-boot-starter-web</artifactId> 項目名 <version>2.4.0</version> 版本號 </dependency>
ii. 關於maven中jar包依賴傳遞性的說明
在maven項目中若是A.jar依賴B.jar,B.jar依賴於C.jar。當程序經過maven引入A.jar的時候會自動引入B/C.jar。
原理:1) 當用戶添加jar包文件時,maven工具會經過座標加載jar包;2) 加載完成加載完jar包以後,會解析其pom文件,看是否還有jar包依賴。
iii. maven工具如何保證jar包文件安全得傳遞
SHA-1(安全散列算法-1)能夠生成160位(20字節,40個十六進制數)的"消息摘要"。例如:junit-4.12.jar.sha1
常識:1) 若是數據相同,它的哈希值必定相同;2) 一個數據10k,一個數據1G,計算哈希值速度約等於同樣快。
A.jar --SHA1--> 消息摘要A.jar.sha1 -傳輸-> B.jar --SHA1 --> 消息摘要B.jar.sha1(對比是否相同)
http協議 --[數據證書 全球惟一 非對稱加密]--> https協議
對稱加密:加密和解密的祕鑰同樣,不能保證絕對安全。
非對稱加密:加密祕鑰和解密祕鑰配合使用,單看一把不能看出全貌。
pom.xml文件中標籤的做用(一)
i. 編輯在maven中展示的名稱
<name>springboot_demo1</name>
ii. maven打包方式
<!-- 打包種類:jar war pom(聚合項目 大型項目) --> <packaging>jar</packaging>
iii. 打包
clean(清空target目錄) --> compile(編譯源文件,生成target目錄) --> install(在target目錄和本地庫中生成項目的jar包)
iv. jar包文件運行測試
命令: java -jar xxxx.jar 退出: ctrl+c
i. 關於JDK配置
查找jdk的根目錄 --> 配置環境變量 (JAVA_HOME,%JAVA_HOME%\bin)
ii. 關於Maven說明
maven安裝路徑 --> maven配置文件
pom.xml文件中標籤的做用(二)
i. dependencies標籤
<!-- 2.依賴的做用:依賴須要的jar包文件 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <!-- spring-boot-starter-xxx 啓動項 開箱即用 只須要引入特定的jar包,進行簡單的配置,便可以使用該功能-->
ii. build標籤
<!-- 3.build標籤的做用: 讓程序使用maven命令時,按照指定插件運行 必須配置--> <build> <plugins> <plugin>
SpringBoot啓動流程
@SpringBootApplication
i. 元註解說明
修飾註解的註解稱之爲元註解
@Target({ElementType.TYPE}) //該註解對類有效 @Retention(RetentionPolicy.RUNTIME) //該註解運行期有效 @Documented //生成文檔信息 @Inherited //該註解是否容許被繼承
ii. 排除過濾器啓動
做用:因爲SpringBoot須要自動加載的項不少,要排除掉一些不加載的項
@ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} ), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class} )} )
iii. 配置類
經過註解得知,主啓動類就是一個配置類,做用是在啓動時有第三方的配置,則主動地加載,大的配置文件中包含小的
@SpringBootConfiguration
iv. 自動化地配置
1) @AutoConfigurationPackage:指定了SpringBootq啓動時包掃描的路徑 -- 主啓動類的同包或子包下;
2) @Import({AutoConfigurationImportSelector.class}):該註解主要表示當程序啓動時,SpringBoot內部會有多個選擇器依次啓動。選擇器啓動時會去加載指定的jar包文件,這時開箱啓用纔可使用。
@EnableAutoConfiguration