springboot 多模块项目构建【创建√ + 启动√ 】

news2024/9/28 13:22:03

一、多模块项目构建

1. 先建立父级目录demo-parent

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 把父级目录src删除,再建立子级模块

在这里插入图片描述
在这里插入图片描述

3. 建立子级模块model,dao,service,common.utils等相同步骤

在这里插入图片描述

4. 建立启动模块boot, 创建Spring Boot 启动类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.example;

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

/**
 * Hello world!
 *
 */
@SpringBootApplication(scanBasePackages = "com.example")
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class, args);
    }
}

5. 修改依赖关系

5.1 根模块root的maven

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>demo-parent</name>
    <description>demo-parent</description>
    <modules>
        <module>demo-model</module>
        <module>demo-dao</module>
        <module>demo-service</module>
        <module>demo-common</module>
        <module>demo-utils</module>
        <module>demo-boot</module>
    </modules>

5.2 根模块打包插件

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

5.3 启动模块boot,记得添加web的controller的依赖

<dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>demo-web</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
    </dependencies>
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>
                        com.example.demo.BootApplication
                    </mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

5.4 其他没有启动类的模块添加以下

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

5.5 然后逐一添加依赖

web依赖 service
<dependency>
            <groupId>com.example</groupId>
            <artifactId>demo-service</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
service依赖 dao , common, utils ,model
<dependency>
            <groupId>com.example</groupId>
            <artifactId>demo-dao</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>demo-utils</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>demo-model</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>demo-common</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
dao依赖 model 等
boot启动模块依赖 web 的controller,其他自行添加依赖

6. 运行测试

6.1 dao下创建

package xyz.slienceme.wms;

import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.Mapping;

@Repository
public class DaoTest {

    public String DaoTest1(){
        System.out.println("dao打印了");
        return "www";
    }
}

6.2 service下创建

package xyz.slienceme.wms;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ServiceTest {
    @Autowired
    DaoTest daoTest;
    public void ServiceTest1(){
        System.out.println("ServiceTest打印了");
        String s = daoTest.DaoTest1();
        S

6.3 web下创建

package xyz.slienceme.wms;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import xyz.slienceme.wms.ServiceTest;
@RestController
public class ControllerTest {

    @Autowired
    ServiceTest serviceTest;
    @RequestMapping(value = "/demo", method = RequestMethod.GET)
    String ControllerTest1(){
        serviceTest.ServiceTest1();
        return "成功";
    }
}

6.4 启动boot按钮

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


springboot 多模块项目构建【打包√】点击这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

http服务转https服务(Nginx 服务器 SSL 证书安装部署)

安装的服务一直使用的是http&#xff0c;结果有客户要求必需使用https,下面是整理的步骤1、证书下载&#xff1a;&#xff08;要用域名申请的账号登录&#xff09;域名所在服务商一般都可以下载免费证书&#xff0c;我们用的域名是腾讯云的&#xff0c;所以在腾讯云上申请了免费…

高通开发系列 - gpio模拟输出PWM或者CLK时钟

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题背景平台信息GPIO输出CLKdts添加节点修改内核gcc时钟配置驱动文件编译运行gpio模拟PWM输出CLKdts中的配置GPIO模拟PWM驱动文件编译…

MSF信息收集

Nmap扫描 db_nmap -sV 192.168.1.0/24Auxiliary 扫描模块 ● RHOSTS表示 192.168.1.20-192.168.1.30 、 192.168.1.0/24,192.168.11.0/24&#xff08;扫描两个网段&#xff09; file:/root/host.txt (将需要扫描的主机访问文本中)● search arp use auxiliary/scanner/d…

网站收录查询方法,网站收录减少的原因

网站收录就是与互联网用户共享网址&#xff0c;网站收录前提是网站首页提交给搜索引擎&#xff0c;蜘蛛才会光顾&#xff0c;每次抓取网页时都会向索引中添加并更新新的网站&#xff0c;站长只需提供顶层网页即可&#xff0c;不必提交各个单独的网页。抓取工具能够找到其他网页…

华为matebook X 笔记本没开什么程序,有时经常慢卡

环境&#xff1a; 华为matebook X CPU &#xff1a;英特尔4核8线程10代 i5 内存&#xff1a;海力士16G 固态硬盘500G 问题描述&#xff1a; 华为matebook X 没开什么程序&#xff0c;经常慢卡&#xff0c;平时就是打开钉钉&#xff0c;处理处理文档&#xff0c;之前优化过…

模板题---1.5(单调栈,单调队列,kmp,manachar)

这里写目录标题1.单调栈2.单调队列3.kmp算法4.manachar算法这里记录几个基本的数据结构算法1.单调栈 要点&#xff1a; 数据结构是栈栈要维护单调性 这就是单调栈的基本定义 举个例子: &#xff08;栈底&#xff09;1 3 5 7 &#xff08;栈顶&#xff09; <-------这就是…

行为型模式 - 备忘录模式Memento

学习而来&#xff0c;代码是自己敲的。也有些自己的理解在里边&#xff0c;有问题希望大家指出。 模式的定义与特点 在备忘录模式&#xff08;Memento Pattern&#xff09;下&#xff0c;为的是在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象…

【C++ Primer】阅读笔记(2):const | constexpr | 类型别名 |auto

目录 简介const指针顶层const与底层const常量表达式constexpr类型别名auto参考结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过…

CTF中的PHP特性函数(下)

前言 上篇文章讲的进阶一些的PHP特性不知道大家吸收的怎么样了&#xff0c;今天作为本PHP特性函数的最后一篇&#xff0c;我也会重点介绍一些有趣的PHP特性以及利用方法&#xff0c;下面开始我们今天的内容分享。 parse_str parse_str()这个函数会把查询字符串解析到变量中。…

二叉树——链式存储

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;数据结构——二叉树 &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;上期讲了…

LinkedList与链表(一)(非循环单向链表)

ArrayList的缺陷通过ArrayList上节课的学习&#xff0c;我们了解到如果ArrayList要删除或插入一个元素&#xff0c;后面的元素都要进行移动&#xff0c;时间复杂度为O(n),效率比较低&#xff0c;因此ArrayList不适合做任意位置的插入和删除操作比较多的场景。因此java集合又引入…

Python if __name__ == “__main__“ 用法

文章目录1 前言2 原理3 __name__变量的作用参考1 前言 在很多Python程序中&#xff0c;我们都会遇到if __name__ "__main__"的情况&#xff0c;却不知道为何要这样做 在很多编程语言中&#xff0c;如C、Java等&#xff0c;都需要程序的入口&#xff0c;一般都是ma…

MySql锁机制(全网最全、最详细、最清晰)

1、MySql锁机制 锁机制的作用&#xff1a; 解决因为资源共享&#xff0c;而造成的并发问题。 没有锁机制时&#xff1a; 例如一号用户和二号用户都要去买同一件商品&#xff08;假如这件商品是一件衣服&#xff09;&#xff0c;一号用户手速稍微快了一些&#xff0c;于是就…

从事软件测试需要学自动化么

相信许多对软件测试有过一点了解的人&#xff0c;对自动化都不会感到陌生。我们常常会听到一定软件测试人员一定要学自动化的说法&#xff0c;那么很多人都会有这样的疑问&#xff0c;从事软件测试为什么要学自动化&#xff1f;事实上&#xff0c;如今只会功能测试的从业者往往…

光波导成为AR眼镜迭代新趋势,二维扩瞳几何光波导潜力彰显

关注AR眼镜的朋友可能都会发现&#xff0c;近期新品迭代的一个趋势是持续在小型化、轻量化方向演进。与一年前光学方案主要以BirdBath不同的是&#xff0c;消费级AR眼镜正快速向光波导方案探索和转变。这一点在最近发布的众多新品AR眼镜中就能明显的感受到&#xff0c;以视享G5…

堆排序 TopK 优先级队列的部分源码 JAVA对象的比较

一.堆排序:我们该如何借助堆来对数组的内容来进行排序呢&#xff1f; 假设我们现在有一个数组&#xff0c;要求从小到大进行排序&#xff0c;我们是需要进行建立一个大堆还是建立一个小堆呢&#xff1f; 1)我的第一步的思路就是建立一个小堆&#xff0c;因为每一次堆顶上面的元…

MGRE和ospf的综合运用

目录实验需求知识点实验过程一&#xff0c;在R1 R2 R3中的MGRE搭建二&#xff0c;在R1 R4 R5中的MGRE搭建三&#xff0c;整个内网的ospf协议实验需求 一 题目要求 1&#xff0c;R6为ISP代表运营商&#xff0c;只能配置ip地址&#xff0c;R1-R5环回 代表私有网段 2&#xff0c…

【Linux】顶级编辑器Vim的基本使用及配置

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux 文章目录一、前言二、vim基本概念三、vim 基本操作1、模式切换2、命令模式3、插入模式4、底行模式四…

[Vue的数据绑定]一.Vue的数据绑定;二.Vue的事件绑定;三.Class和Style的绑定;四.Vue的过滤器;五.Vue脚手架的使用

目录 一.Vue的数据绑定 1.单向数据绑定&#xff1a;将Model绑定到View上&#xff0c;当通过JavaScript代码改变了Model时&#xff0c;View就会自动刷新。不需要进行额外的DOM操作就可以实现视图和模型的联动 &#xff08;1&#xff09;插值表达式&#xff1a;{{ 表达式 }}&am…

pandas 使用

import pandas as pd a [3,7,2] myvar pd.Series(a,index["x","y","z"]) print(myvar["x"]) #结果是3 #给序列赋值index &#xff0c;然后可以根据index找到对应的数 data {"col1": range(-5,0), "col2": r…