初识SpringBoot -- SpringBoot入门保姆级教程(一)

news2024/11/17 19:38:42

文章目录

  • 前言
  • 一、初识SpringBoot
    • 1.SpringBoot简介
    • 2.用编译器IDEA创建SpringBoot项目
    • 3.在官网创建SpringBoot项目
    • 4.SpringBoot项目快速启动(前后端分离基本能力)
    • 5.了解SpringBoot起步依赖和启动类
  • 总结


前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

在这里插入图片描述

一、初识SpringBoot

1.SpringBoot简介

  1. SpringBoot简介

Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。

  1. SpringBoot相比于Spring的优势
  • Spring的缺点

1.配置比较复杂,不过后来引入了注解配置,简化了配置过程
2.没有做到依赖管理,比如控制各依赖之间的版本兼容关系,非常麻烦。
3.使用Spring做出来的程序,逻辑不太清晰,代码不直观,需要时不时去查看配置才能理解代码

  • SpringBoot的优点

1.通过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效
2.避免大量的Maven导入和各种版本冲突。。
3.没有单独的Web服务器需要。这意味着你不再需要单独启动Tomcat服务器。

2.用编译器IDEA创建SpringBoot项目

接下来我们通过SpringBoot开发一个简单的SpringMVC程序来体验一下SpringBoot的优势和了解如何用IDEA编译器创建Spring项目初始化

  1. 创建新模块,选择Spring初始化,并配置模块相关基础信息

在这里插入图片描述

  1. 勾选相关技术依赖和SpringBoot的版本号

在这里插入图片描述

  1. 编写Controller层(省略对应的实体类和相关接口等)
@RestController
@RequestMapping("/books")
public class BookController {

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("id ==> "+id);
        return "hello , spring boot!";
    }

}
  1. 代码文件结构示例

在这里插入图片描述

  1. DemonApplication启动类运行结果
  • IDEA运行结果

在这里插入图片描述

  • 浏览器访问结果

在这里插入图片描述

  1. 用SpringBoot开发SpringMVC与传统开发相比在操作上有什么区别

在这里插入图片描述

  • pom.xml里的技术在创建项目的时候就已经勾选好,如果勾选的技术足够满足项目需求了,则可以省略技术坐标配置文件的编写

  • 传统SprngMVC开发需要单独创建对应的Config类去配置Web3.0相关的属性,用SpringBoot技术开发的就不需要

  • SpringBoot技术内置tomcat服务器,不需要手动配置

原因:pom.xml和启动类中封装了大量的内容

3.在官网创建SpringBoot项目

  1. 打开spring官网,勾选Projects – Overview选项

在这里插入图片描述

  1. 选择SpringBoot

在这里插入图片描述

  1. 在页面的底部找到快速创建SpringBoot选项并点击

在这里插入图片描述

  1. 填写项目相关信息,勾选相关技术依赖

  1. 点击GENERATE(生成),会生成对应的压缩包,解压并用编译器打开编译即可

4.SpringBoot项目快速启动(前后端分离基本能力)

SpringBoot程序可以脱离tomcat和编译器快速运行,方便前后端开发时进行交互,不过依旧需要前端人员去连相同的数据库。

  1. 双击执行maven – Lifecycle – package命令

在这里插入图片描述

  1. 找到生成的jar包,在路径栏中输入控制命令行cmd

在这里插入图片描述

  1. 进入到控制命令窗口后在刚封装的jar包路径后输入 java - jar d(项目命名的首字母)的命令行 ,然后点击tab键进行补全,回车运行

在这里插入图片描述

  1. 浏览器访问

在这里插入图片描述
在这里插入图片描述

  1. 注意事项

在这里插入图片描述

5.了解SpringBoot起步依赖和启动类

  1. 初步了解SpringBoot起步依赖

在pom文件中, Artifact ID都有spring-boot-starter-前缀的,这些都是Spring Boot起步依赖,它们都有助于 Spring Boot应用程序的构建。

在这里插入图片描述

1.starter:
SpringBoot中常见项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的
2.parent:
所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
3.实际开发:
使用任意坐标时,仅书写GAV中的G和A,V(version)由SpringBoot提供
如发生坐标错误,再指定version (要小心版本冲突)

  1. SpringBoot启动类

在这里插入图片描述

1.SpringBoot启动方式:启动类(示例如图)
2.SpringBoot在创建项目时,采用jar的打包方式
3.SpringBoot的引导类是项目的入口,运行main方法就可以启动项目

  1. 更换SpringBoot启动服务器(tomcat --> jetty)
  • 编辑pom.xml文件

在这里插入图片描述

  • 运行启动类

在这里插入图片描述

在这里插入图片描述

总结

欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

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

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

相关文章

RocketMQ消息消费

RocketMQ消息消费示例代码: public static void main(String[] args) throws InterruptedException, MQClientException {DefaultMQPushConsumer consumer new DefaultMQPushConsumer("please_rename_unique_group_name_4");consumer.setNamesrvAddr(&qu…

C++ 学习 ::【基础篇:15】:C++ 类的基本成员函数:析构顺序问题(全局/静态/局部量) 及 类类型(自定义类型)与析构函数

本系列 C 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C 学习系列将分为三个阶段:基础篇、STL 篇、高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C的三大特性等&#…

Nginx配置块location及rewrite详解(遗憾)

文章目录 一、location配置块详解1.location 大致分为三类2.location 常用的匹配规则3.location 匹配的优先级4.location 匹配流程5.location 的实际使用(1)直接匹配网站根目录首页(2)处理静态文件请求(3)通…

函数式接口相关知识点

这里写目录标题 函数式接口简介以及注意点函数式接口作为方法的参数函数式接口作为方法参数常用的函数式接口Supplier简介具体代码操作 Consumer简介具体代码演示演示1演示2 Predicate接口简介以及接口中的方法text和negate方法and和or方法Function方法简介具体操作1具体操作2 …

SQL语句之DDL语言

说明:DDL(Data Definition Language,数据定义语言),用来定义数据库对象(数据库、表),包括了数据库和表的创建、查询、使用和删除操作。 一、数据库操作 新安装的数据库,默认有以下四个数据库&…

计算机网络-数据链路层

概念 结点:主机、路由器 链路:结点间物理通道 数据链路:结点间逻辑通道,控制数据传输协议的硬件和软件加到链路上构成数据链路 帧:链路层的协议数据单元,封装网络层数据报 数据链路层负责通过一条链路从一…

银行转账问题(死锁)

本文主要讲述死锁的一个经典案例—银行转账问题,并对该问题进行定位、修复。 1. 问题说明 当账户A对账户B进行转账时, 首先需要获取到两把锁:账户A和账户B的锁。获取两把锁成功,且余额大于0,则扣除转出人的余额&…

我记不住的那些C语言的struct知识

背景: 最近在重学C语言,目的是为了能看懂操作系统的底层代码,也为后续使用C语言开发一个类似redis数据库的中间件做准备,于是又重新踏上了学习C语言的道路,早在上学期间就学习过C语言,但是很久都不用了&…

ssm学习-spring01

Spring_day01 今日目标 掌握Spring相关概念完成IOC/DI的入门案例编写掌握IOC的相关配置与使用掌握DI的相关配置与使用1,课程介绍 对于一门新技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那对于Spring来说: 1.1 为什么要学? 从使用和占有率看 Spri…

使用 ChatGPT API 构建系统(一):分类

今天我学习了DeepLearning.AI的 Building Systems with the ChatGPT API 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。 下面是我们通过Openai API来访问ChatGPT模型的主要代码: import openai#您的openai的api key openai.api_key YOUR…

chatgpt赋能python:Python删除节点:从入门到实践

Python删除节点:从入门到实践 在任何编程语言中,删除节点都是一个极为常见的操作。在Python中,它同样非常重要,因为我们通常会使用Python处理各种数据结构,诸如树、链表等等。但是,删除节点并不总是一件容…

C++类和对象 -- 知识点补充

补充 const成员函数static成员友元内部类匿名对象拷贝对象时的一些编译器优化 const成员函数 将const修饰的成员函数称为const成员函数,const修饰类成员函数,实际是修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的成员进行修改。…

javaWeb ssh自习室管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh自习室管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,…

预报名通道已开启,2023第11届国际生物发酵展,8月4-6日上海见!

新机遇、新挑战、新发展 同期展会:酵素产品与益生产品展 制药机械与包装技术展 生化仪器及实验室设备展 合成生物技术与生物制造展 展会时间: 2023年8月4日 9:00-17:00 2023年8月5日 9:00-17:00 2023年8月6日 9:00-15:00 展会地点&#xff1a…

【数据结构】栈和队列选择题和面试编程题

目录 一、选择题 二、栈和队列的面试题 1、括号匹配问题 1.1 题目说明 1.2 题目解析 2、用队列实现栈 2.1 题目说明 2.2 题目解析 3、用栈实现队列 3.1 题目说明 3.2 题目解析 一、选择题 1、若进栈序列为 1,2,3,4 ,进栈过程中可以出栈,则下列不可能的…

软考A计划-电子商务设计师-信息安全知识

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

安全防御——IDS(入侵检测系统)

安全防御——IDS(入侵检测系统) IDS介绍为什么需要IDSIDS的工作原理IDS的工作过程第一步:信息收集第二步:数据分析 IDS的主要检测方法1、模式匹配(误用检测)2、统计分析(异常检测)3、…

chatgpt赋能python:Python创建venv的完全指南

Python创建venv的完全指南 在Python开发中,虚拟环境是一个非常有用的工具。它可以让我们在同一台计算机上拥有多个Python环境,而不会互相干扰。在本文中,我们将介绍如何使用Python创建venv(虚拟环境)。 什么是venv&a…

4-5.配置信息和路由信息

一、配置信息 app.run()的参数 参数1:host,如果我们不指定,默认值是127.0.0.1。参数2:port,如果我们不指定,默认值是5000。参数3:debug,调试模式,如果不指定&#xff0…

chatgpt赋能python:Python创建画布语句

Python 创建画布语句 在数据可视化的领域,画布(Canvas)是一个重要的概念。画布可以视为一个空白的像素或向量画布,用于绘制图表、图形、图像和动画等。Python 提供了多种创建画布的方式,其中包括使用第三方库和内置库…