SpringBoot概述及项目的创建使用

文章目录

  • 一. Spring Boot概述
    • 1. 什么是Spring Boot?
    • 2. Spring Boot的优点
  • 二. Spring Boot项目的创建
    • 1. 使用IDEA创建
      • 1.1. 准备工作
      • 1.2. 创建运行Spring Boot项目
      • 1.3. 进行Web交互
      • 1.4. 目录工程介绍
      • 1.5. 项目快速添加依赖
      • 1.6. 防止配置文件乱码所需的配置
      • 1.7. SpringBoot热部署
    • 2. 使用网页创建SpringBoot项目

一. Spring Boot概述

1. 什么是Spring Boot?

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

Spring Boot 直接翻译过来就是 Spring 脚手架的意思,平时我们我们也能常见到在建造房屋等建筑时脚手架这种工具是很常见的,建筑行业的脚⼿架的作用是砌筑砖墙,浇筑混凝⼟,⽅便墙⾯抹灰,装饰和粉刷的,也就是说使用脚手架可以提高建房的效率。

img

而我们这里也一样,Spring 脚手架,它就能够提高开发 Spring 项目的效率。

2. Spring Boot的优点

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

二. Spring Boot项目的创建

1. 使用IDEA创建

1.1. 准备工作

首先看你的 IDEA 是社区版还是专业版,专业版是无需额外安转插件的,直接创建 SpringBoot 项目即可。

而社区版 IDEA 中没有内置 Spring Boot 项目创建的插件,此时就需要下载第三方插件Spring Boot Helper来创建Spring Boot项目。

插件安装步骤:
1️⃣第一步,从IDEA找到Setting设置。
img
2️⃣第二步,找到插件选项,搜索安装后重新启动 IDEA 即可。
img
对于专业版的 IDEA,本身内置的插件这个插件了,社区版安装好插件后和专业版就大同小异了,看下面的介绍,以社区版为例。

1.2. 创建运行Spring Boot项目

1️⃣第一步,新建项目,选择你常用的 jdk 版本,现在稳定的有 8,11,17 三个版本,我这里用的是 jdk1.8。
img
2️⃣第二步,选择 Java 版本(一定要选择本地存在的 jdk 版本)和项目类型,然后next。
img

3️⃣第三步,选择 Spring Boot 版本,要注意使用 jdk1.8 的话只能选择 版本为2.x.x的,后面没有字母的是稳定版。
img

4️⃣第四步,添加需要的依赖,看选项选择即可,然后 next。

img
img
5️⃣第五步,设置项目名称与路径,设置好后点击 Finish 即可。
img

6️⃣第六步,添加 Maven 工具,社区版打开项目后,右侧没有 Maven 需要我们手动添加,这是因为社区版 IDEA 不能识别该项目为 Maven 项目,专业版没有这个问题。

img

img

要注意 IDEA 社区版是有一些 Bug 的,在 pom.xml 文件中,我们要选择的 springboot 版本是2.7.14,但它加的是2.7.14.RELEASE,我们把后面的RELEASE删除即可,专业版是没有这个问题的。

img
7️⃣第七步,刷新等待项目加载完成,直到 SpringBoot 项目的启动类DemoApplication图标变蓝为止。

imgimg

第一次加载时间可能有点久,如果加载失败,先看 Maven 配置的是不是国内源,试着重新加载几次,实在不行,再将 SpringBoot 的源成换国内的阿里源试一试。
img
所谓启动类就是带有@SpringBootApplication注解的那个类。
img
点击运行按钮,显示下图中的结果就表示 SpringBoot 项目创建成功了。
img

8️⃣第八步,创建完 SpringBoot 项目之后我们还可以删除一些没有用的目录,不影响使用。

img

1.3. 进行Web交互

我们写一个程序,当浏览器访问路径时,在网页上输出网页上显示Hello,SpringBoot!,如果能够成功显示到浏览器的话才表示我们创建项目创建完全没有问题。

要注意在 SpringBoot 项目中,我们创建的类必须在启动类同级目录或者子级目录下,这样才能被被框架识别扫描到,因为在 Spring Boot 项目中是不需要配置扫描路径的,只需要将类创建在指定目录下即可,这也是 SpringBoot 项目的一个特点,约定大于配置(相较于 Spring 配置较少,在 Spring 中需要配置 Bean 的扫描路径的,而 Spring Boot 中不需要,放到约定的路径下即可)。

package com.example.springboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class TestController {@ResponseBody   // 不加默认返回一个页面, 这是历史问题, 返回一个非静态页面数据,可以加到类上也可以加到方法上@RequestMapping("/hello")public static String sayHi() {return "Hello, SpringBoot!";}
}

启动程序。

img
🍂访问结果:
img

我们再尝试将TestController移动到非启动类目录下,重新运行程序,访问路径。

img

🍂访问结果:

此时我们访问时,就报 404 了,这就说明此时 Spring Boot 项⽬没有将 TestController 对象注⼊到容器中。
img

1.4. 目录工程介绍

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

①src/main/java 为 Java 源代码。

②src/main/resources 为静态资源或配置⽂件:

  • /static:静态资源⽂件夹;
  • /templates:模版资源⽂件夹。

img

1.5. 项目快速添加依赖

1️⃣第一步,我们需要一个插件EditStarters,在 IDEA 插件设置中,下载安装,然后重启IDEA。
img

2️⃣第二步,找到pom.xml文件,右键选择Generate
img
3️⃣第三步,选择刚刚下载的插件那个选项。
img
4️⃣第四步,设置数据源,用默认就行。
img
5️⃣第五步,添加/修改依赖。
img

1.6. 防止配置文件乱码所需的配置

打开Setting,找到如下图所在目录,将所有的编码格式改为utf8
img

上面这一步只是设置了当前项目,我们还需要针对新项目做出同样的设置。
img
设置改好之后,需要删除配置文件重新创建,就不会出现乱码了。

1.7. SpringBoot热部署

1️⃣第一步,在pom.xml中添加spring-boot-devtools依赖。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency>

2️⃣第二步,打开Setting,开启项目自动编译。

img

3️⃣第三步,在Setting中开启项目运行中进行热部署(其实就是自动重启 IDEA)。

img

4️⃣第四步,再针对新项目完成上面第二步设置即可,之所以不设置第三步是因为Advanced Settings选项只有在File->Settings里面才有,只能在当前项目设置,而在File->New Projects Setup->Settings for New Projects这个设置页面里是没有的,所以需要我们在新项目中自己手动再去设置。
img

2. 使用网页创建SpringBoot项目

1️⃣第一步,打开SpringBoot项目创建网站:https://start.spring.io/

img
2️⃣第二步,配置项目,按照下图配置即可,与在IDEA创建及其类似。
img
3️⃣第三步,选择必要的依赖。
img

img
4️⃣第四步,点击创建按钮(点击一次即可,不然会下载多个 SpringBoot 的zip包)。
img
然后就会生成一个压缩包,自动下载到本地。
img
5️⃣第五步,解压后通过 IDEA 打开即可。
img

此时项目也是可以运行的。
img

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云安全攻防(十二)之 手动搭建 K8S 环境搭建

手动搭建 K8S 环境搭建 首先前期我们准备好三台 Centos7 机器&#xff0c;配置如下&#xff1a; 主机名IP系统版本k8s-master192.168.41.141Centos7k8s-node1192.168.41.142Centos7k8s-node2192.168.41.143Centos7 前期准备 首先在三台机器上都执行如下的命令 # 关闭防火墙…

Python random模块用法整理

随机数在计算机科学领域扮演着重要的角色&#xff0c;用于模拟真实世界的随机性、数据生成、密码学等多个领域。Python 中的 random 模块提供了丰富的随机数生成功能&#xff0c;本文整理了 random 模块的使用。 文章目录 Python random 模块注意事项Python random 模块的内置…

Matlab的Filter Designer工具设计二阶低通滤波器

Matlab版本&#xff1a;2018b 本文要求&#xff1a;设计一个二阶巴特沃斯低通滤波器用于嵌入式软件滤波&#xff0c;传感器采样频率是20KHz&#xff0c;截止频率是333Hz&#xff0c;获取滤波系数&#xff0c;本文不包括二阶滤波推导和代码编写。 打开Matlab->APP->Filt…

智能数据建模软件DTEmpower 2023R2新版本功能介绍

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件&#xff0c;致力于帮助工程师及工科专业学生&#xff0c;利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析&#xff0c;建立高质量的数据模型&#xff0c;实现快速设计评估、实时仿真预测、系统参数预警、设…

拦截器和过滤器的区别

&#x1f600;前言 本篇博文是关于拦截器VS 过滤器的分享&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我…

Nginx运行Vue项目:基本运行

需求 在Nginx服务器中&#xff0c;运行Vue项目。 说明 Vue项目打包生成的生产文件&#xff0c;是无法直接在浏览器打开的。需要放到Nginx服务器中&#xff0c;才能够访问。 本文章只介绍最基本的情况&#xff1a;Nginx中运行一个Vue项目。 实际生产环境&#xff0c;一个Ng…

opencv-进阶05 手写数字识别原理及示例

前面我们仅仅取了两个特征维度进行说明。在实际应用中&#xff0c;可能存在着更多特征维度需要计算。 下面以手写数字识别为例进行简单的介绍。 假设我们要让程序识别图 20-2 中上方的数字&#xff08;当然&#xff0c;你一眼就知道是“8”&#xff0c;但是现在要让计算机识别…

基于Spring Boot的高校在线考试系统的设计与实现(Java+spring boot+VUE+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的高校在线考试系统的设计与实现&#xff08;Javaspring bootVUEMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java s…

【数据结构】_7.二叉树概念与基本操作

目录 1.树形结构 1.1 树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的应用—表示文件系统的目录树结构 ​编辑​2.二叉树 2.1 概念 2.2 特殊二叉树 2.3 二叉树的性质 2.4 二叉树的存储结构 2.4.1 顺序存储结构&#xff08;数组存储结构&#xff09; 2.4.2…

React18TS项目:配置react-css-modules,使用styleName

他的好处不说了 网上一堆文章一个能打的都没有&#xff0c; 添加开发依赖 pnpm add -D dr.pogodin/babel-plugin-react-css-modules types/react-css-modules Babel Plugin "React CSS Modules" | Dr. Pogodin Studio 看dr.pogodin/babel-plugin-react-css-mo…

Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】

Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】 一、分布式系统遇到的问题1、服务挂掉的一些原因 二、解决方案三、Sentinel&#xff1a;分布式系统的流量防卫兵1、Sentinel是什么2、Sentinel和Hystrix对比3、Sentinel快速开发4、通过注解的方式来控流5、启动Sen…

判断推理

六哥爱学习呀 产品经理 不是说我努力学习我就一定可以通过考试&#xff0c;所以是推不出&#xff0c;类似数学中充分必要性 8 回复 发布于 2019-08-07 16:28 官方解析&#xff1a; 当丙的范围足够大时&#xff0c;可能与甲相交或完全包含甲&#xff0c;在此情况下&#xff0c;有…