【JavaEE】SpringBoot快速上手,探秘 Spring Boot,搭建 Java 项目的智慧脚手架

embedded/2025/3/11 8:17:14/

1.Spring Boot介绍

在学习SpringBoot之前, 我们先来认识⼀下Spring ,我们看下Spring官⽅的介绍
在这里插入图片描述
可以看到,Spring让Java程序更加快速, 简单和安全。 Spring对于速度、简单性和⽣产⼒的关注使其成为世界上最流⾏的Java框架。
Spring官⽅提供了很多开源的项⽬, 覆盖范围从Web开发到⼤数据, Spring发展到了今天, 已经形成了⾃⼰的⽣态圈. 我们在开发时, 也倾向于使⽤Spring官⽅提供的技术, 来解决对应的问题。
在这里插入图片描述
这些项⽬都是基于Spring Framework来进⾏开发的, 但是Spring Framework存在配置多, ⼊⻔难的问题, Spring 也意识到了这个问题, 为了简化开发者的使⽤, 从⽽创造性的推出了SpringBoot。

接下来我们看下什么是Spring Boot。
Spring Boot 的诞⽣是为了简化 Spring 程序开发的。
Spring Boot 翻译⼀下就是 Spring 脚⼿架,什么是脚⼿架呢?如下图所⽰
在这里插入图片描述

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

每次技术的诞⽣和改进相⽐于之前的效率会有⼀个质的提升,⽽ Spring Boot 相⽐于 Spring 也是如此.

2.SpringBoot项目创建

2.1使⽤ Idea 创建

因为⽤的 Idea 社区版(其他版本也同样适⽤),所以先要安装 Spring Boot Helper插件才能创建 Spring Boot 项⽬.

社区版要求:2021.1 -2022.1.4

安装Spring Boot Help插件
使⽤专业版Idea的同学不需要安装插件, Idea已经集成了

  1. 查找插件并下载
    在这里插入图片描述
    点击 , 进⼊⽹⻚下载插件

    此处不要直接点击 Install 直接点击Install, 安装的是收费版(⼟豪请随意)

    插件地址: 点击跳转
    在这里插入图片描述

    插件对Idea版本有要求, Idea版本需要在2021.1 -2022.1.4范围内, 不在这个范围内需要重新卸载安装, 卸载要删除注册表的内容

  2. 安装插件
    按下图序号操作, 逐步安装插件
    在这里插入图片描述
    选择刚才下载的插件, 安装, 重启Idea即可 此时查看已安装插件
    安装好之后,它的名字就变成了 Spring Initializr and Assistant,如下图所⽰∶
    在这里插入图片描述
    不要点击 update!!!

创建SpringBoot项⽬
接下来我们来创建 Spring Boot 项⽬:
File -> New ->Project
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上图说明
① SpringBoot版本 , 选择任意3.X的, 这个版本会随着SpringBoot的升级⽽发⽣变化, 不固定
3.X版本使⽤的是jdk17, 3.X以下使⽤的是JDK8
② 打勾表⽰创建项⽬之初, 就引⼊的第三⽅依赖(框架, 插件, 组件等 后⾯再细讲)

在这里插入图片描述
点击 Create 就完成 Spring Boot 的项⽬创建了。

注意事项
第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库. 为了加速 Spring Boot 项⽬的下载,在打开项⽬之前,请先确认⾃⼰的 Maven 已经配置为国内源

2.2⽹⻚版创建(了解)

不使⽤ Idea 也可以创建 Spring Boot 项⽬,我们可以使⽤ Spring 官⽅提供的⽹⻚版来创建 Spring Boot 项⽬。
⽹⻚版创建项⽬先访问,如下图所⽰:
在这里插入图片描述
Idea创建项⽬时, 显⽰的界⾯, 就是来⾃于这个⽹站, 所以⽹络不好的情况下, 这个界⾯也会打不开

在这里插入图片描述
点击⽣成按钮会下载⼀个 Spring Boot 的 zip 包,解压 zip 之后⽬录如下:
在这里插入图片描述
然后再使⽤ Idea 打开之后,Spring Boot 项⽬就算创建成功了.

2.3项⽬代码

观察pom.xml文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>Test</artifactId><version>0.0.1-SNAPSHOT</version><name>Test</name><description>Test</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>org.example.test.TestApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

pom.xml⽂件⾥的具体信息, 不需要过度关注, 我们主要看<dependencies></dependencies>标签⾥⾯的内容

pom⽂件中, 引⼊了两个依赖:

  • spring-boot-starter-web:包含了web应⽤开发所需要的常⻅依赖
  • spring-boot-starter-test:包含了单元测试所需要的常⻅依赖

⽗⼯程
但是我们发现, 这个依赖没有指定具体的版本号, 但我们的jar包也正常引⼊到项⽬中了.并且查看的话, 是有版本号的.
在这里插入图片描述
我们来看看本地仓库的的jar包是否下载下来了呢?
在这里插入图片描述
也下载下来了.
为什么没有指定 , 程序也可以正常运⾏呢?

因为每⼀个SpringBoot⼯程,都有⼀个⽗⼯程。 依赖的版本号在⽗⼯程中统⼀管理.
⽗⼯程指定版本号后, 就会⾃动引⼊和所指定版本对应的依赖, 创建的SpringBoot项⽬, 会继承 SpringBoot⽗⼯程.
如下:
在这里插入图片描述
在这里插入图片描述

2.4 ⽬录介绍

在这里插入图片描述
Spring Boot 项⽬有两个主要的⽬录

  1. src/main/java: Java 源代码
  2. src/main/resources: 为静态资源或配置⽂件:

子目录

  • /static:静态资源⽂件夹, ⽐如前期学的js, css, html等静态⽂件, 不需要服务器数据进⾏绑定的⻚⾯
  • /templates:模版资源⽂件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需要服务器动态渲染数据的⽂件
  • src/test/java: 测试代码源代码
  • pom.xml: maven 配置⽂件

2.5 运⾏项⽬

SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080

先运行src/main/java/.../项目名Application
在这里插入图片描述

打开浏览器,在浏览器中输入localhost:8080然后点击搜索,出现下面的页面:
在这里插入图片描述

3.Web服务器

浏览器和服务器两端进⾏数据交互, 使⽤的就是HTTP协议
在这里插入图片描述
HTTP 协议就是 HTTP 客⼾端和 HTTP 服务器之间的交互数据的格式.

Web 服务器就是对HTTP协议进⾏封装, 程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议规则),让Web开发更加便捷, 所以Web服务器也被称为WWW服务器, HTTP服务器, 主要功能是提供⽹上信息浏览服务.

常⻅的Web服务器有: Apache,Nginx, IIS, Tomcat, Jboss等 SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080

4.总结

  1. Spring Boot 是为了快速开发 Spring ⽽诞⽣的, Spring Boot 具备:
  2. Spring Boot 提供了启动添加依赖的功能, 可以快速集成框架.
  3. 内置web服务器,⽆需配置 Tomcat 等 Web服务器,直接运⾏和部署程序.
  4. 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发.
  5. ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点.

http://www.ppmy.cn/embedded/171709.html

相关文章

ERROR:L6002U 一种解决方案

1.问题描述 前面的文章也讲到过有一次出现&#xff0c;这次再看一下为什么 打开这个文件&#xff0c;以及它的头文件 源文件报错信息&#xff1a; 2、原因查找 这是由于不同的人上传不同的工程&#xff0c;拉取更新导致的&#xff0c;可能的原因是keil文件夹的组织方式。 很…

Spring Boot/Spring Cloud 整合 ELK(Elasticsearch、Logstash、Kibana)详细避坑指南

我们在开发中经常会写日志&#xff0c;所以需要有个日志可视化界面管理&#xff0c;使用ELK可以实现高效集中化的日志管理与分析&#xff0c;提升性能稳定性&#xff0c;满足安全合规要求&#xff0c;支持开发运维工作。 下述是我在搭建ELK时遇到的许许多多的坑&#xff0c;希望…

【FPGA】导航

注&#xff1a;有的地方可能会有点问题&#xff0c;忘记传的是哪个版本了 目录 I型 R型 J型 lw、sw 扩展 MIPS CPU设计-CSDN博客 【FPGA】参考设计文档-CSDN博客 I型 【计组】实验三 ORI指令设计实验-CSDN博客 R型 【计组】实验四 R型指令设计实验-CSDN博客 J型 【…

AI日报 - 2025年3月11日

AI日报 - 2025年3月11日 &#x1f31f; 今日概览&#xff08;60秒速览&#xff09; ▎&#x1f916; AGI突破 | OpenAI发布神秘预告引发AGI猜测 &#x1f52c; 中国AI代理「Manus」实现50项任务自动化引伦理争议 ▎&#x1f4bc; 商业动向 | ServiceNow拟30亿美元收购Movework…

串口助手的C#编写以及有人串口服务器USR-DR301的使用

本文介绍C#编写串口程序的要点,串口服务器USR-DR301(RS232转TCP)的使用、以及调试过程中碰到的两个问题: 1). 调用串口报“连到系统上的设备没有发挥作用”. 2). “所有文本框都变成了透明”的异常处理 代码见:https://download.csdn.net/download/qq_34047402/9046713…

工作记录 2016-12-22

工作记录 2016-12-22 更新的问题 1、修改了Job Summary的Bill Amount的Bug。 2、修改了Account #的宽度。 3、修改了Clearinghouse Status的默认查询的条件。 4、修改了Upload Files的Add File的bug。 5、Pending Pool、Missing Infos加了Write Off&#xff0c;修改了Histor…

JVM类加载器面试题及原理

JVM只会运行二进制文件&#xff0c;类加载器的作用就是将字节码文件加载到JVM中&#xff0c;从而让Java程序能够启动起来。 1. 类加载器的种类 启动类加载器&#xff08;BootStrap ClassLoader&#xff09;&#xff1a;加载JAVA_HOME/jre/lib目录下的库扩展类加载器&#xff…

AI 驱动的软件测试革命:从自动化到智能化的进阶之路

&#x1f680;引言&#xff1a;软件测试的智能化转型浪潮 在数字化转型加速的今天&#xff0c;软件产品的迭代速度与复杂度呈指数级增长。传统软件测试依赖人工编写用例、执行测试的模式&#xff0c;已难以应对快速交付与高质量要求的双重挑战。人工智能技术的突破为测试领域注…