一、構建聚合工程
1.在idea中,右擊項目名稱 -- new -- module。
父工程的maven-pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>foodie-dev</artifactId>
<version>1.0-SNAPSHOT</version>
<!--
1.創建完子工程,記得來檢查子模塊是否加入。
-->
<modules>
<module>foodie-common</module>
<module>foodie-pojo</module>
</modules>
<!--
1.聚合工程可以分爲頂級項目(頂級工程、父工程)與子工程,兩者是父子繼承關係。
子工程在maven裏成爲模塊(module),模塊之間是平級的,是可以相互依賴的。
2.子模塊可以使用頂級工程裏所有的資源(依賴),子模塊如果要使用資源,必須構建依賴(構建關係)。
3.一個頂級工程是可以由多個不同的子工程共同組合而成。
-->
<packaging>pom</packaging>
</project>
子工程的maven-pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>foodie-dev</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<!--所有的模塊的默認的打包方式:jar-->
<!--<packaging>jar</packaging>-->
<artifactId>foodie-common</artifactId>
</project>
注意:只有在父工程中【maven最右側】,maven --> install才能真正建立相互的依賴關係。
二、PDMan數據庫建模工具使用
開源的。項目經理、產品經理去外面談事情的時候,使用這樣的建模工具生成的表,專業性。
增量(推薦:在原表上做修改。表太多的情況,效率低。)、原量(建一個臨時表,然後再將原表刪除,重新創建一個表)。
建表時:儘量不要使用表名“user”,它在mysql中,尤其是高版本中,是關鍵字。
數據庫外鍵:
1,性能影響。
數據庫三範式中,有一個是強調數據的完整性,如果表和表之間有關係,需要使用外鍵。
完整性、數據的強一致性。但是分佈式大型項目裏面,較多地修改刪除更新,需要檢查數據的完整性,所以儘量移除外鍵。
2,熱更新
不停機進行維護。外鍵是強一致性的,如果進行項目更新,必須要重啓項目,達不到熱更新的效果。
3,降低耦合度
不需要外鍵,不是刪除外鍵,是物理的這層關係不需要了。
比如地址表裏面的userid,不需要建立物理外鍵,這個字段可以保留着。
4,數據分庫分表
分佈式數據庫,如果存在外鍵,不方便做分庫分表。尤其是隨着業務增多,表增多,導致外鍵非常多的時候,會給運維人員、DBA帶了來壓力。
如果是小型項目,外鍵可有可無。
三、創建SpringBoot項目
默認設置:在@SpringBootApplication裏面
SpringBoot是如何自動裝配的?爲什麼會使用內置的Tomcat去運行?如何去運行的?
詳情請見:課程:步驟一 · 2-12 SpringBoot自動裝配簡述