1.创建父工程

(1).创建movies_parent工程

1.项目工程搭建_maven


1.项目工程搭建_maven_02


1.项目工程搭建_spring_03


1.项目工程搭建_spring_04


1.项目工程搭建_spring boot_05

(2).删除无用文件

1.项目工程搭建_xml_06

(3).修改pom文件

<?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.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.steven.movies</groupId>
<artifactId>movies_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>movies_parent</name>
<description>电影父工程</description>
<!-- 打包方式 -->
<packaging>pom</packaging>

<properties>
<java.version>8</java.version>
<!-- SpringCloud版本-->
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- spring-cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>

2.创建通用工程

(1).创建movies_common模块

1.项目工程搭建_java_07


1.项目工程搭建_maven_08


1.项目工程搭建_spring boot_09


1.项目工程搭建_java_10

(2).删除无用文件后的工程结构

1.项目工程搭建_spring_11

(3).修改pom

<?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版本-->
<parent>
<groupId>com.steven.movies</groupId>
<artifactId>movies_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupId>com.steven.movies</groupId>
<artifactId>movies_common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>movies_common</name>
<description>公共模块</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<build>
<!-- 资源引入 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
</project>

(4).在父pom文件中添加module,并将common作为依赖给其它模块引入

<?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.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.steven.movies</groupId>
<artifactId>movies_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>movies_parent</name>
<description>电影父工程</description>
<!-- 打包方式 -->
<packaging>pom</packaging>

<!-- 子模块 -->
<modules>
<module>movies_common</module>
</modules>

<properties>
<java.version>8</java.version>
<!-- SpringCloud版本-->
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- movies_common -->
<dependency>
<groupId>com.steven.movies</groupId>
<artifactId>movies_common</artifactId>
<version>${project.version}</version>
</dependency>

<!-- spring-cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>

(5).现有项目工程结构

1.项目工程搭建_spring_12

3.创建其它子模块
(1).步骤

  1. 按照common模块创建方式,依次创建movies_user、movies_cinema、movies_hall、movies_film、eureka_server和zuul_server子模块
  2. 删除每个子模块中的无用文件
  3. 修改每个子模块pom文件中的parent版本
  4. 父pom文件中增加每个子模块的module信息

(2).现有项目工程结构

1.项目工程搭建_spring_13

(3).最终父pom文件

<?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.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.steven.movies</groupId>
<artifactId>movies_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>movies_parent</name>
<description>电影父工程</description>
<!-- 打包方式 -->
<packaging>pom</packaging>

<modules>
<module>movies_common</module>
<module>movies_user</module>
<module>movies_cinema</module>
<module>movies_hall</module>
<module>movies_film</module>
<module>movies_api</module>
<module>eureka_server</module>
<module>zuul_server</module>
</modules>

<properties>
<java.version>8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
<mybatis.plus.version>3.2.0</mybatis.plus.version>
<druid.version>1.1.10</druid.version>
<mysql.version>8.0.13</mysql.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.12</junit.version>
<lombok.version>1.18.16</lombok.version>
<jjwt.version>0.9.0</jjwt.version>
<json.version>2.0.19</json.version>
<guava.version>28.1-jre</guava.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.steven.movies</groupId>
<artifactId>movies_common</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>com.steven.movies</groupId>
<artifactId>movies_api</artifactId>
<version>${project.version}</version>
</dependency>

<!-- spring-cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>

<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>

<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>

<!-- 数据源驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>

<!-- 日志框架 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>

<!-- junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>

<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>

<!-- jwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>

<!-- json -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${json.version}</version>
</dependency>

<!-- guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>

4.数据准备
(1).user表

CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(100) NOT NULL,
`create_time` datetime(6) NOT NULL,
`update_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into user values (1, 'steven','0192023a7bbd73250516f069df18b500','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into user values (2, 'sherry','0192023a7bbd73250516f069df18b500','2022-12-16 18:18:18', '2022-12-16 18:18:18');

(2).cinema表

CREATE TABLE `cinema` (
`id` int(11) NOT NULL,
`cinema_name` varchar(100) NOT NULL,
`cinema_address` varchar(100) NOT NULL,
`hall_ids` varchar(100) NOT NULL,
`create_time` datetime(6) NOT NULL,
`update_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into cinema values (1, '苏宁影城','南京市清江广场','1#2#3','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into cinema values (2, '万达影城','南京市河西万达','1#2','2022-12-16 18:18:18', '2022-12-16 18:18:18');
insert into cinema values (3, '万象影城','南京万象天地','1','2022-12-16 20:18:18', '2022-12-16 20:18:18');

(3).hall表

CREATE TABLE `hall` (
`id` int(11) NOT NULL,
`cinema_id` int(11) NOT NULL,
`hall_name` varchar(100) NOT NULL,
`create_time` datetime(6) NOT NULL,
`update_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into hall values (1, 1,'1号厅','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into hall values (2, 1,'2号厅','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into hall values (3, 1,'3号厅','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into hall values (4, 2,'南京厅','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into hall values (5, 2,'上海厅','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into hall values (6, 3,'巨幕厅','2022-12-16 08:08:08', '2022-12-16 08:08:08');

(4).film表

CREATE TABLE `film` (
`id` int(11) NOT NULL,
`hall_id` int(11) NOT NULL,
`film_name` varchar(100) NOT NULL,
`price` decimal(5,2) NOT NULL,
`show_time` datetime(6) NOT NULL,
`create_time` datetime(6) NOT NULL,
`update_time` datetime(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into film values (1, 1,'阿凡达:水之道',88.88,'2022-12-17 08:08:08','2022-12-16 08:08:08','2022-12-16 08:08:08');
insert into film values (2, 1,'阿凡达:水之道',88,'2022-12-17 12:08:08','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into film values (3, 1,'阿凡达:水之道',88,'2022-12-17 18:08:08','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into film values (4, 2,'扫黑行动',28,'2022-12-17 08:08:08','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into film values (5, 2,'扫黑行动',28,'2022-12-17 18:08:08','2022-12-16 08:08:08', '2022-12-16 08:08:08');
insert into film values (6, 3,'狙击手',18,'2022-12-17 18:08:08','2022-12-16 08:08:08', '2022-12-16 08:08:08');