单体应用-SpringBoot-(1)划分模块

几乎完全参考自SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程

目前由下到上划分了几个模块:
common : 常用比如工具类等
core : 打算用来放一些系统级别相关的类,配置等
dao : 数据层
service : 服务层
web : 前后端分离的话主要就剩下Controller了

下面是项目和每个模块的pom

项目的pom

需要注意的是packaging为pom。
声明每个子模块。
打包使用的插件,暂时还没深入了解,理解应该有错误。
目前我知道的是要打成war包的话,需要SpringBoot帮忙生成WEB-INF, DispatcherServlet等,所以得用spring-boot-maven-plugin。
网上还看到说打包成war还需要排除springboot的内置tomcat,我测试了下没排除的话,没发现什么影响。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <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.funwe</groupId>
    <artifactId>spfun</artifactId>
    <version>0.0.1</version>
    <name>spfun</name>
    <description>spfun</description>
    <packaging>pom</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <!-- 子模块 -->
    <modules>
        <module>common</module>
        <module>core</module>
        <module>dao</module>
        <module>service</module>
        <module>web</module>
    </modules>

    <!-- 依赖 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</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>
            <!-- Web打成JAR包运行时使用 -->
            <!--
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${
   
   java.version}</source>
                    <target>${
   
   java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                
### 搭建方法 #### 创建主模块 首先创建主模块,例如名为 `business` 的主模块。在 IDEA 中可以创建 Spring Boot 项目作为主模块。主模块主要用于管理子模块和配置全局信息。 #### 创建子模块 在主模块下创建不同功能的子模块,如 `controller`、`service` 等。子模块可以专注于特定的业务功能,提高代码的可维护性和复用性。 #### 添加依赖 在 `pom.xml` 文件中添加所需的依赖,以支持项目的各项功能。例如,添加 Spring Boot 相关依赖、数据库驱动依赖等。 #### 配置主启动类 创建主启动类,如 `HelloApplication`,使用 `@SpringBootApplication` 注解标记该类,并在 `main` 方法中启动 Spring Boot 应用: ```java package com.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HelloApplication { public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } } ``` #### 创建控制器 在 `controller` 模块中创建控制器类,处理 HTTP 请求。例如创建 `TestController` 类: ```java package com.hng.business.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @RequestMapping("/test") public String hello() { return "Hello"; } } ``` ### 开发要点 #### 模块划分 合理划分模块,将不同的业务功能封装在不同的模块中,例如将数据访问逻辑放在 `dao` 模块,业务逻辑放在 `service` 模块,Web 接口放在 `controller` 模块。 #### 依赖管理 确保各个模块之间的依赖关系清晰,避免循环依赖。在 `pom.xml` 中正确配置模块之间的依赖。 #### 配置管理 使用 `application.properties` 或 `application.yml` 文件进行配置管理,根据不同的环境(开发、测试、生产)使用不同的配置文件。 #### 接口设计 设计清晰、简洁的接口,遵循 RESTful 风格,保证接口的可读性和可维护性。 ### 最佳实践 #### 版本控制 使用版本控制系统(如 Git)管理代码,定期提交代码,方便团队协作和代码回溯。 #### 单元测试 编写单元测试代码,对各个模块的功能进行测试,保证代码的质量和稳定性。 #### 日志管理 使用日志框架(如 Logback)记录系统运行信息,方便排查问题。 #### 持续集成与部署 使用持续集成工具(如 Jenkins)实现代码的自动化构建和部署,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值