温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-10-13 15:57:39 来源:亿速云 阅读:140 作者:柒染 栏目:编程语言

今天就跟大家聊聊有关怎么解析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-bomberspring: 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

看完上述内容,你们对怎么解析SpringBoot多模块项目框架搭建过程有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI