1. 项目介绍
这是一个springboot单体的项目使用的是聚合工程,包含基础RBAC模块,主要使用的是:springboot 、mybatis-plus、webflux、mysql、redis、rabbitmq等技术。
2. 搭建基础框架
首先,创建一个基础的maven工程不用勾选 Create from archetype 直接下一步
配置好你的工程信息,点击finish创建工程
这时候一个根工程就创建好了,因为根工程我们不写代码所以可以将src目录删除
在根工程下创建module工程,点击项目右击 new -> module 创建module工程
和创建根工程一样也是创建一个maven工程不需要勾选 Create from archetype直接下一步
设置你的工程信息,记得要将parent设为<None>
继续在根工程下创建一个module工程同上一步,最后这就是创建的一个简单的聚合工程。
server工程会直接引入module中的所有工程作为一个服务总工程,过滤器权限校验这些都会放在这个工程下面,module是一个空的maven工程里面包含了许多工程我这边只创建了common(通用工程)和 admin-user(基础RBAC工程)后续如果你根据业务需要可以自己添加工程就可以要记得引入到server中。
3. 引入需要的依赖
因为我创建了一个通用(common)工程,所以我把一下基础依赖都放在common工程的pom.xml文件中这样其他模块直接引入common工程就可以使用了。
引入springboot 父级依赖主要是用来统一定义配置和统一依赖及版本,当然你也可以不引入只要你自己定义好配置和依赖版本就可以
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/>
</parent>
引入springboot web启动器依赖,因为spring-boot-starter-web中包含内嵌的tomcat容器,我这边用的是webFlux 是netty 所以 需要排除 tomcat容器依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
其他的依赖就不一一赘述,你也可以根据自己需要去增删依赖,我这边贴出common工程中引入的所有依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--数据库连接驱动 连接配置修改时间-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!--简略get、set方法-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.14</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.8</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
在admin-user工程中引入common工程,直接在admin-user pom.xml引用common即可
<dependency>
<groupId>com.swh</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
</dependency>
在server工程引入 admin-user 工程
<dependency>
<groupId>com.swh</groupId>
<artifactId>admin-user</artifactId>
<version>1.0.0</version>
</dependency>
到此项目的基础框架就准备就绪了后面我们开始去正式写代码。