Spring(四):Spring Boot 的创建和使用

news2024/11/26 7:50:00

关于Spring之前说到,Spring只是思想(核心是IOC、DI和AOP),而具体的如何实现呢?那就是由Spring Boot 来实现,Spring Boot究竟是个啥呢?

什么是Spring Boot,为什么要学Spring Boot

 Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发
的。
Spring Boot 翻译⼀下就是 Spring 脚⼿架,什么是脚⼿架呢?如下图所示

盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷 的,简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。
⽽ Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。
Spring Boot 相⽐于 Spring 有一个质的提升。

Spring Boot的优点

说是说,Spring Boot 有质的提升,具体体现在如下几个方面:

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

我们一个一个来介绍:

创建Spring Boot

首先,我需要下载一个插件 : Spring Boot Helper ;这个插件只有社区版需要下载,专业版的不需要去下载,由于我的是专业版的,所以在插件中找不到,所以我随便在网上照了一张图:

ok,这个下载好了以后,就变成了这个:

 ok,点击 Next 继续走,来到这个界面

 简单的选择一遍:

 继续点击Next 往下走:

来到这个页面:

 这个就是之前在Maven 中央仓库中引入的依赖,这里我们可以一次性选择完全部,并且,不需要我们手动去选版本,Spring 帮我们自动匹配了与 jdk 匹配的版本。

 再次点击 Next 来到最后一步:

这是我们最熟悉的一步了,取个名字,选择一个存放路径,点击 Finish 就创建完毕了。

创建完毕就来到这个页面:

 

 为了看着简介,我还是删了。

到这里创建就结束了。

为啥这里要演示一遍创建?因为学到后面就会发现创建才是Spring Boot 中最难的东西,总会出现一些莫名其妙的错误。

之前的文章中我也介绍过 Maven 国内源的配置,需要的可以去看看,这里就不再重复了。

Spring Boot 的使用

项目目录介绍和运行

Spring Boot 项⽬有两个主要的⽬录:
  1. src/main/java 为 Java 源代码。
  2. src/main/resources 为静态资源或配置⽂件:
    • /static:静态资源⽂件夹;
    • /templates:模版资源⽂件夹

我们学习 JavaEE 就是⽤来实现 Web 项⽬或接⼝的,⽽之前是 Spring 其实是⼀个普通 Java 项⽬,没 办法直接和浏览器进⾏互动,所以接下来我们要⽤ Spring Boot 来实现和浏览器及⽤户的交互。

在创建的项⽬包路径下创建 UserController ⽂件,实现代码如下:
package com.example.demo;

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

@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/sayhi")
    public String sayHi(){
        return "Hi,Spring Boot.";
    }
}

结果如下:

这里来解释一下:为啥在《Spring中Bean的生命周期和作用域》这一篇文章中需要配置文件,将Bean 对象等配置进 Spring 中,而这里却不需要在配置呢?

如图:

 看上述那个注解, @SpringBootApplication ,事实上,我们在创建的时候就已经配置好了,不需要我们在手动配置;

有了这个注解,他就会扫描demo 这个包已经其子包 Spring Boot 项⽬没有将对象注⼊到容器中。

 现在我们将 这个 Controller 类移动到与 demo 包平级,试试看能否打印这个 Hi,Spring Boot.

 我们可以看到,这样是无法访问的。

小结:约定大于配置

以上情况反应了 Spring Boot 项⽬的另⼀个特点:约定⼤于配置。
对⽐ Spring 的项⽬我们也可以看到这⼀特点,⽐如在 Spring 中也是要配置 Bean 的扫描路径的,⽽  Spring Boot 则不需要,Spring 配置如下:

总结

Spring Boot 是为了快速开发 Spring ⽽诞⽣的,Spring Boot 具备:
  • 快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
  • 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
  • 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
  • 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
  • ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点。
Spring Boot 可使⽤ Idea 或⽹⻚创建,它的设计思想是约定⼤于配置,类上标注
@SpringBootApplication 就可以启动 Spring Boot 项⽬了。

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

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

相关文章

Multi-UAV Disaster Environment Coverage Planning with Limited-Endurance

Multi-UAV Disaster Environment Coverage Planning with Limited-Endurance 有限续航时间下的多无人机灾害环境覆盖规划 定义问题将初始地图转换为热图产生优化路径 基于 已知的灾区热图,设计一个多无人机全覆盖搜索的路径规划方法。可以在无人机有限能量约束下探索…

dirsearch目录扫描工具的使用

文章目录 工具下载及环境准备查看帮助信息进行目录扫描 官方介绍 :An advanced command-line tool designed to brute force directories and files in webservers, AKA web path scanner 一个高级命令行工具,用于暴力破解网络服务器中的目录和文件&…

韦东山-电子量产工具项目:业务系统

代码结构 所有代码都已通过测试跑通,其中代码结构如下: 一、include文件夹 1.1 common.h #ifndef _COMMON_H #define _COMMON_Htypedef struct Region {int iLeftUpX; //区域左上方的坐标int iLeftUpY; //区域左下方的坐标int iWidth; //区域宽…

Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性,适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2,如果在业务中需要更好…

【视觉SLAM入门】5.2. 2D-3D PNP 3D-3D ICP BA非线性优化方法 数学方法SVD DLT

"养气之学,戒之躁急" 1. 3D-2D PNP1.1 代数法1.1.1 DLT(直接线性变换法)1.1.2. P3P 1.2 优化法BA (Bundle Adjustment)法 2. 3D-3D ICP2.1 代数法2.1.1 SVD方法 2.2 优化(BA)法2.2.2 非线性优化方法 前置事项: 1. 3D-2D PNP 该问题描述为&am…

使用swoole实现实时消息推送给客户端

一. 测试服务端 //测试服务端public function testServer(){$server new Server(192.168.0.144, 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);$server->on(request, function ($request, $response) {$response->header(Content-Type, text/plain);$response->end("He…

【操作系统】虚拟内存相关分段分页页面置换算法

虚拟内存是什么? 【进程地址空间虚拟地址空间C/C程序地址空间就是那个4G的空间】 虚拟内存是操作系统内核为了对进程地址空间进行管理,而设计的一个逻辑意义上的内存空间概念。在程序运行过程中,虚拟内存中需要被访问的部分会被映射到物理内…

Mock平台-08开发:项目管理(四)编辑功能和Component抽离

【Mock平台】为系列测试开发教程,从0到1编码带你一步步使用Spring Boot 和 Antd React框架完成搭建一个测试工具平台,希望作为一个实战项目对各位的测试开发学习之路有帮助,大奇一个专注测试技术干货原创与分享的家伙。 本篇重点:…

HCIP生成树STP总结

STP生成树 网桥的4个选举 根网桥: 有且仅有一台,且由BPDU中的桥ID来决定 桥ID 网桥优先级(0-65535公有) 默认32768 MAC地址(只有…

湘潭大学 湘大 XTU OJ 1055 整数分类 题解(非常详细)

链接 整数分类 题目 Description 按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,246&#…

漏洞指北-VulFocus靶场专栏-高级01

漏洞指北-VulFocus靶场专栏-高级01 高级001 🌸骑士cms任意代码执行(CVE-2020-35339)🌸step1:进入页面,登入后台step2 系统——网站配置——网站域名step3 中国蚁剑连接 高级002 🌸Django SQL注入…

安装ps找不到vcruntime140_1.dll怎么回事?有哪些解决方法

安装ps找不到vcruntime140_1.dll怎么回事?这可能是因为您的计算机Visual C Redistributable包损坏,其中包含vcruntime140_1.dll文件。VCRuntime140_1.dll是一个重要的动态链接库文件,它包含了Visual C运行时所需的一些函数和资源。当这个文件…

银行客户关系管理系统springboot财务金融进销存java jsp源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 银行客户关系管理系统springboot 系统有1权限&#x…

周易卦爻解读笔记——未济

第六十四卦未济 火水未济 离上坎下 未济卦由否卦所变,否卦六二与九五换位,象征尚未完成。 天地否 未济卦和既济卦既是错卦又是覆卦,这也是最后一卦,序卦传【物不可穷也,故受之以未济终焉】 未济卦象征尚未完成&…

NSSCTF之Misc篇刷题记录(14)

[SWPUCTF] 2021新生赛之Crypto篇刷题记录① [UUCTF 2022 新生赛]王八快跑[安洵杯 2020]BeCare4[HDCTF 2023]ExtremeMisc NSSCTF平台:https://www.nssctf.cn/ PS:记得所有的flag都改为NSSCTF [UUCTF 2022 新生赛]王八快跑 小游戏 小乌龟跑过线就有 fla…

BDA初级分析——SQL语句应用基础练习题

1、请检查OLYMPIC表中是否存在重复国家? SELECT Team,COUNT(*) AS 重复次数 FROM Olympic GROUP BY Team HAVING COUNT(*) > 1;SELECT COUNT(Team),COUNT(DISTINCT(Team)) FROM Olympic; 2、将OLYMPIC表中Armenia(ARM)的奖牌总数更新为14 UPDATE Olympic SET total_medals …

【C语言】使用C语言,实现九九乘法表(另附Python、Java、JavaScript实现方式)

文章目录 1. C语言实现1.1 思路1.2 代码实现 3.其他语言实现3.1 Python实现3.2 Java实现3.3 JavaScript实现 1. C语言实现 1.1 思路 九九乘法表图示: 思路如下:定义两层for循环即可实现九九乘法表 一共有9层,所以要定义一个变量i&#xff…

记录首次面试2023-08-18

人生第一次面试,大概一个小时左右。没有问我C的,上来一个数据库事务,虽然没有复习,但是还是能够记住一些,主要问的一些事务的隔离级别,以及都有什么作用,我是举例回答的,客户端A和客…

【激光雕刻与DIY Arduino SCARA机器人】

【激光雕刻与DIY Arduino SCARA机器人】 1. 项目概况2. 设计和3D模型3. 安装激光模块4. SCARA机器人激光雕刻机电路图5. 完成装配6. 马林固件,用于使用 SCARA 机器人进行激光雕刻7. 配置 Marlin 固件8. 控制软件 – 主机9. 使用 SCARA 机器人进行激光雕刻10. 生成用于激光雕刻…

PCAP01介绍和STM32模拟SPI驱动

一.芯片介绍 Pcap01是德国acam公司设计的一款革命性的电容测量芯片。该芯片 内部有DSP计算单元,可以直接将电容元件接到Pcap01芯片,然后芯片计算出容值大小,通过SPI总线将电容容值数据传送给CPU,电容测量完全数字化。 二,测量原…