【SpringBoot】多模块项目结构搭建

前言:

必需学会SpringBoot基础知识

简介:

Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.

工具:

JDK8

apache-maven-3.5.2

IntelliJ IDEA 2018.1.3 x64

准备工作

通过之前章节进行改造,更符合企业需求。

先做一个简单 Web Flux 项目

理论分析

模型层: model

持久层: persostence

表示层: web

web 依赖 persostence

persostence 依赖 model

选中项目右键点击 New –> Module,选择 Maven 下一步 填写 artifactId (web) 然后,一直下一步到完成;

然后从原始项目里移植代码

如此类推的把另外一个也新建起来

好了!  下面到pom文件加入依赖, 大家应该也有看上面我写的准备工作把? 对 就按这个做!

first-app-demo

  1. 需要手动修改为pom
  2. <modules> 是在新建子目录的时候自动增加的,并非手动
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lwc</groupId>
    <artifactId>first-app-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <modules>
        <module>web</module>
        <module>persostence</module>
        <module>model</module>
    </modules>

    <!--修改成 pom-->
    <packaging>pom</packaging>
    <!--
        模型层: model
        持久层: persostence
        表示层: web

        web 依赖 persostence
        persostence 依赖 model

        web UserController -> UserRepository -> User

    -->

    <name>first-app-demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

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

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

web.pom

  1. web 依赖 persostence (复制persostence的<parent>里面的<groupId>、<version>、<artifactId>到 web 的 pom 文件里面)
<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>first-app-demo</artifactId>
        <groupId>com.lwc</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>web</artifactId>

    <dependencies>

        <!-- 添加对persostence依赖 -->
        <dependency>
            <groupId>com.lwc</groupId>
            <artifactId>persostence</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

    </dependencies>

</project>

persostence.pom

  1. persostence 依赖 model (原理和上面一样)
<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>first-app-demo</artifactId>
        <groupId>com.lwc</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>persostence</artifactId>

    <dependencies>
        <!-- 添加对model依赖 -->
        <dependency>
            <groupId>com.lwc</groupId>
            <artifactId>model</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

    </dependencies>

</project>

model.pom

  1. 不需要依赖任何东西
<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>first-app-demo</artifactId>
        <groupId>com.lwc</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>model</artifactId>

</project>
最后Build一下,启动项目。 完成!

源码下载

https://github.com/eddie-code/SpringBootDemo/tree/master/first-app-demo

原文地址:https://www.cnblogs.com/EddieBlog/p/9158931.html

时间: 2024-10-09 22:47:55

【SpringBoot】多模块项目结构搭建的相关文章

vue2项目结构搭建

vue2项目结构初搭建与项目基本流程 一.开始项目结构搭建的重要性 决定项目是否能够健康成长 决定了项目是否利于多人协作开发 决定了项目是否利于后期维护 决定了项目是否性能良好 决定了代码是否重用率降低 二.项目结构的搭建 围绕以上五点重要性进行项目结构的搭建 如图: 1.搭建出服务于vue2框架的文件 (1)router(路由)搭建,将所有的配置路由放入到router文件夹,并注入vue (2)store(vuex存储器)搭建,将vuex的存储器独立出一个文件夹统一管理,并注入vue 1)在s

2017-09-26 发布 SpringBoot多模块项目实践(Multi-Module)

https://segmentfault.com/a/1190000011367492?utm_source=tag-newest 2017-09-26 发布 SpringBoot多模块项目实践(Multi-Module) 原文地址:https://www.cnblogs.com/javajetty/p/9955082.html

记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)

大家好嘞,今天闲着没事干开写写博客,记录一下Maven+SpringBoot的多模块设计和遇到的坑. 多模块设计 简单说明一下截止目前的需求: 需要RESTful API:对文章.标签.分类和评论等的CRUD 要前台展示: 首页.归档.文章具体页等 后台管理:添加文章.新增标签之类 简单分析可以简单设计一个模块来组织代码,比如就叫oyster-blog. 但显然有个问题,这么设计会让代码比较混乱,比如我不能在同一个类中处理所有的请求,也不能分成三个类分别实现这三个功能. 比较好的设计是分成三个包

idea创建一个springboot多模块项目

一.创建空Maven项目 二.左边选择maven,右边可以什么不选,直接next: 三.填写artifactId,点击next直到finish 四.finish后,idea会生成如下结果模块,删除src,并在pom文件加上packing 五.创建第一个spring cloud模块 六.finish后的项目结构 七,同理创建module2模块,并在module1的pom.xml文件中加入module2的依赖 八.编写代码进行测试 1.在module的src中创建一个util 2.在module1中

Android实际开发中的首页框架搭建(一、项目结构搭建)

前段时间忙得不可开交,一直想抽个时间写一个博客,然后就一直拖到了现在,确实感觉有点愧疚... 这段时间买了几本书正在看,想让自己好好沉下心来,又去慕课网看了些视频,确实发现以前自己落下了蛮多知识点,还是有点收获, 所以,在此呼吁一下,干我们这行,需要不断学习,只有在学习中,才能明白自己有多水,才能让自己不断变强! 好了,进入正题,这一次准备了一些很基础的东西,但也是非常重要的东西,对于我们实际开发真的很有帮助 知识点一:使用BaseFragment/BaseActivity的作用:抽象到父类的思

vue 项目结构搭建 脚手架的搭建 Vue-cil

vue-cil :vue脚手架:提供基本项目结构 本身集成了很多项目模板: webpack: webpack-simple: mac 安装 前提示安装好node 1.输入 sudo npm install -g vue-cli 这个命令: 2.输入 vue 3.输入 vue init webpack-simple vue_demo 4进入cd vue_demo 5 安装 npm install p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0p

IDEA创建SpringBoot多模块项目

一.前言 在日常开发中,一个项目通常包含多个模块,所以需要创建多模块项目 二.创建过程 1.创建一个 父工程 2.创建好后删除父项目的多余文件/文件夹只留下 .idea文件夹 .pom.xml . *.iml 三个即可,如下图   3.修改父项目 pom.xml ,为其添加 <packaging>pom</packaging> 4.创建子模块 5.修改子模块的 pom.xml,声明父项目 6.在父项目中添加子模块声明: 7.接着创建模块的方法类似,在此,不再赘述 原文地址:http

IDEA SpringBoot多模块项目搭建详细过程(转)

文章转自https://blog.csdn.net/zcf980/article/details/83040029 项目源码: 链接: https://pan.baidu.com/s/1Gp9cY1Qf51tG9-5gUZsnHQ 提取码: 5izt CSDN源码下载: https://download.csdn.net/download/zcf980/10719615 1. 项目介绍: 本项目包含一个父工程 demo  和 四 个子模块(demo-base, demo-dao, demo-se

springboot多模块项目打war包

一.父模块配置 1,指定pakaging:pom 2,指定编译的版本:如下图: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.7</java.version> </properties> 3,屏蔽内置的tomcat: (1)这个内置的tomcat是在spring-boot-starter-w