【SpringBoot】一文带你入门SpringBoot

news2024/11/25 2:40:39

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。
🍎个人主页:Hhzzy99
🍊个人信条:坚持就是胜利!
💞当前专栏:【Spring】
🥭本文内容:SpringBoot的入门学习

Spring Boot


文章目录

  • Spring Boot
  • 前言
  • SpringBoot简介
    • 开发第一个SpringBoot程序
      • 使用IDEA创建Maven工程
      • 项目构建
      • 项目启动
      • SpringBoot的便捷创建方式
  • 结语


前言

前面几篇文章我们学习完了SpringSpringMVC,以及SSM整合的案例,接下来我们将进入SpringBoot的学习。如果有同学想看前面的文章可以到本专栏去看传送门🚩


SpringBoot简介

Spring作为一个轻量级的容器,在Java EE 开发中得到了广泛的应用,但是 Spring 的配置烦琐臃肿,在和各种第三方框架进行整合时代码量都非常大,并且整合的代码大多是重复的,为了使开发者能够快速上手 Spring,利用Spring框架快速搭建 Java EE 项目,Spring Boot 应运而生。 Spring Boot 带来了全新的自动化配置解决方案,使用 Spring Boot 可以快速创建基于 Spring 生产级的独立应用程序。Spring Boot 中对一些常用的第三方库提供了默认的自动化配置方案,使得开发者只需要很少Spring 配置就能运行一个完整的 Java EE 应用。Spring Boot 项目可以采用传统的方案打成 war 包,然后部署到 Tomcat 中运行。也可以直接打成可执行jar包,这样通过java -jar命令就可以启动一个 Spring Boot 项目。总体来说,Spring Boot 主要有如下优势:

  • 提供一个快速的Spring项目搭建渠道。
  • 开箱即用,很少的 Spring 配置就能运行一个Java EE 项目。
  • 提供了生产级的服务监控方案。
  • 内嵌服务器,可以快速部署
  • 提供了一系列非功能性的通用配置
  • 纯Java配置,没有代码生成,也不需要 XML配置

开发第一个SpringBoot程序

SpringBoot 程序可以通过很多方式来创建,最通用的方式是使用Maven创建。

使用IDEA创建Maven工程

1.创建项目时选择Maven,但是不用选择项目骨架,直接单击Next即可
1
2.输入相关信息,以及选择项目位置,然后单击Finish,完成项目创建
在这里插入图片描述

项目构建

1.添加依赖
首先添加spring-boot-starter-parent作为parent,代码如下:

<parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.2.5.RELEASE</version>
    </parent>

spring-boot-starter-parent 是一个特殊的 Starter,提供了一些 Maven 的默认配置,同时还提供了dependency-management,可以使开发者在引入其他依赖时不必输入版本号,方便依赖管理。SpringBoot 中提供的 Starter 非常多,这些 Starter 主要为第三方库提供自动配置,例如要开发一个 Web 项目,就可以先引入一个WebStarter,代码如下:

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.编写启动类
接下来创建项目的入口类,在Maven工程的java目录下创建项目的包,包里创建一个App类,代码如下:

public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

代码解释:

  • @EnableAutoConfiguration 注解表示开启自动化配置。由于项目中添加了 spring-boot-starter-web 依赖,因此在开启了自动化配置之后会自动进行 SpringSpring MVC 的配置。
  • 在Java 项目的main 方法中,通过 SpringApplication 中的run 方法启动项目。第一个参数传入 App.class,告诉Spring 哪个是主要组件。第二个参数是运行时输入的其他参数。
    接下来创建一个SpringMVC中的控制器—HelloController,代码如下:
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "hello spring boot";
    }
}

在控制器中提供了一个“/hello”接口,此时需要配置包扫描才能将 HelloController 注册SpringMVC 容器中,因此在App 类上面再添加一个注解@Componentscan 进行包扫描,代码如下:

@EnableAutoConfiguration
@ComponentScan
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

也可以直接使用组合注解@SpringBootApplication来代替@EnableAutoConfiguration@ComponentScan,代码如下:

@SpringBootApplication
//@EnableAutoConfiguration
//@ComponentScan
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

项目启动

直接运行App类的main方法,就可以启动项目了
在这里插入图片描述
启动成功之后,在浏览器输入localhost:8080/hello就可以看到

在这里插入图片描述

SpringBoot的便捷创建方式

上面介绍的创建方式的步骤有点多。在实际项目中,大家可以选择适合自己的创建方式。下面介绍两种快捷创建方式。
1.在线创建
在线创建是SpringBoot官方提供的一种创建方式,在浏览器中输入网址https://start.spring.io,可以看到如图界面。
在这里插入图片描述
在这个页面中,可以选择项目的构建工具是Maven 还是 Gradle、语言是Java 还是其他、要使用的Spring Boot 版本号、项目的组织Id(包名)、模块名称以及项目的依赖。所有这些信息选好或填好后,单击 GENERATE 按钮将生成的模板下载到本地,解压后用 IDEA 打开即可开始项目的开发。
2.使用IDEA创建
使用IDEA可以直接创建一个SpringBoot项目,注意:社区版的IDEA是没有此功能的。 创建方式如下:
步骤一:创建项目时选择Spring Initializr
在这里插入图片描述
步骤二:输入项目基本信息
在这里输入项目的基本信息,包括组织Id、模块名称、项目构建类型、最终生成包的类型、Java的版本、开发语言、项目版本号、项目名称、项目描述以及项目的包。
在这里插入图片描述
步骤三:选择依赖
如图,选择项目所需要添加的依赖,之后IDEA会自动把选中的依赖添加到项目的pom.xml文件中。
在这里插入图片描述
步骤四:再次填写项目的相关信息

在这里插入图片描述
经过上面4个步骤之后,一个可运行的SpringBoot项目就创建成功了。


结语

本文主要向大家介绍了一个简单的 Spring Boot 项目的基本创建过程,从而让大家感受到 Spring Boot 的魅力。当一个Spring Boot 项目创建成功之后,几乎零配置,开发者就可以直接使用 SpringSpring MVC 中的功能了。下一章将向大家详细介绍 Spring Boot 的基础配置。

如果大家对我所写的内容觉得还行的话,希望可以点个关注,点个收藏,您的支持就是我最大的动力,非常感谢您的阅读(❁´◡`❁)

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

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

相关文章

【职场进阶】做好项目管理,先从明确职责开始

优秀的项目管理一定是高效协调各方资源、反馈及时、调整迅速的。 同时可以做到让参与各方在整个项目过程中张弛有序、愉快合作&#xff0c;最终实现产品项目的效益最大化。 那什么是项目呢&#xff1f; 项目是为向客户提供独特的产品或服务而进行的临时性任务&#xff0c;项目有…

TypeScript 对象key为number时的坑

首先在js的对象中有一个设定&#xff0c;就是对象的key可以是字符串&#xff0c;也可以是数字。 不论key是字符串还是数字&#xff0c;遍历对象key的时候&#xff0c;这个key会变成字符串 通过[] 操作符访问key对应值时候&#xff0c;不论是数字还是字符串都转成了 字符串的k…

Chromedriver安装教程

第一步 查看你当前Chrome浏览器的版本&#xff0c;如下图所示&#xff1a; 第二步 查看当前Chrome浏览器的版本号&#xff0c;如下图所示,版本 108.0.5359.125&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09;中的&#xff0c;108就是我们的版本号。 第三…

VTK-PointPlacer

前言&#xff1a;本博文主要研究VTK中点转换到曲面上的应用&#xff0c;相关的接口为vtkPolygonalSurfacePointPlacer&#xff0c;为深入研究将基类vtkPointPlacer开始讲解。主要应用为在PolyData表面进行画线。 vtkPointPlacer 描述&#xff1a;将2D display位置转换为世界坐…

ospf知识点汇总

OSPF &#xff1a; 开放式最短路径优先协议使用范围&#xff1a;IGP 协议算法特点&#xff1a; 链路状态型路由协议&#xff0c;SPF算法协议是否传递网络掩码&#xff1a;传递网络掩码协议封装&#xff1a;基于IP协议封装&#xff0c;协议号为 89一.OSPF 特点1.OSPF 是一种典型…

基于javaweb(springboot+mybatis)网上酒类商城项目设计和实现以及文档报告

基于javaweb(springbootmybatis)网上酒类商城项目设计和实现以及文档报告 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏…

【Linux】Linux项目自动化构建工具—make/Makefile

目录一.什么是make/MakefileMakefilemake二.Makefile逻辑1.简单依赖2.复杂依赖三.make指令1.make的使用2.clean清理3.伪目标4.make如何确定是否编译访问时间的影响修改时间的影响一.什么是make/Makefile Makefile 在Windows下&#xff0c;我们使用VS、VS Code这些ide编写C/C程…

MySQL的客户端/服务器架构

以我们平时使用的微信为例&#xff0c;它其实是由两部分组成的&#xff0c;一部分是客户端程序&#xff0c;一部分是服务器程序。客户端可能有很多种形式&#xff0c;比如手机APP&#xff0c;电脑软件或者是网页版微信&#xff0c;每个客户端都有一个唯一的用户名&#xff0c;就…

赶紧收藏 | 50个超实用微信小程序,巨好用|||内含免费配音软件

现在App太多了&#xff0c;想用的功能都要下载&#xff0c;但是手机有258g内存不允许这么放肆呀&#xff0c;只能挖掘不占用存的方法了&#xff0c;小程序就解决了这个痛&#xff0c;节省内存&#xff0c;让手机不再卡顿&#xff0c;打游戏也舒服.给大家整理了50个很好用的小程…

【阶段三】Python机器学习11篇:机器学习项目实战:KNN(K近邻)回归模型

本篇的思维导图: 项目实战(KNN回归模型) K近邻算法回归模型则将离待预测样本点最近的K个训练样本点的平均值进行待预测样本点的回归预测。 项目背景 K近邻除了能进行分类分析,还能进行回归分析,即预测连续变量,此时的KNN称为K近邻回归模型。回归问题是一类…

synchronized 重量级锁分析

synchronized 重量级锁分析 1. 背景 在JDK1.6以前&#xff0c;synchronized 的工作方式都是这种重量级的锁。它的实现原理就是利用 kernel 中的互斥量,mutex。主要是内核中的mutex 能够保证它是一个互斥的量。如果线程1拿到了 mutex,那么线程2就拿不到了。这是内核帮我们保证…

二十三、Kubernetes中Pod控制器分类、ReplicaSet(RS)控制器详解

1、概述 Pod是kubernetes的最小管理单元&#xff0c;在kubernetes中&#xff0c;按照pod的创建方式可以将其分为两类&#xff1a; 自主式pod&#xff1a;kubernetes直接创建出来的Pod&#xff0c;这种pod删除后就没有了&#xff0c;也不会重建 控制器创建的pod&#xff1a;kub…

小米应用商店APP侵权投诉流程

目录一、官方指引二、侵权投诉流程1.侵权投诉通知和反通知流程2.受理渠道3.权利人发起侵权通知邮件一、官方指引 https://dev.mi.com/distribute/doc/details?pId1142 二、侵权投诉流程 1.侵权投诉通知和反通知流程 2.受理渠道 对外邮箱&#xff1a;developerxiaomi.com …

云呐|固定资产盘点APP

如果工人想做好他们的工作&#xff0c;他们想做好他们的工作。目前&#xff0c;行政事业单位对固定资产管理进行一物一卡一码管理&#xff0c;根据条形码粘贴和扫码总结&#xff0c;是目前科学完善的总结方法&#xff0c;具有快速、高效、准确的特点。对于这种方法&#xff0c;…

5.6、TCP超时重传时间的选择

超时重传时间的选择是 TCP 最复杂的问题之一 1、超时重传时间RTO的选取 假设主机 A 给主机 B 发送 TCP 数据报文段 000&#xff0c;并记录下当前的时间 主机 B 收到后&#xff0c;给主机 A 发送相应的确认报文段 主机 A 收到确认报文段后&#xff0c;记录下当前的时间 那么…

为什么BI仪表板的共享功能对企业如此重要?

随着大数据的发展&#xff0c;企业逐渐将数据作为其决策的重要组成部分&#xff0c;共享商业智能 (BI) 仪表板显得越来越重要。例如&#xff0c;在员工之间共享BI仪表板&#xff0c;不仅可以做出更好的数据驱动决策&#xff0c;还可以更好地提高工作透明度和问责制&#xff0c;…

Golang时间处理容易踩坑,小心损失百万

简介 在各个语言之中都有时间类型的处理&#xff0c;因为这个地球是圆的&#xff08;我仿佛在讲废话&#xff09;&#xff0c;有多个时区&#xff0c;每个时区的时间不一样&#xff0c;在程序中有必要存在一种方式&#xff0c;或者说一种类型存储时间&#xff0c;还可以通过一系…

手写RPC框架第8版-通过SpringBoot-Starter接入SpringBoot

源代码地址&#xff1a;https://github.com/lhj502819/IRpc/tree/v9 系列文章&#xff1a; 注册中心模块实现路由模块实现序列化模块实现过滤器模块实现自定义SPI机制增加框架的扩展性的设计与实现基于线程和队列提升框架并发处理能力框架容错性相关设计通过SpringBoot-Starte…

LayoutInflater学习(二)之创建布局View

这篇是在上篇的基础上继续学习LayoutInflater,上篇主要讲了LayoutInflater是怎么解析布局的,但是并没有去仔细地说明LayoutInflater创建View的过程,这篇就补上这部分。 LayoutInflater创建xml布局View是分开创建的: 1. 先创建xml布局最外层的View,也就是布局的根View 2. 递归…

package.json和package-lock.json的区别

前言 今天正在写代码&#xff0c;同学突然问我&#xff0c;package.json和package-lock.json有什么区别&#xff0c;这两个文件有什么用&#xff1f;我愣住了… 模块化开发 经过这么多年的发展&#xff0c;现在的前端开发基本上都是模块化开发了。而node和npm则可以很方便的…