【框架篇】Spring Boot核心介绍及项目创建(详细教程)

news2024/11/27 8:45:27

在这里插入图片描述

Spring Boot介绍及项目创建

在这里插入图片描述


一,Spring Boot 核心介绍

Spring Boot 是基于 Spring 开发的一种轻量级的全新框架,不仅继承了 Spring 框架原有的优秀特性,而且还通过简化配置来进一步简化了 Spring 应用的整个搭建和开发过程。通过Spring Boot,可以轻松地创建独立的,基于生产级别的和基于 Spring 的应用程序。

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

Spring Boot 优点:

  1. 简化配置:Spring Boot通过约定优于配置的原则,通过提供默认的配置和自动配置功能,大大简化了应用程序的配置工作。开发者可以减少手动配置,避免繁琐的XML配置,从而更专注于业务逻辑的开发。
  2. 快速集成框架:Spring Boot提供了依赖管理和快速集成各种框架的能力,开发者可以通过添加相应的依赖来集成其他功能和框架,大大缩短了集成的时间和复杂度。
  3. 内置运行容器:Spring Boot内置了多个常用的Web服务器(如Tomcat、Jetty、Undertow),无需手动配置和部署外部的Web容器,可以直接运行和部署应用程序。这简化了应用程序的部署过程,提高了开发和测试的效率。
  4. 快速部署:Spring Boot支持将应用程序打包成可执行的JAR文件,无需依赖外部的容器即可部署和运行项目。这使得项目的部署更加简单和灵活,节省了部署和配置的时间。
  5. 监控和指标:Spring Boot提供了一套用于监控应用程序健康状况和性能指标的功能,通过健康检查、性能监控等,开发者可以更好地了解应用程序的运行状态和性能指标。这有助于及时发现和解决问题,提高应用程序的可靠性和性能。

二,Spring Boot 项目创建

2.1,社区版IDEA 创建

在使用社区版 IDEA 创建 Spring Boot 项目之前,我们需要先安装 Spring Boot Helper 插件,只有将此插件安装,才能创建 Spring Boot 项目。

Spring Boot Helper 插件安装流程如下:

image-20230711203146022

插件安装好后,插件名称会变为Spring Initializr ,Spring Boot 项目就可以创建了。Spring Boot 项目创建流程如下:

1,选择项目创建的源地址,默认是 Spring 官网地址,也可以自己选择输入阿里的源地址。

image-20230711203804751

2,对项目的一些参数进行设置,需要特别注意项目类型和 JDK 版本的选择。

image-20230711204620750

3,选择项目需添加的框架依赖和项目版本号,项目版本号应根据 JDK 版本来进行选择,框架依赖根据需求来进行选择。

image-20230711205403208

4,填写项目的项目名称以及保存路径,注意项目名称和保存路径中不能存在中文,需都为英文。

image-20230711210022535

5,当出现该页面,表明 Spring Boot项目创建成功。因第⼀次打开 Spring Boot 项⽬需要加载项目的相关依赖框架,故需加载很久。

image-20230711211509052


2.2,专业版IDEA 创建

使用专业版 IDEA 创建 Spring Boot 项目,不需要手动安装插件,可直接进行Spring Boot 项目创建。Spring Boot 项目创建流程如下:

1,设置项目的相关参数,例如:项目的名称,保存地址,源地址,项目类型,JDK 版本号等信息。

image-20230711210631851

2,选择项目的版本号和项目所需要的依赖框架,项目版本号应根据 JDK 版本来进行选择,框架依赖根据需求来进行选择。

image-20230711210957459

3,当出现当出现该页面,表明 Spring Boot项目创建成功。

image-20230711211509052

注意:社区版 IDEA 创建和专业版 IDEA创建 Spring Boot项目的基本流程基本都一样,只是社区版在创建项目之间需要安装 Spring Boot Helper 插件,而专业版不需要手动进行安装此插件。


2.3,网页版 创建

除了上述两种方式外,我们还可以使用 Spring 官方提供的网页来进行创建 Spring Boot 项目。

网页版创建项目基本流程同IDEA创建方式也基本相同,网页版创建方式访问:https://start.spring.io。该项目创建流程为:

1,对项目的一些相关参数信息和所需要的依赖框架进行填写和选择操作,再点击GENERATE键进行项目创建。

image-20230711213302050

2,点击项目创建后,该 Spring Boot 项目会以压缩包的形式在该网页上进行下载到本地的操作。

image-20230714202642846

3,将此Spring Boot 项目压缩包进行解压缩操作后,就可以直接通过IDEA打开使用即可。

image-20230711211509052

注意:该 Spring Boot项目可以直接使用,这跟社区版有无安装 Spring Boot Helper 插件没有丝毫关系。


三,Spring Boot项目目录

当你创建一个Spring Boot项目时,通常会有以下目录结构:

  1. src/main/java:主要的 Java 代码目录。
    • 包名目录:根据项目的包名结构,包含项目的 Java 源代码文件。
  2. src/main/resources:主要的资源文件目录。
    • application.properties 或 application.yml:用于配置 Spring Boot 应用程序的属性。
    • static:用于存放静态资源文件,如 CSS、JavaScript 和图片等。
    • templates:用于存放模板文件,如 Thymeleaf 或 FreeMarker 模板。
  3. src/test/java:测试代码目录。
    • 包名目录:根据项目的包名结构,包含项目的测试 Java 源代码文件。
  4. src/test/resources:测试资源文件目录。
    • 用于存放测试所需的资源文件,例如测试配置文件、测试数据文件等。
  5. pom.xml(Maven)或 build.gradle(Gradle):构建工具的配置文件
    • 用于管理项目的依赖、插件和构建设置等。
  6. target:构建过程中生成的输出目录。
    • 用于存放编译后的类文件、打包生成的可执行文件(如JAR、WAR等),以及其他构建生成的文件。
    • 该目录通常不会被纳入源代码管理,因为它是自动生成的。

Spring Boot 项目目录结构图:

image-20230713185450301


四,Spring Boot项目运行

@SpringBootApplication 是 Spring Boot 项目的启动类注解,点击启动类的 main 方法就可以运行 Spring Boot 项目。

image-20230711212328256

点击启动类的 main 方法运行 Spring Boot项目后,当出现标记的部分,说明 Spring Boot 项目成功运行。

image-20230711212426692

利用 Spring Boot 来实现和浏览器的交互操作示例:在浏览器上打印输出Hello Spring Boot!,基本流程为:

1,在创建的项目包路径下创建UserController 文件,示例实现代码:

package com.example.springboot;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/say")
    public String say(){
        return "Hello Spring Boot!";
    }
}

2,重新启动项目,访问地址 localhost:8080/user/say

image-20230714205421848


五,Spring Boot项目注意

1)创建的类要放在创建项目包目录下,也就是同启动类一样在同一级,如果创建的类与启动类不在同级目录,运行会报错。

2)每当对项目进行修改操作后,都需要手动对项目进行重新运行操作,只有这样,修改操作才会在项目中生效。

3)Spring boot项目中不需要配置扫描路径,只需要创建的类与启动类同级或者属于启动类同级的包下的子类。


结语

这就是本期博客的全部内容啦!如果有什么其他的问题无法自己解决,可以在评论区留言哦!

最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞👍,评论✍,收藏📖),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!

在这里插入图片描述


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

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

相关文章

NO.453 最小操作次数使数组元素相等

题目 给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 思路 本题要求,获取最小操作次数,即在满足所有元素均相等的情况下,操作次数最少。 由于本题无法确定最终元素…

火车头采集器伪原创插件【php源码】

火车头采集是一款基于Python语言开发的网络爬虫工具&#xff0c;用于快速高效地从互联网上采集数据并存储到本地或远程数据库。它简单易用且功能强大&#xff0c;在各行各业广泛应用。 火车头采集器AI伪原创PHP源码&#xff1a; <?php header("Content-type: text/h…

(四)springboot实战——springboot的事件与监听器原理

前言 本节内容是关于springboot的一些核心原理的总结&#xff0c;包括springboot的事件原理、生命周期流程、事件触发流程等核心内容的介绍&#xff0c;从而帮助我们更好的理解与使用springboot&#xff0c;这里只做概念性的内容总结&#xff0c;实战的部分请关注作者后续博客…

数学建模-分类模型 Fisher线性判别分析

论文中1. 判别分析系数 2. 分类结果 多分类问题 勾选内容和上面一样

06微分方程模型练习

用Matlab求解微分方程 y ′ − 2 y 2 x 2 2 x , y ( 0 ) 1 y-2y2x^{2}2x,y\left( 0\right) 1 y′−2y2x22x,y(0)1 y1 dsolve(Dy-2*y2*x.^22*x) y2 dsolve(Dy-2*y2*x.^22*x,y(0)1,x)用Matlab分别求解微分方程 y ′ − 2 y 2 x 2 2 x , y ( 0 ) 1 y-2y2x^{2}2x,y\left…

C语言动态内存管理(二)经典笔试题

第二篇内容为大家详细剖析关于动态内存管理的几个经典笔试题 目录 四、笔试题1.请问运行Test函数会有什么样的结果&#xff1f;结果&#xff1a;结果运行出错的原因&#xff1a;本题目注意点&#xff1a;改正该题目的错误&#xff1a;正确修改1&#xff1a;&#xff08;利用传值…

Electron入门学习_使用预加载脚本

学习网址&#xff1a; https://www.electronjs.org/zh/docs/latest/tutorial/tutorial-preload 1.什么是预加载脚本 Electorn 的主进程是一个拥有完全操作系统访问权限的Node.js ,除了Electron 模组&#xff0c;之外&#xff0c;您也可以访问Node.js 内置模块和所有通过npm安装…

质效两全:媒体服务的创新“顶设”

做媒体服务&#xff0c;一定要有刻入骨髓的抽象思维。 视频化浪潮汹涌、生成式人工智能AIGC极速迭代、体验需求和应用场景愈发多样......面对“视频生产力”的变革&#xff0c;我们能否透过纷繁复杂的表象&#xff0c;洞察音视频行业的“真正需求”&#xff1f; 是否存在一套…

【mysql数据库】MySQL7在Centos7的环境安装

说明&#xff1a; 安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;⼀旦安装&#xff0c;普通用户就能使用。初期练习&#xff0c;mysql不进行用户管理&#xff0c;全部使⽤root进⾏&#xff0c;尽快适应mysql语句&#xff0c;后⾯学了用户管理&#xff0c;在考虑新…

matlab dot()函数求矩阵内积,三维 ,多维 详解

matlab dot()函数求矩阵内积&#xff0c;三维 &#xff0c;多维 详解 Cdot(A,b,X)&#xff0c;这个参数X 只能取1,或者2。1 表示按列&#xff0c;2表示按行&#xff0c;如果没有参数。默认按列。 1&#xff09;按列优先计算 Cdot(A,B)dot(A,B,1)[a1*b1a4*b4 ,a2*b2a5*b5 ,a…

html,css初学

安装VSCODE ,插件&#xff1a;live server &#xff0c;html support html 然后为了更好地理解&#xff0c;请逐步输入&#xff0c;并及时查看效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>D…

A--自动收小麦机--2023河南萌新联赛第(二)场:河南工业大学

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 示例1 输入 4 1 2 1 1 4 5 2 2 2 3 4 输出 10 说明 在第4格放出水流后&#xff0c;水流会流向第3格&#xff0c;由于第3格高度比第4格低&#xff0c;所以水流继续向左流向第2格&#xff0…

爬虫的编解码方式

get请求的quote方法 我们在对爬取一个网页的时候&#xff0c;我们复制了这个网页的地址&#xff0c;但我们发现在将他粘贴下来以后不会是汉字&#xff0c;而是一串字符&#xff0c;这时候&#xff0c;我们需要去对字符进行编码&#xff0c;以便于我们能够继续去爬取网页。 例…

markdown编写数学公式

在计算机这一块&#xff0c;我们肯定会接触到数学&#xff0c;数学中又包含很多公式&#xff0c;但是到现在&#xff0c;手写这些公式应该不陌生&#xff0c;但是如果让你电脑敲出来&#xff0c;你绝对很懵逼&#xff0c;这也造成了我们有时候写笔记时一些公式没办法在电脑上像…

ffmpeg离线安装ffmpeg-4.1.4-amd64-static.tar.xz

1.下载离线包 John Van Sickle - FFmpeg Static Builds 找历史版本&#xff1a;Index of /ffmpeg/old-releases 我选择是的4.1.4版本 2.解压 tar -xvJf ffmpeg-4.1.4-amd64-static.tar.xz 3.移动文件到opt目录下 4.添加全局链接 ln -s /opt/ffmpeg-4.1.4-amd64-static/ffm…

【C++基础(五)】类和对象(上)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C初阶之路⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; 类和对象-上 1. 前言2. 类的引入3. 类的定义4. 类的…

代码随想录-回溯(组合问题)|ACM模式

目录 前言&#xff1a; 77.组合 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 216. 组合总和 III 题目描述&#xff1a; 输入输出示例&#xff1a; 思路和想法&#xff1a; 17. 电话号码的字母组合 题目描述&#xff1a; 输入输出描述&a…

MODBUS TCP转CCLINK IE协议网关profinet接口和以太网接口的区别

你是否曾经遇到过需要将不同的设备连接到一个统一的网络中&#xff1f;或者你是否曾经遇到过设备之间的通讯协议不兼容的问题&#xff1f;远创智控的YC-CCLKIE-TCP通讯网关就是为解决这些问题而设计的。 YC-CCLKIE-TCP通讯网关是一款自主研发的CCLINK IE FIELD BASIC从站功能…

OpenAI报错 time out:HTTPSConnectionPool(host=‘api.openai.com‘, port=443)

项目场景&#xff1a; 使用openai的api调用chatGPT报错&#xff0c;同样的代码在另一台机器没有问题 问题描述 使用官方示例 import openaiopenai.api_key sk-xxxx def chat_gpt(prompt):prompt promptmodel_engine "text-davinci-003"completion openai.Comp…

【Default config not found for ApplicationConfig】的一种解决方案

&#x1f4a7; 记录一下今天遇到的 b u g \color{#FF1493}{记录一下今天遇到的bug} 记录一下今天遇到的bug&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算…