一.基于idea用springboot搭建多模块项目
1.创建多模块项目,选择spring Initializr 构建sringboot的父类模块
设置好Group,Artifact候直接下一步创建项目
删除多余的文件使springboot-parent父项目只用于管理各个子模块所需jar包的版本
2.子模块的创建
项目右击新建子模块
子模块用maven方式创建
用上面的方式创建多个模块,最后结构如图
3.各模块pom.xml的依赖包和各子模块依赖关系
springboot-parent的pom.xml文件,主要用来管理包依赖版本,不需要导入spring-boot-maven-plugin组件
<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>
<packaging>pom</packaging>
<modules>
<module>springboot-web</module>
<module>springboot-service</module>
<module>springboot-dao</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.test</groupId>
<artifactId>sringboot-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sringboot-parent</name>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<mybatis.version>2.1.1</mybatis.version>
<fastjson.version>1.2.1</fastjson.version>
<druid.version>1.1.10</druid.version>
<lombok.version>1.16.8</lombok.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--json alibaba-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
springboot-web的pom.xml文件,web模块依赖于service模块,需要spring-boot-maven-plugin组件
<?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>sringboot-parent</artifactId>
<groupId>com.example.test</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springboot-web</artifactId>
<dependencies>
<!--引入service模块-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>springboot-service</artifactId>
<version>${project.version}</version>
</dependency>
<!--web的启动器-->
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.example.test.SpringbootApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
springboot-service的pom.xml文件,service模块依赖于dao模块
<?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>sringboot-parent</artifactId>
<groupId>com.example.test</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springboot-service</artifactId>
<dependencies>
<!--引入dao模块-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>springboot-dao</artifactId>
<version>${project.version}</version>
</dependency>
<!--aop启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--json alibaba-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
</dependencies>
</project>
springboot-dao的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>sringboot-parent</artifactId>
<groupId>com.example.test</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springboot-dao</artifactId>
<dependencies>
<!-- mybatis 依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--JDBC使用HikariCP连接池 启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--druid启动器-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
二.配置必要的文件
在web模块,加入springboot应用启动文件
创建如图文件
application.properties需要引入mybatis的配置
#######数据库配置###########
#数据库驱动
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
#数据库连接url
spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
#数据库账号
spring.datasource.druid.username=
spring.datasource.druid.password=
#初始化大小,最小空闲,最大链接
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
#获取连接等待的超时时间 毫秒
spring.datasource.druid.max-wait=60000
#检测需要关闭的空闲连接的间隔时间 毫秒
spring.datasource.druid.time-between-eviction-runs-millis=300000
#设置空闲时是否检测连接可用性
spring.datasource.druid.test-while-idle=true
#获取连接时是否检测连接可用性
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
###########Mybatis配置#############
#mybatis的mapper文件位置
mybatis.mapper-locations=classpath:mapper/*.xml
三.项目打包
1.需要把依赖的子模块install
点击springboot-parent的install把所有模块变成jar存入maven版本库中
点击springboot-web的package打包项目
2.把打包好在项目target下生产的springboot-web-0.0.1-SNAPSHOT.jar复制出来,按
java -jar springboot-web-0.0.1-SNAPSHOT.jar启动项目即可
启动项目