3分钟搭建一个springboot项目并运行起来

news2024/12/22 23:01:49

第一步:

创建一个maven项目。

第二步:

导入maven依赖,代码如下:

<?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.zy</groupId>
    <artifactId>hello-springboot</artifactId>
    <version>1.0-SNAPSHOT</version>


    <!-- springboot工程需要继承的父工程   -->
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.6.7</version>
    </parent>


    <!--web开发的起步依赖 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>



</project>

第三步:

定义controller包。

项目结构如下图:

package com.zy.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class hellocontroller {
    @RequestMapping("/hello")
    public String hello () {
        return "hello spring boot !";
    }
}

RestController注解的作用

@RestController注解用于将一个类标识为处理REST请求的控制器,它是Spring MVC提供的一种快速开发RESTful Web服务的方式。

具体作用包括:
1. 自动将Controller中的方法返回的对象转化为JSON或XML响应,作为HTTP响应返回给客户端。
2. 根据请求的HTTP方法(GET、POST、PUT、DELETE等)以及请求的路径,将请求分派给相应的方法进行处理。
3. 可以通过各种请求映射注解(如GetMapping、PostMapping、PutMapping、DeleteMapping等)来定义具体的请求处理方法。
4. 支持处理和返回不同格式的数据,如JSON、XML等。
5. 方便定义和处理RESTful接口。

总之,@RestController注解在Java中的作用就是将一个类标识为处理REST请求的控制器,方便快速开发和处理RESTful Web服务。

 RequestMapping注解:

@RequestMapping注解是Java中用于映射HTTP请求的注解之一。它可以应用在类级别和方法级别上,用于指定控制器类或方法处理特定的URL请求。

在类级别上,@RequestMapping注解可以用于指定控制器类处理的URL的基础路径。例如,可以使用@RequestMapping("/users")将控制器类映射到处理以/users开头的URL请求。

在方法级别上,@RequestMapping注解可以用于指定处理某个具体请求的URL路径和HTTP请求方法。例如,可以使用@RequestMapping(value = "/{id}", method = RequestMethod.GET)将一个方法映射到处理GET请求并且URL路径为/{id}的请求。

除了指定URL路径和HTTP请求方法,@RequestMapping注解还支持其他配置选项,比如请求参数、请求头、响应媒体类型等。这些选项可以通过@RequestParam注解和@RequestHeader注解进行指定。

总体来说,@RequestMapping注解是Java中用于映射HTTP请求的重要注解之一。它起到指定控制器类和方法处理特定URL请求的作用。

第四步:

编写引导类。一般是application结尾:

package com.zy;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
//引导类
@SpringBootApplication
public class helloApplication {
    public static void main(String[] args) {
        SpringApplication.run(helloApplication.class, args);
    }
}

SpringBootApplication注解:

@SpringBootApplication是Spring Boot的核心注解之一,它用于标识一个Spring Boot应用程序的主类。该注解包含了多个其他注解的功能,能够简化Spring Boot应用程序的配置和部署。

@SpringBootApplication注解具有以下功能:

1. @Configuration:将该类标记为配置类,让Spring能够扫描并加载其中的Bean定义。
2. @EnableAutoConfiguration:开启自动配置功能,根据项目的依赖自动配置Spring应用程序所需的组件。
3. @ComponentScan:启用组件扫描,自动找到Spring需要管理的Bean并注册到应用程序上下文中。
4. @SpringBootConfiguration:Spring Boot的特定配置注解,表明该类是一个Spring Boot的配置类。
5. @Import:引入其他配置类或组件,将其加入Spring应用程序的上下文中。

通过使用@SpringBootApplication注解,可以减少大量的配置代码,简化Spring Boot应用程序的启动和部署流程。只需在主类上添加该注解,Spring Boot就能通过自动配置和组件扫描来识别和加载应用程序所需的配置和组件。

需要注意的是,@SpringBootApplication注解通常是放在应用程序的主类上的,主类用于启动Spring Boot应用程序。如果主类不是在顶层包中,则需要额外指定@ComponentScan注解的basePackages属性,以便让Spring Boot能够正确扫描和加载组件。

第五步:

项目启动。效果如下图:

 去页面看看:

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

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

相关文章

执行 yum install gcc 报 【-bash: $‘yum\302\240install\302\240gcc‘: 未找到命令】

执行 yum install gcc 报错 找了一圈&#xff0c;执行&#xff1a;sudo apt-get install yum 执行&#xff1a;wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz 在线下载yum完成 对其进行解压&#xff1a;tar zxvf yum-3.2.28.tar.gz 解压后如下&#xff1a; 执行…

vue3+h5实现虚拟列表

目录 vue3h5实现虚拟列表component / List.vuecomponent / itemComponent.vue使用组件效果 vue3h5实现虚拟列表 安装&#xff1a;npm i vue3-virtual-scroll-listpackage.json "dependencies": {"vue": "^3.2.36","vue3-virtual-scroll-li…

7.20 ARM-A7核心三盏LED灯

思维导图 汇编代码&#xff1a; .text .global _start _start: /**********LED1点灯**************/ RCC_INIT_E:ldr r0,0x50000A28ldr r1,[r0]orr r1,r1,#(0x1 << 4)str r1,[r0]RCC_INIT_F:ldr r0,0x50000A28ldr r1,[r0]orr r1,r1,#(0x1 << 5)str r1,[r0]LED_INI…

SAP 后台作业简单介绍 job

主要事务代码&#xff1a;SM36、SM37 作业设置 1. 一般数据&#xff1a;作业名称&#xff0c;优先级&#xff0c;目标服务器 优先级适用于资源受限情况&#xff0c;目标服务器适用于服务器环境依赖的程序&#xff0c;比如操作服务器文件等类似的处理 2. 开始条件&#xff0c;…

LRU页面置换算法(C语言实现)

1、实验目的 &#xff08;1&#xff09;熟悉虚拟存储器页面置换过程&#xff1b; &#xff08;2&#xff09;通过编写和调试页面置换算法的模拟程序以加深对页面置换算法的理解&#xff1b; &#xff08;3&#xff09;掌握LRU算法的原理&#xff1b; &#xff08;4&#xf…

Ubuntu中安装Vivado软件

文章目录 Ubuntu中安装Vivado加载License修改软件运行权限安装下载器驱动运行Vivado软件连接开发板测试驱动交叉编译器 Ubuntu中安装Vivado 跨系统文件复制的设置在文章Ubuntu 的安装及其设置中已经介绍过了。 在Ubuntu中找到一个需要存放Vivado软件安装包的文件夹&#xff0c…

二分图博弈学习笔记

前言&#xff1a;最近每场训练赛都有博弈题&#xff0c;而且我都被薄纱了。。。真烦 二分图博弈是少有的直接跟图论挂钩的一种博弈模型 一个博弈是二分图博弈应当满足一下条件&#xff1a; 博弈人数为两人&#xff0c;轮流操作 博弈状态转移可以表示成一张二分图 不可访问已…

MySQL 的 crash-safe浅谈

MySql执行流程 MySQL作为当下最流行的开源关系型数据库&#xff0c;有一个很关键和基本的能力&#xff0c;就是必须能够保证数据不会丢。那么在这个能力背后&#xff0c;MySQL是如何设计才能保证不管在什么时间崩溃&#xff0c;恢复后都能保证数据不会丢呢&#xff1f;有哪些…

在Win11的WSL子系统Ubuntu上安装Gnome桌面环境

目录 1. 使用 WSL 在 Win11 上安装 Linux 2. 安装Ubuntu 22.04默认Gnome桌面环境 2.1更新Ubuntu 22.04软件包 2.2 安装Ubuntu桌面环境 2.3 重启服务 2.4 重启Ubuntu 22.04系统 2.5 登录Gnome桌面环境 在Win11上安装ubuntu版linux系统并实现默认Gnome桌面环境&#xff08…

MySQL数据库(八)

目录 一、什么是索引 1.1索引的原理 1.2索引的优缺点 二、索引的使用 2.1查看索引 2.2手动创建索引 2.3删除索引 三、MySQL索引底层的数据结构 3.1 B树 3.2 B树 一、什么是索引 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创…

深度理解 Spring AOP

一、什么是AOP(面向切面编程)&#xff1f;&#x1f349; AOP 为 Aspect Oriented Programming 的缩写&#xff0c;意思为面向切面编程&#xff0c;是通过预编译方式 和运行期 动态代理 实现程序功能的统一维护的一种技术。 AOP &#xff08;面向切面编程&#xff09;是 OOP&a…

Jmeter 接口自动化和 Python 接口自动化,到底选哪个?

目录 前言&#xff1a; 背景 Jmeter 接口自动化 特点 Python 接口自动化 特点 谈项目 写在最后 前言&#xff1a; JMeter接口自动化和Python接口自动化都是常见的选择。 背景 很多刚接触接口自动化的朋友都会疑惑&#xff0c;市面上 Jmeter 接口自动化&#xff0c;Py…

题目2 文件上传(保姆级教程)

url&#xff1a;http://192.168.154.253:82/ #打开http://XXX:81/&#xff0c;XXX为靶机的ip地址 审题 1、打开题目看到有一个提示&#xff0c;此题目需要绕过WAF过滤规则&#xff0c;上传木马获取webshell&#xff0c;最后从根目录下key.php文件中获得flag 2、开始答题 第一步…

【数据结构】二叉树详解(3)

⭐️ 前言 ✨ 往期链接&#xff1a;【数据结构】二叉树详解(1) 在第一篇二叉树文章中&#xff0c;我们探讨了二叉树的链式结构定义与实现。二叉的遍历包含( 前序/中序/后序遍历 )及代码实现和递归流程图的详细讲解。还有一些二叉树的其他接口定义与实现&#xff0c;包含 Binar…

基于netlify生成custom SSL certificate

&#xff08;1&#xff09;腾讯云申请 &#xff08;2&#xff09;域名控制台解析 &#xff08;3&#xff09;Nginx下载&#xff08;crt: CA certificate Chain)

C++ 设计模式 ---- 接口隔离模式

“接口隔离”模式 在组件构建过程中&#xff0c;某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接&#xff08;稳定&#xff09;接口&#xff0c;来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式&#xff1a;1、Facade2、Proxy3、…

MongoDB原生语句更新嵌套数组的值

一、更新一层嵌套数组 首先执行MongoDB原生语句脚本在user集合中产生一些样本数据,如下所示: db.user.insert({"_id":1,"title":"爱情公寓3","students":[{"student_id":1001,"student_name":"林宛瑜&quo…

Docker介绍及安装使用

Docker介绍及安装使用 一、Docker的概述1、Docker是什么&#xff1f;2、Docker的Logo3、Docker的设计宗旨&#xff08;一次封装&#xff0c;到处运行&#xff09;4、容器化越来越受欢迎的原因 二、Docker与虚拟机的区别三、Docker的使用场景四、Docker的核心概念1、镜像2、容器…

基于linux下的高并发服务器开发(第二章)- 2.25 sigprocmask 函数使用

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);- 功能&#xff1a;将自定义信号集中的数据设置到内核中&#xff08;设置阻塞&#xff0c;解除阻塞&#xff0c;替换&#xff09;- 参数&#xff1a;- how : 如何对内核阻塞信号集进行处理SIG_BLOCK: 将用户设…

【MySQl】MySQl中的乐观锁是怎么实现的

文章目录 前言一、乐观锁二、如何实现乐观锁呢&#xff0c;一般来说有以下2种方式2.1、使用数据版本&#xff08;Version&#xff09;记录机制实现2.2、乐观锁定的第二种实现方式和第一种差不多 前言 mysql中的乐观锁是怎么实现的&#xff1f;很多新手对此不是很清楚&#xff…