6. Spring Boot 的创建和使用

news2024/11/23 15:29:41

目录

1. 什么是 Spring Boot

2. Spring Boot 的优点

3. Spring Boot 项目的创建

3.1 使用 Idea 创建

3.2 网页版创建

4. 项目介绍和运行

4.1 运行项目 

4.2 通过浏览器输出

5. 注意事项


1. 什么是 Spring Boot

Spring 的诞生是为了简化 Java 程序的开发的,而 Spring Boot 的诞生是为了简化 Spring 程序开发 的。

也就是说,Spring Boot 就是为了快速开发 Spring 框架而产生的。

2. Spring Boot 的优点

  • 快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。
  • 快速部署项⽬,无需外部容器即可启动并运行项目。 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
  • 支持更多的监控的指标,可以更好的了解项目的运行情况。

3. Spring Boot 项目的创建

3.1 使用 Idea 创建

如果创建好项目后,idea 自动生成的配置文件中,版本后面有 .RELEASE 后缀,需要删除:

3.2 网页版创建

https://start.spring.io/ 

下载生成的压缩包后,在本地进行解压,最后在 idea 中打开即可。

4. 项目介绍和运行

Spring Boot 项目的目录如下:

Spring Boot 项目有两个主要的目录:

  • src/main/java 为 Java 源代码。
  • src/main/resources 为静态资源或配置文件:
    • /static:静态资源文件夹;
    • /templates:模版资源文件夹。

将自测(开发人员的测试)的代码放在 test 文件夹下。

以上的  SpringBootDemoApplication 类,就是启动类:

@SpringBootApplication
public class SpringBootDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootDemoApplication.class, args);
	}
}

4.1 运行项目 

直接运行启动类的 main 方法即可:

4.2 通过浏览器输出

之前我们学习的 Spring 其实是⼀个普通 Java 项目,没办法直接和浏览器进行互动,所以接下来我们要用 Spring Boot 来实现和浏览器及用户的交互。

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello,SpringBoot";
    }
}

运行后在网页搜素网址:http://127.0.0.1:8080/hello

对比 servlet 项目:

url :

  • servlet:   IP:port/context Path(项目路径)/Servlet path 
  • Spring:   IP:port/mapper url

通过端口号来区分项目,如果 tomcat 下面部署了多个项目,分别使用不同的端口号。对于 Spring项目而言,tomcat 内嵌到 Spring 项目中了,一个 tomcat 进程归一个 Spring 项目。一个服务器可以通过启动多个 tomcat 来部署多个项目。

在日志中,我们可以看到端口号:

那么,我们如何启动 9090 端口呢?

通过配置文件:

重新运行后,可以看到此时日志的 Tomcat 端口号为 9090:

同样可以访问成功:

5. 注意事项

如果包的路径错误,会出现如下图所示报错:

因此,我们需要把注入到容器的类和启动类放到同级目录下,这样 Spring Boot 项目才能正常的将 bean 注入到容器中,如下图所示:

这种情况,也就反映了 Spring Boot 项目的另一个特点(设计思想):约定大于配置

不需要配置扫描路径,但是启动类所在的路径就是需要扫描的路径。

类上方标注  @SpringBootApplication 就可以启动项目。

 

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

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

相关文章

100、用简洁的语言描述一下:TCP的三次握手和四次挥手(不需要长篇大论)

TCP的三次握手和四次挥手 TCP协议是7层网络协议中的传输层协议,负责数据的可靠传输。 1、三次握手 在建立TCP连接时,需要通过三次握手来建立,过程是: 客户端向服务端发送一个SYN服务端接收到SYN后,给客户端发送一个SYN_ACK客户…

leetcode 852. Peak Index in a Mountain Array(峰值索引)

一个数组保证是峰值数组(存在一个值大于左边和右边部分数组),找出峰值的index。 要求时间复杂度在O(logn)。 思路: 时间复杂度为O(logn), 可以想到用binary search. 其实用O(n)的找最大值也能通过。 public int peakIndexInMou…

PysparkNote006---pycharm加载spark环境

pycharm配置pyspark环境,本地执行pyspark代码 spark安装、添加环境变量不提了 File-Settings-Project-Project Structure-add content root添加如下两个路径 D:\code\spark\python\lib\py4j-0.10.7-src.zipD:\code\spark\python\lib\pyspark.zip 2023-07-26 阴 于…

Python 基础总结

title: Python 基础总结 date: 2023-07-19 10:51:55 tags: Python categories:Python cover: https://cover.png feature: false 1. print() 函数 1.1 基础使用 # 输出数字 print(23) print(11.323)# 输出字符串 print(你好) print("你好")# 输出表达式 print(3 *…

C++-stack 和 queue

stack 和 queue介绍 两者分别是C当中的 栈和队列,只不过在C当中,这两者没有用传统的方式,比如顺序存储和链式存储来实现了,两者现在使用的是一种权限的方式来实现; 都是用容器适配器来实现,开发者考虑到&a…

PyToch 深度学习 || 3. 卷积神经网络 | 3.1 深度学习中的卷积操作

深度学习中的卷积操作 文章目录 深度学习中的卷积操作1. 卷积2. 一维卷积2.1 使用nn.functional库中conv1d2.2 使用nn库中的Conv1d 3. 二维卷积3.1 nn.functional.conv2d3.2 nn.Conv2d 1. 卷积 加权求和是一种非常重要的运算,可以整合局部数字特征进而是提取局部信…

Linux CentOS监控系统的运行情况工具 - top/htop/glances/sar/nmon

在CentOS系统中,您可以使用以下工具来监控系统的运行情况: 1. top: top 是一个命令行工具,用于实时监控系统的进程、CPU、内存和负载情况。您可以使用以下命令来启动 top: top 输出 2. htop: htop 是一…

WSL 2 环境配置

WSL 2 环境配置 wsl2是windows内置的linux子系统,安装步骤如下: Win10 版本号为 2004(内部版本19041或更高)即可,如果低于此版本可使用 Windows 10 易升工具手动升级。下载 Windows 10 易升工具: https:…

DAY52:动态规划(十七)子序列问题:最长递增子序列+最长连续递增序列+最长重复子数组

文章目录 300.最长递增子序列(注意初始化和结果取值)思路DP数组含义递推公式初始化最开始的写法debug测试:解答错误debug测试2:result初始值 修改完整版总结 674.最长连续递增序列思路1:滑动窗口思路2:动态…

【Leetcode】54.螺旋矩阵

一、题目 1、题目描述 给你一个 m m m 行 n n n 列的矩阵 matrix,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例1: 输入:matrix =

安防监控视频汇聚EasyCVR修改录像计划等待时间较长,是什么原因?

安防监控视频EasyCVR视频融合汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检…

项目——负载均衡在线OJ

目录 项目介绍开发环境所用技术项目宏观结构编写思路1. 编写compile_server1.1 编译模块编写1.2 运行功能1.3compile_runner 编译与运行1.4 编写compile_server.cpp调用compile_run模块,形成网络服务 2. 编写基于MVC的oj_server2.1 oj_server.cpp的编写2.2 oj_model…

Unity进阶--对象池数据场景管理器笔记

文章目录 泛型单例类泛型单例类&#xff08;不带组件版&#xff09;对象池管理器数据管理器场景管理器 泛型单例类 using System.Collections; using System.Collections.Generic;public abstract class ManagersSingle<T> where T : new() {private static T instance;…

OSCP 学习:Kali Linux 基本命令

Bash 环境 环境变量 当我们开启新的bash时候&#xff0c;它会拥有自己的环境变量 我是这样理解 环境变量的&#xff1a; 每个程序都有自己运行的地址 我们用一个变量来储存它的地址 这个变量就叫环境变量 Kali 最常用的环境变量 就是 $PATH。这个我们可以用这个变量进行不正当…

selenium浏览器驱动下载

Chrome谷歌浏览器 下载地址&#xff1a;http://chromedriver.storage.googleapis.com/index.html 不同的Chrome的版本对应的chromedriver.exe 版本也不一样&#xff0c;下载时不要搞错了。 如果是最新的Chrome, 下载最新的chromedriver.exe 就可以了。 Firefox火狐浏览器 驱…

B073-封装工具类 服务模块(后台)

目录 拿当前登录人信息工具类服务模块业务分析表结构后端代码后台代码覆写删除-加详情一起删调整前端Data&#xff0c;handleAdd和编辑框覆写新增编辑按钮展示详情资源&#xff1a;多图上传和回显图片 拿当前登录人信息工具类 工具类准备&#xff1a;LoginContext: 登录上下文…

前端性能测试

目录 前言&#xff1a; 前端性能 1、优化 2、Lighthouse 使用 4、Lighthouse 报告参数的标准 5、更多产品 前言&#xff1a; 前端性能测试是一个广泛的领域&#xff0c;它旨在评估前端应用程序的性能和可靠性。前端性能测试需要使用各种测试工具和技术&#xff0c;包括浏…

功率信号源的基本工作原理、用途和应用方法

功率信号源是一种可以产生恒定或可变功率输出的测试设备。在电子实验中&#xff0c;功率信号源广泛应用于各种不同的应用&#xff0c;下面安泰电子就来介绍功率信号源的基本工作原理、用途和应用方法。 功率信号源的基本工作原理 功率信号源的基本工作原理是将电能转换成信号能…

【前端实习评审】对小说详情模块的产品原型有一定的自己理解

大家好&#xff0c;本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块前端同学的文档作品。该同学来自中国科学院大学计算机技术专业。 本项目亮点难点&#xff1a;1 热门书籍在更新点的访问压力 2 书籍更新通知的及时性和有效性 3 书荒:同好推荐的可能性 4…

血压诊断米家智能血压计方案

智能血压计产品介绍: 智能血压计是一种基于蓝牙技术的便携式血压测量设备。它通过无线连接与智能手机或其他设备同步并联接到APP端&#xff08;米家&#xff09;&#xff0c;可以准确测量用户的血压数据&#xff0c;并通过手机应用程序进行记录和分析。 智能血压计产品结构: 智…