以简单的例子从头开始建spring boot web多模块项目(一)

news2024/11/23 0:09:17

目的:从头梳理,如何手工从头建立多模块项目。
步骤:
1、建立maven项目,类型:maven Archetype,Name:ParentDemo
选择JDK版本,Archetype:org.apache.maven.archetypes:maven-archetype-quickstart
版本为1.1
在这里插入图片描述
2、在pom.xml文件中,修改Packaging为pom,groupId修改为需要的名称:
org.rainpet

<groupId>org.rainpet</groupId>
  <artifactId>ParentDemo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

3、为了做依赖管理,防止spring模块的版本冲突,添加dependencyManagement,添加spring-framework-bom包,这样子以后添加包时就不用指定版本了:

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.10.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-framework-bom</artifactId>
        <version>5.3.33</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.7.12</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.spring.platform</groupId>
        <artifactId>platform-bom</artifactId>
        <version>2.0.1.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

4、删除父项目parentDemo中的src目录
5、新建-模块,name:webDemo1
语言:java
构建系统:Maven
Parent:parentDemo
在这里插入图片描述

6、子项目webDemo1中的pom.xml文件中,添加依赖包:
spring-boot-starter-web
spring-boot-starter

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

7、webDemo1的pom.xml中添加build段

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.13</version>
                <configuration>
                    <mainClass>org.rainpet.Main</mainClass>
                    <layout>JAR</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

8、刷新项目,Main.java中,增加注解
@SpringBootApplication
main中,增加
SpringApplication.run(org.rainpet.Main.class,args);
即可以启动程序了,默认监听8080端口。

@SpringBootApplication
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(org.rainpet.Main.class,args);
        System.out.println("Hello world!");
    }
}

9、在webDemo1项目的src中,确认是否有resources目录,没有的话,增加一个。
然后新建一个文件:application.properties
内容简单的加一个:

server.port= 8081

即可以更改监听端口
10、增加一个新包:org.rainpet.controller
11、controller中新增一个新类:DemoController
同时增加两个注解:
@Controller
@RestController
然后增加一个新类index,实现首页面访问即可

@Controller
@RestController
@RequestMapping("/demo")
public class DemoController {

    @ResponseBody
    @GetMapping("")
    public String index(){
        return "hello!";
    }
}

启动调试或者运行,即可看到效果:
在这里插入图片描述

12、也可以设置简单的get方法map,例:

@ResponseBody
    @GetMapping("name")
    public String name(@RequestParam(name="name",required = false,defaultValue = "张三")String name){
        return "hello "+name;
    }

在这里插入图片描述
13、简单的web后端程序已经可以跑起来了。

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

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

相关文章

成都无人机飞手考证详解及前景分析

一、考证详解 1.1 考证背景与重要性 随着无人机技术的迅猛发展&#xff0c;无人机在航拍、农业、救援、物流等多个领域展现出广泛应用价值。为了规范无人机行业&#xff0c;保障公共安全和空域秩序&#xff0c;国家对无人机操作员实施了严格的资格认证制度。考取无人机飞手证…

公司员工电脑桌面太乱如何解决?桌面管理软件一招解决!

“工欲善其事&#xff0c;必先利其器。” 在数字化管理的时代背景下&#xff0c;选择合适的桌面管理软件就如同为企业网络管理装上了一双慧眼。 员工的电脑桌面往往因为长时间的使用而变得杂乱无章&#xff0c;这不仅影响了工作效率&#xff0c;还可能给企业信息安全带来隐患。…

Kali Linux 三种网络攻击方法总结(DDoS、CC 和 ARP 欺骗)

一、引言 在当今数字化的时代&#xff0c;网络安全成为了至关重要的议题。了解网络攻击的方法和原理不仅有助于我们增强防范意识&#xff0c;更是网络安全领域专业人员必备的知识。Kali Linux 作为一款专为网络安全专业人员和爱好者设计的操作系统&#xff0c;提供了丰富的工具…

DevOps入门(上)

1: DevOps概念 &#xfeff;&#xfeff;DevOps: Development 和 Operations 的组合 DevOps 看作开发&#xff08;软件工程&#xff09;、技术运营和质量保障&#xff08;QA&#xff09;三者的交集。 突出重视软件开发人员和运维人员的沟通合作&#xff0c;通过自动化流程来使…

【AI绘画】Midjourney前置指令/settings设置详解

文章目录 &#x1f4af;Midjourney前置指令/settings设置详解&#x1f4af;Use the default model&#xff08;AI绘画所使用的大模型&#xff09;Midjourney Model&#xff08;Midjourney 模型&#xff09;Niji Model&#xff08;Niji模型&#xff09; &#x1f4af;Midjourney…

NLP实战三:Pytorch实现FastText文本分类

NLP实战一&#xff1a;Pytorch实现TextCNN文本分类 NLP实战二&#xff1a;Pytorch实现TextRNN 、TextRNNAttention文本分类 中文数据集 我从THUCNews中抽取了20万条新闻标题&#xff0c;已上传至github&#xff0c;文本长度在20到30之间。一共10个类别&#xff0c;每类2万条…

什么是品牌低价 低价要如何处理

在消费领域&#xff0c;当消费者遭遇商品价格混乱不堪的局面&#xff0c;他们大可以选择敬而远之&#xff0c;放弃购买。但对于品牌商而言&#xff0c;若线上出现低价、乱价的情况&#xff0c;若坐视不管&#xff0c;那必然会引发一系列严重后果。 品牌若是对线上的低价、乱价现…

IP报文详解

IP的作用 上一篇文章提到TCP的可靠传输机制&#xff0c;那么TCP有把数据从主机A到主机B的能力吗&#xff1f;答案是没有。而IP有这个能力&#xff0c;IP能够将数据从主机A跨网络传输到主机B的能力。那么一定能传输成功吗&#xff1f;答案肯定是否定的&#xff0c;会因为各种原…

Android TableLayout中TextView文本不居中问题

概述 | 平台 RK3288 Android 8.1 compileSdkVersion 26. | 问题 使用了TableLayout布局电话的拨号按键界面, 效果如下图 (正常): 在后续开发过程的某次修改后, 出现效果图(不正常): 合并两张效果图可看得更明显(红线参考位置): 在布局中 TextView 的 android:g…

计算机毕业设计选题推荐-豆瓣书籍可视化分析-Python爬虫-K-means算法

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

65 华为交换机CE6800基础配置

一 IPV6 使能配置思路 1 改华为交换机的名字 <huaweice65>sys Enter system view, return user view with return command. [~huaweice65]sysname HWCE6800 [*huaweice65]quit Warning: Uncommitted configurations found. Are you sure to commit them before exiting?…

数据的储存1(第30天)

补充&#xff1a;该代码在Debug下会死循环而在release版本下会正常运行&#xff0c;因为release会优化代码。 &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;深度剖析数据在内存中的存储&#xff01;&#xff01;&#xf…

如何为PDF文件设置打开密码以保护文档安全

为PDF文件设置打开密码是一种有效的保护措施&#xff0c;它能防止未经授权的用户访问文件内容。以下是一份专业指南&#xff0c;详细介绍如何为PDF文件设置打开密码。 打开pdf编辑器&#xff0c;我们点击工具栏中的【文件】功能&#xff0c;选择里面的【属性】 然后在属性设置…

代码生成:自动化开发

在现代集成开发环境中&#xff0c;智能代码补全和代码生成功能是两个至关重要的组成部分。 智能代码补全利用当前上下文和代码库信息&#xff0c;向程序员推荐合适的代码选项&#xff0c;而代码生成则根据指定输入创建遵循语法和语义规范的代码片段。 许多先进的IDE如Visual St…

家里猫毛到处飞怎么办?如何清理?用宠物空气净化器去除猫毛

我家三只布偶原住民&#xff0c;都是掉毛怪&#xff0c;刚好还是不同的颜色&#xff0c;黑的灰的白的...家里和画板似的&#xff0c;每天都被猫毛上色&#xff0c;清扫时超级崩溃。沙发上、床上、地板上这些常见的地方就不用说了&#xff0c;甚至水杯和碗筷边偶尔也能看见猫毛&…

CTFHub~JWT漏洞靶场最详细教程

什么是JWT JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed…

新手教学系列——Redis分布式锁进阶版:如何实现支持同一个Key多把锁,并带有超时重试功能

在现代分布式系统中,锁机制是解决并发访问资源问题的重要手段之一。Redis作为一个内存数据库,由于其高效的读写能力和天然的分布式特性,常常被用作实现分布式锁的基础工具。然而,如何合理地实现一个支持多把锁的Redis锁,并且在失败时支持超时重试,这是一个进阶的问题。 …

前端面试——this指向

最近看到了面试题目有关于this指向的问题&#xff0c;网上搜了一篇文章&#xff0c;看了之后受益匪浅&#xff0c;特地总结一下。 原文章链接&#xff1a;前端面试中的“this”&#xff0c;你真的了解吗&#xff1f; - 哔哩哔哩 什么是this&#xff1f; this是一个特殊的关键…

华为鲲鹏技术认证是什么?为什么要通过认证?

华为鲲鹏技术认证是什么&#xff1f; 华为鲲鹏技术认证是华为推出的一项生态合作伙伴计划&#xff0c;旨在积极推动从芯片到硬件系统&#xff0c;再到软件、服务的整个国产产业链的共建、共享、共赢。该认证要求测试产品自主可控&#xff0c;满足各地政府信息技术国产化替代工…

【五】阿伟开始学Kafka

阿伟开始学Kafka 概述 人生若只如初见&#xff0c;阿伟心里回想起了第一次和Kafka见面的场景&#xff0c;记忆虽然已经有些模糊&#xff0c;但是感觉初次见面是美好的。积累了一些实战经验之后&#xff0c;阿伟感觉不能再是面对百度开发了&#xff0c;于是决心系统的学习一下Ka…