当前位置: 首页 > 编程笔记 >

SpringBoot多模块项目框架搭建过程解析

鲁淇
2023-03-14
本文向大家介绍SpringBoot多模块项目框架搭建过程解析,包括了SpringBoot多模块项目框架搭建过程解析的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了SpringBoot多模块项目框架搭建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

创建根项目,New Project 创建一个名为 sms-bomber 的 SpringBoot 新项目,打包为 JAR 的即可,这里只添加 Lombok 与 spring-boot-starter-web 依赖,这两个依赖会传递给所有子模块,删除创建完成的项目中的 .mvn\ src\ mvnw mvnw.cmd

创建启动模块,根目录项目名上右键 New -> Model 选择 Maven 类型,不要选择 create from archetype,Parent 属性选择刚才创建的根项目,先创建一个 ${PREFIXE}-start 的模块,用于启动项目,start 模块 resources 目录下创建

server:
 servlet:
  # 项目上下文路径
  context-path: /sms-bomber

spring:
 main:
  # 关闭 banner
  banner-mode: off
 profiles:
  # 测试环境
  active: dev-mysql
  # 生产环境
  # active: prod-mysql

以及 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">

  <!-- FIXME 记得更改如下配置 -->
  <!-- CONSOLE/FILE -->
  <property name="output-ref" value="CONSOLE" />
  <property name="logfile-dir" value="D:/Tmp/Log" />

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
      <charset>utf-8</charset>
    </encoder>
    <file>${logfile-dir}/ticket.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>${logfile-dir}/ticket.%i.log</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>5</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>1MB</maxFileSize>
    </triggeringPolicy>
  </appender>

  <root level="INFO">
    <appender-ref ref="${output-ref}" />
  </root>
  <!-- 指定包的日志等级 -->
  <!-- 使用 additivity="true" 会同时使用 appender-ref -->
  <logger name="com.seliote.smsbomber" level="DEBUG" additivity="false">
    <appender-ref ref="${output-ref}" />
  </logger>

</configuration>

创建项目启动类

package com.seliote.smsbomber;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 项目启动类
 *
 * @author LiYangDi
 * @since 2020/1/26
 */
@SpringBootApplication(scanBasePackages = "com.seliote.smsbomber")
public class Application {

  public static void main(String... args) {
    SpringApplication.run(Application.class, args);
  }
}

创建 Servlet 初始化类

package com.seliote.smsbomber;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/**
 * 打 WAR 包 Servlet 初始化
 *
 * @author LiYangDi
 * @since 2020/1/26
 */
public class ServletInitializer extends SpringBootServletInitializer {

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(Application.class);
  }
}

修改 IDEA 的启动类,尝试启动项目

修改启动模块打包方式为 war, 修改启动模块的 pom.xml,project 节点下添加 <packaging>war</packaging> 与

<build>
  <plugins>
    <!-- 打包配置 -->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <!-- war 包名 -->
        <finalName>sms-bomber</finalName>
      </configuration>
    </plugin>
  </plugins>
</build>

建一个 TestCtr,maven package 一下把 war 扔进 Tomcat 里体验一下

创建模块 persistence, service, web, common 层模块层模块,并配置相关依赖,根项目 pom.xml 里添加依赖 project 节点下添加,再依次

<!-- 用于多模块版本管理 -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.seliote</groupId>
      <artifactId>sms-bomber-common</artifactId>
      <version>${sms-bomber.version}</version>
    </dependency>
    <dependency>
      <groupId>com.seliote</groupId>
      <artifactId>sms-bomber-persistence</artifactId>
      <version>${sms-bomber.version}</version>
    </dependency>
    <dependency>
      <groupId>com.seliote</groupId>
      <artifactId>sms-bomber-service</artifactId>
      <version>${sms-bomber.version}</version>
    </dependency>
    <dependency>
      <groupId>com.seliote</groupId>
      <artifactId>sms-bomber-web</artifactId>
      <version>${sms-bomber.version}</version>
    </dependency>
    <dependency>
      <groupId>com.seliote</groupId>
      <artifactId>sms-bomber-start</artifactId>
      <version>${sms-bomber.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mariadb.jdbc</groupId>
      <artifactId>mariadb-java-client</artifactId>
      <version>${mariadb.version}</version>
    </dependency>
  </dependencies>
</dependencyManagement>

dependencies 节点下添加用于全局模块使用

<dependency>
  <groupId>com.seliote</groupId>
  <artifactId>sms-bomber-common</artifactId>
</dependency>

${sms-bomber.version} 等版本定义在 properties 标签下定义

persistence 模块的 pom.xml 下添加依赖

<dependencies>
  <!-- MariaDB 驱动 -->
  <dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <scope>runtime</scope>
  </dependency>
  <!-- 持久层框架 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>
</dependencies>

service 模块 pom.xml 下添加

<dependencies>
  <dependency>
    <groupId>com.seliote</groupId>
    <artifactId>sms-bomber-persistence</artifactId>
  </dependency>
</dependencies>

web 模块 pom.xml 下添加

<dependencies>
  <dependency>
    <groupId>com.seliote</groupId>
    <artifactId>sms-bomber-service</artifactId>
  </dependency>
</dependencies>

start 模块 pom.xml 下添加

<dependencies>
  <dependency>
    <groupId>com.seliote</groupId>
    <artifactId>sms-bomber-web</artifactId>
  </dependency>
</dependencies>

配置 SpringDataJpa

dev yml 下添加

spring:
 datasource:
 driver-class-name: org.mariadb.jdbc.Driver
 url: jdbc:mariadb://127.0.0.1:3306/sms_bomber
 username: sms_bomber
 password: 123456!@#$%^qp
 jpa:
 database-platform: org.hibernate.dialect.MariaDB103Dialect
 open-in-view: false
 show-sql: true

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 12.1 快速启动 12.2 框架设计 12.3 分层操作 12.4 数据库设计 12.5 路由设计 12.6 webpack2环境搭建 12.7 使用react.js 12.8 登录注册功能实现 12.9 session登录态判断处理

  • 本文向大家介绍SpringBoot框架搭建教程分享,包括了SpringBoot框架搭建教程分享的使用技巧和注意事项,需要的朋友参考一下 SpringBoot几乎集成了SpringMVC的所有内容,以及tomcat容器,同时去除了繁复的xml配置文件,开发起来十分方便;页面配合thymeleaf模板渲染也是非常简单,如果是前后端分离的项目,那么SpringBoot就专门负责提供restful风格的a

  • 本文向大家介绍详解idea搭建springboot+mybatis框架的教程,包括了详解idea搭建springboot+mybatis框架的教程的使用技巧和注意事项,需要的朋友参考一下 1.打开idea编译器,新建一个项目  2.选择Spring Initializr 勾选Default,完成之后点击【Next】 3.创建项目的文件目录结构以及选择jdk版本信息,设置完成后点击【Next】 4.

  • 实现概要 koa2 搭建服务 MySQL作为数据库 mysql 5.7 版本 储存普通数据 存储session登录态数据 渲染 服务端渲染:ejs作为服务端渲染的模板引擎 前端渲染:用webpack2环境编译react.js动态渲染页面,使用ant-design框架 文件目录设计 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master

  • 前言 由于demos/project 前端渲染是通过react.js渲染的,这就需要webpack2 对react.js及其相关JSX,ES6/7代码进行编译和混淆压缩。 webpack2 安装和文档 可访问网https://webpack.js.org/ 配置webpack2编译react.js + less + sass + antd 环境 文件目录 └── static # 项目静态文件目录

  • 本文向大家介绍vue-cli3.0 脚手架搭建项目的过程详解,包括了vue-cli3.0 脚手架搭建项目的过程详解的使用技巧和注意事项,需要的朋友参考一下 1.安装vue-cli 3.0 安装成功后查看版本:vue -V(大写的V) 2.命令变化 用法:create [options] <app-name> 创建一个由 `vue-cli-service` 提供支持的新项目 选项:   -p, --