一、构建聚合工程
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自动装配简述