您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么解析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多模塊項目框架搭建過程有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。