SpringBoot2入门教程

Spring Boot 2 ● Create stand-alone Spring applications ○ 创建独立Spring应用 ● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) ○ 内嵌web服务器 ● Provide opinionated ‘starter’ dependencies to simplify your build configuration ○ 自动starter依赖,简化构建配置 ● Automatical 阅读详情

第一季:SpringBoot2核心技术-基础入门

学习要求

● 熟悉Spring基础
● 熟悉Maven使用

环境要求

● Java8及以上
● Maven 3.3及以上:
SpringBoot 2 的环境要求

01、Spring与SpringBoot

1、Spring能做什么

1.1、Spring的能力

Spring具有哪些能力呢?这点在Spring的官网上有比较详情的描述,我们可以在Spring的项目 里看到Spring的生态涵盖了web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等等
Spring的能力

1.2、Spring5重大升级

1.2.1、响应式编程的支持

在这里插入图片描述

1.2.2、内部源码设计

基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。

2、为什么用SpringBoot

通过上面的介绍我们发现Spring的生态很强大,那么为什么要还有SpringBoot的呢?了解过使用SpringMVC进行构建web应用的同学应该清楚,我们在创建web应用时我们要创建 前端控制器(DispatcherServlet)、请求处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)表单对象、(Form Object 提供给表单展示和提交到的对象就叫表单对象)这一大堆的文件代码,除此之外还有相应的配置,如果使用了MyBatis等数据库访问层的相关包还要写相关的配置文件等等,想想都头大,Spring为了让大家能够比较简单的使用Spring的生态,让大家的时间花在编写业务逻辑上还不是在项目的配置上就创建了SpringBoot的项目。
SpringBoot的重要程度在Spring的官网上就有所体现,在官网的中间部分如下:
在这里插入图片描述
SpringBoot主要起到了粘合剂的作用,它把我们在创建项目时使用的包和配置文件进行了整合,使得我们可以很方便的去创建项目,让我们更多的时间放在业务逻辑的编写上而不是在项目的创建上。

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
能快速创建出生产级别的Spring应用

2.1、SpringBoot优点

SpringBoot的优点我可以在 https://spring.io/projects/spring-boot 这里看到,下面我把优点复制过来了如下:
● Create stand-alone Spring applications
○ 创建独立Spring应用
● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
○ 内嵌web服务器
● Provide opinionated ‘starter’ dependencies to simplify your build configuration
○ 自动starter依赖,简化构建配置
● Automatically configure Spring and 3rd party libraries whenever possible
○ 自动配置Spring以及第三方功能
● Provide production-ready features such as metrics, health checks, and externalized configuration
○ 提供生产级别的监控、健康检查及外部化配置
● Absolutely no code generation and no requirement for XML configuration
○ 无代码生成、无需编写XML

SpringBoot是整合Spring技术栈的一站式框架
SpringBoot是简化Spring技术栈的快速开发脚手架

2.2、SpringBoot缺点

SpringBoot有优点当然也有一些不好的点
● 人称版本帝,迭代快,需要时刻关注变化(这个可以算作优点,说明社区比较活跃)
● 封装太深,内部原理复杂,不容易精通

3、时代背景

3.1、微服务

James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies-James Lewis and Martin Fowler (2014)
● 微服务是一种架构风格
● 一个应用拆分为一组小型服务
● 每个服务运行在自己的进程内,也就是可独立部署和升级
● 服务之间使用轻量级HTTP交互
● 服务围绕业务功能拆分
● 可以由全自动部署机制独立部署
● 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

3.2、分布式

在这里插入图片描述

分布式的困难

● 远程调用
● 服务发现
● 负载均衡
● 服务容错
● 配置管理
● 服务监控
● 链路追踪
● 日志管理
● 任务调度
● …

分布式的解决

SpringBoot + SpringCloud(用于微服务的框架)
在这里插入图片描述

3.3、云原生

原生应用如何上云。 Cloud Native

上云的困难

● 服务自愈
● 弹性伸缩
● 服务隔离
● 自动化部署
● 灰度发布
● 流量治理
● …

4、如何学习

推荐大家以官网为准 SpringBoot,SpringBoot文档每一个版本都有对应的文档
在这里插入图片描述

官网文档架构

最新版本的文档
在这里插入图片描述在这里插入图片描述

如果我们不想看当前版本的所有特性我只想查看当前版本与上一个版本不同的新特性可以访问这里;
https://github.com/spring-projects/spring-boot/wiki#release-notes
在这里插入图片描述

02、SpringBoot2入门

1、系统要求

● Java 8 & 兼容java14 .
● Maven 3.3+
● IntelliJ IDEA 2022.1

1.1、maven设置

首先设置一下我们的maven,如果已经修改过了就不用在修改了

 <!-- 指定使用阿里的源 -->
<mirrors>
      <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
      </mirror>
  </mirrors>
 
 <!-- 设置编译项目指定使用jdk8 -->
  <profiles>
         <profile>
              <id>jdk-1.8</id>
              <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
              </activation>
              <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
              </properties>
         </profile>
  </profiles>

2、HelloWorld

下面我们就来创建第一个SpringBoot的项目-HelloWorld
需求:浏览发送/hello请求,响应 Hello,Spring Boot 2

2.1、创建maven工程

在这里插入图片描述

2.2、引入依赖

首先找到最新版本的SpringBoot文档,然后在其中找到 Getting Started点击进入,然后找到Developing Your First Spring Boot Application并且点击进入在这里我们可以看到一些注意事项,然后找到Creating the POM
在这里插入图片描述
在这里我们只需要拷贝一下内容

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

将其拷贝到我们上面刚刚创建的项目的pom文件中,显然我们要创建一个web的项目,所以还需要引入springMVC的一些依赖,这里我们创建的是SpringBoot的项目所以引入依赖的方式也比较特别,我们点击这里Adding Classpath Dependencies找到pom配置如下

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

我们将这个依赖拷贝到我们自己的项目pom文件里,粘贴后的pom文件如下

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.atguigu</groupId>
    <artifactId>boot-01-helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>
	<dependencies>
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

2.3、创建主程序

下面创建我们的主程序 MainApplication.java,创建时注意包路径。

package com.atguigu.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
 * @author miaozi
 * @date 2022/5/5
 * @SpringBootApplication 这个注解表示这是一个SpringBoot应用
 * 这个类就是主程序类
 */
@SpringBootApplication()
public class MainApplication {
    public static void main(String[] args) {
    	SpringApplication.run(MainApplication.class, args);
    }
}

2.4、编写业务

下面来创建我能的业务处理类HelloController.java

package com.atguigu.boot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author miaozi
 * @date 2022/5/5
 */
@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String handle01() {
        return "Hello SpringBoot 2! 你好";
    }
}

2.5、测试

下面我们就来运行我们的主程序,然后在浏览器中输入http://127.0.0.1:8080/hello 即可
在这里插入图片描述

2.6、简化配置

细心的同学会发现到这里我们没有编写任何的配置文件,这是因为配置信息都已经被SpringBoot封装好了,如果我们想修改一下配置怎么办呢,我们可以在项目的resource文件下创建一个application.properties文件,然后呢?项目的默认端口是8080如果我们想修改一下这个端口配置怎么办呢?我们可以这样写如下

server.port=8088

为什么这样写就能生效呢,是因为这是SpringBoot的约定的,我们再次打开SpringBoot的文档
在这里插入图片描述
点击Application Properties就能看到所有约定的配置信息啦。

2.7、简化部署

还有一些细心的同学会发现我们没有配置web容器,那项目是怎么运行的呢,原因是SpringBoot项目中内嵌了一个tomcta,所以我们不用在去配置web容器了。我们知道一般的web项目都是打成war包,那能不能打成jar包呢?答案是肯定的我们只要引入一个maven插件即可,我们可以在Getting Started文档的4.5. Creating an Executable Jar中找到添加插件的方法
在这里插入图片描述
将这个配置拷贝到我们项目的pom文件中,并且配置项目达成jar包,最中的pom文件如下

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.atguigu</groupId>
    <artifactId>boot-01-helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

把项目打成jar包,直接在目标服务器执行即可。例如我们的项目生成的jar包为boot-01-helloworld-1.0-SNAPSHOT.jar,我们使用如下命令即可运行jar包啦。

java -jar boot-01-helloworld-1.0-SNAPSHOT.jar
Springboot入门到精通完整版.pdf java软件技术文档 《Springboot入门到精通【完整版】.pdf》是一本全面介绍Springboot框架的电子书,适用于想要学习Springboot的Java开发人员。本书从入门到精通,详细介绍了Springboot框架的基础知识、核心原理、常用组件和实战案例,让读者能够深入了解Springboot框架的使用和应用。 适用人群:Java开发人员、Web开发人员、想要学习Springboot框架的人员。 使用场景及目标:本书适用于想要学习Springboot框架的Java开发人员,可以作为学习Springboot框架的入门教材,也可以作为深入学习Springboot框架的参考书。读者可以通过本书学习Springboot框架的基础知识、核心原理、常用组件和实战案例,掌握Springboot框架的使用和应用。 其他说明:本书内容详实,结构清晰,适合初学者和有一定基础的开发人员学习。本书中的实战案例涵盖了常见的Web开发场景,可以帮助读者更好地理解Springboot框架的应用。此外,本书还提供了大量的代码示例和实践练习,让读者能够更好地掌握Springboot框架的使用和应用。 立即下载

相关推荐

Springboot入门到精通.pdf

Springboot入门到精通.pdf Springboot入门到精通.pdf

SpringBoot视频教程全家桶

本课程通过以Spring Boot 2.x为技术主线,发散式集成覆盖其他相关知识点,并进行逐一实战讲解。通过本系列课程的学习,你能够学到以下内容:不仅仅能收获到Spring Boot的使用的知识,更能快速扩充知识面,补全基础知识,快速Spring Boot入门到实战。更多基于Spring Boot的组件集成;Spring相关功能及特性在Spring Boot中的使用;部分功能核心源码分析等同时,本课程也可作为大家在日常实践中可快速学习、参考的视频集锦。

思博伦Spirent TestCenter创建单播流uni-stream

Traffic Generator列表中会出现刚才创建的uni-stream,创建完成。通常测试情况下,主要对Ethenet II和IPv4 Header进行配置。(通常情况下,如果流配置比较规范,选择任意端口接收,也没问题。编辑uni-stream基本信息。配置本条流由STC哪个端口接收。

辗转反测的博客 1680

SpringBoot2教程

SpringBoot2必备教程

qq_44862692的博客 2287

华为S5720交换机堆叠配置

S5720交换机,做下堆叠,两条线,交叉互联(即A交换机23口连到B交换机24口,A交换机24口连接B交换机23口)。PS:S5720堆叠可基于电口或者光口做,本次测试基于电口。 SWA配置 # 改名 [Huawei]sysname SWA # 最好先shutdown接口 [SWA]interface GigabitEthernet 0/0/23 [SWA-GigabitEthernet0/0/23]shutdown [SWA-GigabitEthernet0/0/23]interface G.

Markdown 6340

第二次 PX4仿真环境搭建过程全记录

参考链接 https://blog.youkuaiyun.com/yanwumuxi/article/details/80097294 https://www.ncnynl.com/archives/201709/2013.html 一、安装依赖项 我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本。 权限设置 警告:永远...

移步换景的博客 2261

SpringBoot入门教程,七天学完直接去面试了

如果你跟我一样,刚巧也是springboot小白,正要学springboot,建议看完下一段话: Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。 课程是基于SpringBoot2.4版本讲解。教程从细节入手,每个事例先讲解pom.xml中的重要依赖,其次application配置文件,最后是代码实现。让你知其所以,逐步让掌握SpringBoot框架的自动配置,s

weixin_54585403的博客 336

一文详解声码器

声码器(Vocoder)是语音信号处理领域的核心技术,其本质是通过“分析 - 参数化 - 合成” 的闭环流程,实现语音的高效编码、转换或生成。它不仅是早期语音通信的关键工具,更是现代 AI 语音技术(如 TTS、语音转换)的核心组件。以下从原理、技术分类、关键模块、应用及发展趋势展开详细解析。

weixin_41413777的博客 1351

Spring boot 入门教程-OAuth2

学习视频:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!Java开发知识点,真正体系化!**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)学习视频:[外链图片转存中…

2401_84010901的博客 894

AI智能体赋能Cypress:自动化前端测试的新范式

自动化测试是现代软件工程保障质量的核心实践,其原理是通过脚本模拟用户操作,对软件功能进行验证。随着大语言模型(LLM)和智能体(Agent)技术的发展,测试自动化正迈向智能化新阶段。智能体能够理解自然语言描述的测试需求,并自主规划、执行测试步骤,这为应对前端UI频繁变更、测试用例维护成本高等挑战提供了新思路。在工程实践中,将Cypress这一流行的前端测试框架封装为智能体可调用的标准化技能(Skill),是实现这一愿景的关键。通过设计清晰的交互协议和状态管理机制,智能体可以像人类测试工程师一样“感知”页面状

weixin_33726318的博客 684

Ubuntu 18.04下Freesurfer 7.2.0安装全攻略:从下载到环境配置一步到位

本文详细介绍了在Ubuntu 18.04系统上安装Freesurfer 7.2.0的完整流程,包括系统准备、依赖安装、下载解压、环境配置、许可证获取及性能优化。Freesurfer作为神经影像分析的重要工具,支持皮层重建和体积分割等复杂任务,适用于阿尔茨海默症等神经系统疾病研究。指南还提供了常见问题解决方案和实际应用案例,帮助用户快速搭建高效的神经影像分析平台。

omega的博客 996

Spring boot 入门教程-Oauth2

ResourceServerConfiguration 和 SecurityConfiguration上配置的顺序, SecurityConfiguration一定要在ResourceServerConfiguration 之前,因为spring实现安全是通过添加过滤器(Filter)来实现的,基本的安全过滤应该在oauth过滤之前, 所以在SecurityConfiguration设置@Order(2), 在ResourceServerConfiguration上设置@Order(6)

2501_90249038的博客 1298

【深度学习新浪潮】气候预测模型的研发进展一览(2025年版)

模型类型核心优势适用场景不足ARIMA(统计模型)简单高效、可解释性强短期单变量预测非线性、长时依赖建模差随机森林(机器学习)多特征融合、抗噪声中短期多因素预测空间相关性、时序趋势捕捉弱LSTM(深度学习)长时依赖建模、端到端中长期时序预测物理一致性差、数据需求量大物理知情AI物理规律约束、高可靠性极端天气、长期气候变化模型复杂、计算成本高。

专注:太空算力、AI infra、异构调度、大模型成本工程 527

swagger2实战:springboot swagger2结合实战,swagger2入门教程

前言 swagger2 作为API接口生成的利器,极大的方便了前后端调试的成本。后端研发人员无需关注接口文档的梳理,可以以界面话的方式友好呈现出来。 实战 pom.xml文件引入jar包: <!-- 集成Swagger2接口测试工具(类似于postman) --> <dependency> <groupId>io.springfox</groupId> <artifact

penggerhe的博客 299

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringBoot入门教程六:Springboot集成Swagger2

Springboot集成Swagger2

river106的博客 547

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SpringBoot-Hello,Spring Boot2

SpringBoot-Hello,Spring Boot2 结构: 1.配置pom.xml <parent> <artifactId>spring-tx</artifactId> <groupId>org.springframework</groupId> <version>4.0.0.RELEASE</version> </parent> &l

kate_tian的博客 189

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SpringBoot2零基础入门教程

覆盖了:web开发数据访问安全控制分布式消息服务移动开发批处理。

m0_47162414的博客 189

SpringBoot2入门 第一个HelloWorld(参考尚硅谷SpringBoot2零基础入门教程)

SpringBoot HelloWorld

guliguliguliguli的博客 347

Spring Boot 2.x 缓存应用 Redis注解与非注解方式入门教程

Redis 在 Spring Boot 2.x 中相比 1.5.x 版本,有一些改变。redis 默认链接池,1.5.x 使用了 jedis,而2.x 使用了 lettuce Redis 接入 Spring Boot 缓存,使用的注解跟 Ehcache 接入缓存的注解是一样的,Spring Boot 缓存应用 Ehcache 入门教程 安装 Redis 请参见 如何在 Mac 下安装 R...

weixin_30606461的博客 267

SpringBoot2.0详细入门教程(二)

第一个SpringBoot项目Maven安装、配置基于Maven创建第一个项目pom配置注解介绍启动项目 Maven安装、配置 接上个教程,我们知道SpringBoot基于Maven进行依赖管理,所以创建项目前需安装Maven,这里我就不多介绍了,小白跟着链接里文档走。 安装配置Maven 按以上文档进行安装如果有问题那可能是因为以下配置未完成 找到图片上位置 window-preferencs...

qq_42798905的博客 265

SpringBoot2.x入门教程:理解配置文件

前提这篇文章是《SpringBoot2.x入门》专辑的「第4篇」文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8。主要介绍SpringBoot配置文件...

Throwable 3553

SpringBoot快速入门教程,初学者用7天学完直接去面试

如果你跟我一样,刚巧也是springboot小白,正要学springboot,建议看完下一段话: Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。 课程是基于SpringBoot2.4版本讲解。教程从细节入手,每个事例先讲解pom.xml中的重要依赖,其次application配置文件,最后是代码实现。让你知其所以,逐步让掌握SpringBoot框架的自动配置,s

Java___interview的博客 474

SpringBoot2.0-详细入门教程(一)

SpringBoot介绍 什么是SpringBoot SpringBoot是一个快速开发框架,能够帮助我们快速整合第三方框架(Maven依赖关系##Maven继承),完全采注解化,简化XML配置,内置嵌入Http服务器(Tomcat、Jetty),默认嵌入Tomcat服务器。 最终以Java应用程序进行执行。 ...

qq_42798905的博客 586

SpringBoot2.x入门教程:引入jdbc模块与JdbcTemplate简单使用

点击上方蓝字 ↑↑ Throwable文摘关注公众号设置星标,不定时推送高质量原创文章关注前提这篇文章是《SpringBoot2.x入门》专辑的「第7篇」文章,使用的SpringBoot...

Throwable 3751
上一篇: Idea启动/项目慢优化
Code_Boy_Code
博客等级 码龄9年 650粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值