工具
jdk1.8
IntelliJ IDEA
Maven
项目模块
主项目: demo-parent
子模块: demoweb、demoservie、demodao
简介
本次我们使用Maven的module形式进行分模块。这里简单介绍Maven的几个属性概念。
groupId | 公司或组织的项目名 |
artifactId | 模块名 |
packaging | 打包方式 |
module | 子模块名 |
对于这些子模块,我们需要建立起一个统一的parent来进行管理,这里我们建立一个demoparent项目
再在父模块中新建子模块,删除子模块中除web模块以外所有模块src/main/java下的所有文件
我们删掉父模块中的src目录,再对它的pom.xml作如下修改:添加modules
demoparent模块
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>demoparent</name>
<description>Demo project for Spring Boot</description>
<!--子模块-->
<modules>
<module>demodao</module>
<module>demoweb</module>
<module>demoservice</module>
</modules>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<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>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
对demoweb作如下修改demmoweb模块
<?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>
<!--此处修改为父模块的信息-->
<parent>
<groupId>com.example</groupId>
<artifactId>demoparent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--从父模块中寻找-->
<relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demoweb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demoweb</name>
<description>Demo project for Spring Boot</description>
<!--父模块中出现过的properties可省略-->
<properties>
</properties>
<!--父模块中出现过的依赖可省略-->
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>demodao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>demoservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--唯一启动类配置-->
<configuration>
<mainClass>com.example.DemowebApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
demoweb中的application.properties文件,不配置sql信息将会报错
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/new?serverTimezone=GMT&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
#session生命周期
server.servlet.session.timeout=30m
demodao模块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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.example</groupId>
<artifactId>demoparent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
</parent>
<!--maven可以继承夫项目中的groupId参数!-->
<!--<groupId>com.example</groupId>-->
<artifactId>demodao</artifactId>
<!--maven可以继承夫项目中的version参数!-->
<!--<version>0.0.1-SNAPSHOT</version>-->
<name>demodao</name>
<description>Demo project for Spring Boot</description>
<!--maven可以继承父项目中的properties-->
<!--<properties>-->
<!--<java.version>1.8</java.version>-->
<!--</properties>-->
<!--maven可以继承父项目的依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-test</artifactId>-->
<!--<scope>test</scope>-->
<!--</dependency>-->
</dependencies>
<build>
</build>
</project>
demoservice模块
<?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>
<parent>
<groupId>com.example</groupId>
<artifactId>demoparent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demoservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demoservice</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>demodao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
</build>
</project>
测试
在web模块中编写controller类并测试,启动web模块中的启动类,服务器成功响应并反馈结果。