当前位置: 首页 > news >正文

[SpringBoot笔记] SpringBoot-01-快速入门案例

[SpringBoot笔记] SpringBoot-01-快速入门案例

  • 一、创建项目
    • 1. IDEA 创建
    • 2. 官网创建
  • 二、启动项目
    • 1. 编写 controller 类
    • 2. 启动 Application 类 main 函数
    • 3. controller 包必须与 Application 类平行

一、创建项目

1. IDEA 创建

新建项目或模块时选择 Spring Initializr 可以看到创建模板

一般把项目名称,文件路径,和 Group 坐标写好,剩下的就可以不用管了,点 Next 即可:

在这里插入图片描述

选择 Spring Boot 版本与依赖

SNAPSHOT 是开发版本,不是发布版本一般不用。我们做一个 Web 项目,所以选一个 Spring Web 的依赖:

在这里插入图片描述
点击 Fnish 即可完成:

在这里插入图片描述

还是熟悉的 Maven 结构,甚至连 .gitignore 都帮我们创建了


项目中的文件结构是从 Spring 官网下载来的,所以如果创建项目时没有联网,就会报如下错误:

请添加图片描述

2. 官网创建

既然说了 IDEA 创建的项目是从 Spring 官网下载来的,那我们再去官网创建一个试试

Spring 官网地址:https://spring.io/

进入官网选择上方的 Projects > Spring Boot:

在这里插入图片描述

跳转页面后来到页面下方,点击 Spring Initializr:

在这里插入图片描述
来到了创建 Spring Boot 项目的模板

左半侧是项目信息,和 IDEA 里的基本一样,多了个 Description 项目描述,无关紧要

右侧是依赖列表,可以添加或删除依赖

在这里插入图片描述

补充完项目信息后,点击右侧的 ADD DEPENDENCIES 按钮,添加 Spring Web 依赖:

在这里插入图片描述

点击 GENERATE 按钮即可下载项目压缩包:

在这里插入图片描述

下载好压缩包解压即可

二、启动项目

1. 编写 controller 类

既然是 Web 项目,控制层还是要有的,我们简单的接收一下请求再返回一个字符串就行了

我在 com.mzz.quickstart.controller 包下的 MyController 类如下:

@RestController
@RequestMapping("/")
public class MyController {
    @GetMapping
    public String sayHello() {
        return "<h2>Hello, Spring Boot!</h2>";
    }
}

2. 启动 Application 类 main 函数

在我们创建项目时的主类包中有一个类,类名是 项目名 + Application(旧版本 Speing Boot 可能就是 Application),这个类中又一个 main 函数,运行这个类即可启动项目

在这里插入图片描述

命令行中可以看出 服务器是运行在 Tomcat 上的,而且端口号是 8080:

在这里插入图片描述

去浏览器里访问我们的 controller 路径试一下:

在这里插入图片描述

3. controller 包必须与 Application 类平行

Application 类和 controller 包属于同一个包,controller 中的类才能被扫描到,如图:

在这里插入图片描述
像下面这样则不行:

在这里插入图片描述

如果觉得不方便的话,创建项目时的包名可以去掉末尾的项目名

相关文章:

  • Java资深架构师带你深度“吃透”字节跳动的亿级流量+高并发,这还不冲?
  • Vue项目实战之电商后台管理系统(八) 订单管理及数据统计模块
  • DAO 的全景图:金融和社会资本之间的关系
  • 《大数据之路:阿里巴巴大数据实践》-第2篇 数据模型篇 -第8章 大数据领域建模综述
  • 上传航测影像就能土方计算?!0基础倾斜摄影土方计算流程
  • C和指针——struct结构
  • 怎么转换音频格式?建议收藏这几个方法
  • 小红书如何养号?小红书如何精准引流?
  • 音频裁剪软件有哪些?来看看这几个实用软件
  • 极智开发 | linux 下 ssh 或 scp 免密连接配置方法
  • 离线数仓搭建_02_服务器配置与数据生产
  • 猿创征文|我的四个月Java学习成长之路——从基础到框架再到项目
  • 【毕业设计】试卷自动批改系统 - opencv python 机器视觉
  • 神经网络算法有哪些模型,神经网络模型应用实例
  • 微信公众号题库接口系统 内部含有接口授权使用
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 2018一半小结一波
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • javascript从右向左截取指定位数字符的3种方法
  • jquery cookie
  • js如何打印object对象
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • npx命令介绍
  • passportjs 源码分析
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 开源地图数据可视化库——mapnik
  • 力扣(LeetCode)21
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 思考 CSS 架构
  • 用mpvue开发微信小程序
  • raise 与 raise ... from 的区别
  • ​插件化DPI在商用WIFI中的价值
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #14vue3生成表单并跳转到外部地址的方式
  • #include<初见C语言之指针(5)>
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C语言)fgets与fputs函数详解
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十六)一篇文章学会Java的常用API
  • .net 7 上传文件踩坑
  • .Net Memory Profiler的使用举例
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .Net7 环境安装配置
  • .Net中wcf服务生成及调用
  • @Responsebody与@RequestBody
  • @selector(..)警告提示
  • [ NOI 2001 ] 食物链
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • []sim300 GPRS数据收发程序
  • [2669]2-2 Time类的定义
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...