目录
前言
本次的项目名为稻草问答,
关于项目的最终结构:
一、创建主项目
新建项目,选择SpringBoot的创建向导。
二、创建子模块项目
因为当前项目将采取分布式项目的开发模式,会将1个项目拆分为若干个微服务项目,但是,它们终究是会结合在一起运行的,所需要使用的技术体系甚至所需要使用的依赖的版本都应该是相同的,所以,需要使用一个父项目来管理各子模块项目(微服务项目)所使用的依赖及版本!
所以,在刚才创建出来的straw
项目中,所有与运行相关的文件及文件夹都可以删除,直接将项目的src
文件夹删除即可!(当然,保留下来也行,但是,用不上)
由于具体的功能是由各子模块项目来开发的,所以,接下来,创建straw-api-user
子模块项目,用于管理用户数据!在创建时,先对父项目straw
的名称点右键,选择New
> Module
:
然后,继续使用SpringBoot的创建向导完成创建过程:
直接下一步:
创建完成后,在项目的结构中就可以看到新创建的子模块项目:
接下来,需要调整项目的
pom.xml
文件!
先打开子模块项目straw-api-user
的pom.xml
,将父级项目改为straw
项目的参数:
然后,在straw
的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.tedu</groupId>
<artifactId>straw</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>straw</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-boot.version>2.3.3.RELEASE</spring-boot.version>
</properties>
<!-- 管理依赖 -->
<dependencyManagement>
<dependencies>
<!-- web:允许项目启动在Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
而straw-api-user
的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.tedu</groupId>
<artifactId>straw</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.tedu</groupId>
<artifactId>straw-api-user</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>straw-api-user</name>
<dependencies>
<!-- web:允许项目启动在Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
关于<dependencyManagement>
节点,它的作用是“管理依赖”,这个节点的子级是<dependencies>
节点,配置方式与一般的<dependencies>
节点完全相同!凡是配置在<dependencyManagement>
节点中的依赖,不会被子模块项目直接拥有!配置该节点的主要目的是配置各依赖的版本,在子模块项目中,仍需要通过<dependencies>
节点来添加所需要的依赖,但是,不需要指定版本号,将会按照父项目指定的版本来下载并使用!
注意:只要改了pom.xml
文件,就必须打开Maven面板点击刷新按钮,否则,即使添加了新的依赖的代码,在编写项目时也无法识别!
调整完成后,启动子模块项目,是可以成功启动的:
三、连接MySQL数据库
首先,需要在straw
的pom.xml
中添加管理数据库编程的相关依赖,依赖的参考代码:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
将straw
的pom.xml
调整为:
并在
straw-api-user
中添加依赖(注意:此时要将版本号去掉!):
提示:添加完成后,需要再次更新Maven才可以生效!
由于SpringBoot框架有“自动配置”机制,当添加数据库的依赖后,每次启动时,会自动读取数据库配置,如果没有配置,则会报错:
先登录MySQL控制台,创建straw
数据库:
需要在
straw-api-user
的application.properties
文件中进行配置:
spring.datasource.url=jdbc:mysql://localhost:3306/straw?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
注意:以上配置中的username
和password
的值,要以自己电脑上的MySQL的配置为准!
再次运行: