SpringBoot使用汇总

简介: SpringBoot使用汇总

导读:课程概览

1. Spring Boot是什么

我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。  

2012 年 10 月,Mike Youngstrom 在 Spring jira 中创建了一个功能请求,要求在 Spring 框架中支持无容器 Web 应用程序体系结构。他谈到了在主容器引导 spring 容器内配置 Web 容器服务。这是 jira 请求的摘录:

我认为 Spring 的 Web 应用体系结构可以大大简化,如果它提供了从上到下利用 Spring 组件和配置模型的工具和参考体系结构。在简单的 main()方法引导的 Spring 容器内嵌入和统一这些常用Web 容器服务的配置。

这一要求促使了 2013 年初开始的 Spring Boot 项目的研发,到今天,Spring Boot 的版本已经到了 2.0.3 RELEASE。Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具

它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。  

2. 为什么学习Spring Boot

2.1 从Spring官方来看

我们打开 Spring 的官方网站,可以看到下图:  

Clip_2025-07-17_11-23-06.png

我们可以看到图中官方对 Spring Boot 的定位:Build Anything, Build任何东西。Spring Boot旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置。  同时我们也来看一下官方对后面两个的定位:  

SpringCloud:Coordinate Anything,协调任何事情;SpringCloud Data Flow:Connect everything,连接任何东西。

仔细品味一下,Spring 官网对 Spring Boot、SpringCloud 和 SpringCloud Data Flow三者定位的措辞非常有味道,同时也可以看出,Spring 官方对这三个技术非常重视,是现在以及今后学习的重点(SpringCloud 相关达人课课程届时也会上线)。

2.2 从Spring Boot的优点来看

Spring Boot 有哪些优点?主要给我们解决了哪些问题呢?我们以下图来说明:

Clip_2025-07-17_11-00-01.png

2.2.1 良好的基因

Spring Boot 是伴随着 Spring 4.0 诞生的,从字面理解,Boot是引导的意思,因此 Spring Boot 旨在帮助开发者快速搭建 Spring 框架。Spring Boot 继承了原有 Spring 框架的优秀基因,使 Spring 在使用中更加方便快捷。

Clip_2025-07-17_11-00-19.png

2.2.2 简化编码

举个例子,比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加如下一个 starter-web 依赖即可。

<dependency>

   <groupId>org.springframework.bootgroupId>

   <artifactId>spring-boot-starter-webartifactId>

dependency>

我们点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖,我们看一下其中的一部分,如下:


<dependency>

  <groupId>org.springframeworkgroupId>

  <artifactId>spring-webartifactId>

  <version>5.0.7.RELEASEversion>

  <scope>compilescope>

dependency>

<dependency>

  <groupId>org.springframeworkgroupId>

  <artifactId>spring-webmvcartifactId>

  <version>5.0.7.RELEASEversion>

  <scope>compilescope>

dependency>

由此可以看出,Spring Boot 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。

2.2.3 简化配置

Spring 虽然使Java EE轻量级框架,但由于其繁琐的配置,一度被人认为是“配置地狱”。各种XML、Annotation配置会让人眼花缭乱,而且配置多的话,如果出错了也很难找出原因。Spring Boot更多的是采用 Java Config 的方式,对 Spring 进行配置。举个例子:

我新建一个类,但是我不用 @Service注解,也就是说,它是个普通的类,那么我们如何使它也成为一个 Bean 让 Spring 去管理呢?只需要@Configuration@Bean两个注解即可,如下:

public class TestService {

  public String sayHello () {

      return "Hello Spring Boot!";

   }

}

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class JavaConfig {

  @Bean

  public TestService getTestService() {

      return new TestService();

   }

}

@Configuration表示该类是个配置类,@Bean表示该方法返回一个 Bean。这样就把TestService作为 Bean 让 Spring 去管理了,在其他地方,我们如果需要使用该 Bean,和原来一样,直接使用@Resource注解注入进来即可使用,非常方便。

@Resource

private TestService testService;

另外,部署配置方面,原来 Spring 有多个 xml 和 properties配置,在 Spring Boot 中只需要个 application.yml即可。

2.2.4 简化部署

在使用 Spring 时,项目部署时需要我们在服务器上部署 tomcat,然后把项目打成 war 包扔到 tomcat里,在使用 Spring Boot 后,我们不需要在服务器上去部署 tomcat,因为 Spring Boot 内嵌了 tomcat,我们只需要将项目打成 jar 包,使用 java -jar xxx.jar一键式启动项目。

另外,也降低对运行环境的基本要求,环境变量中有JDK即可。

2.2.5 简化监控

我们可以引入 spring-boot-start-actuator 依赖,直接使用 REST 方式来获取进程的运行期性能参数,从而达到监控的目的,比较方便。但是 Spring Boot 只是个微框架,没有提供相应的服务发现与注册的配套功能,没有外围监控集成方案,没有外围安全管理方案,所以在微服务架构中,还需要 Spring Cloud 来配合一起使用。

2.3 从未来发展的趋势来看

微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责、使用独立的技术、更安全更频繁地部署。而 继承了 Spring 的优良特性,与 Spring 一脉相承,而且 支持各种REST API 的实现方式。Spring Boot 也是官方大力推荐的技术,可以看出,Spring Boot 是未来发展的一个大趋势。

3. 本课程能学到什么

本课程使用目前 Spring Boot 最新版本2.0.3 RELEASE,课程文章均为作者在实际项目中剥离出来的场景和demo,目标是带领学习者快速上手 Spring Boot,将 Spring Boot 相关技术点快速运用在微服务项目中。全篇分为两部分:基础篇和进阶篇。  

基础篇(01—10课)主要介绍 Spring Boot 在项目中最常使用的一些功能点,旨在带领学习者快速掌握 Spring Boot 在开发时需要的知识点,能够把 Spring Boot 相关技术运用到实际项目架构中去。该部分以 Spring Boot 框架为主线,内容包括Json数据封装、日志记录、属性配置、MVC支持、在线文档、模板引擎、异常处理、AOP 处理、持久层集成等等。  

进阶篇(11—17课)主要是介绍 Spring Boot 在项目中拔高一些的技术点,包括集成的一些组件,旨在带领学习者在项目中遇到具体的场景时能够快速集成,完成对应的功能。该部分以 Spring Boot 框架为主线,内容包括拦截器、监听器、缓存、安全认证、分词插件、消息队列等等。  

认真读完该系列文章之后,学习者会快速了解并掌握 Spring Boot 在项目中最常用的技术点,作者课程的最后,会基于课程内容搭建一个 Spring Boot 项目的空架构,该架构也是从实际项目中剥离出来,学习者可以运用该架构于实际项目中,具备使用 Spring Boot 进行实际项目开发的能力。  

课程所有源码提供免费下载:下载地址

4. 适合阅读的人群

本课程适合以下人群阅读:

  • 有一定的Java语言基础,了解Spring、Maven的在校学生或自学者
  • 有传统项目经验,想往微服务方向发展的工作人员
  • 热衷于新技术并对 Spring Boot 感兴趣的人员
  • 希望了解 Spring Boot 2.0.3 的研究人员

5. 本课程开发环境和插件

本课程的开发环境:

  • 开发工具:IDEA 2017
  • JDK版本: JDK 1.8
  • Spring Boot版本:2.0.3 RELEASE
  • Maven版本:3.5.2

涉及到的插件:

  • FastJson
  • Swagger2
  • Thymeleaf
  • MyBatis
  • Redis
  • ActiveMQ
  • Shiro
  • Lucence

6. 课程目录

  • 导读:课程概览
  • 第01课:Spring Boot开发环境搭建和项目启动
  • 第02课:Spring Boot返回Json数据及数据封装
  • 第03课:Spring Boot使用slf4j进行日志记录
  • 第04课:Spring Boot中的项目属性配置
  • 第05课:Spring Boot中的MVC支持
  • 第06课:Spring Boot集成Swagger2展现在线接口文档
  • 第07课:Spring Boot集成Thymeleaf模板引擎
  • 第08课:Spring Boot中的全局异常处理
  • 第09课:Spring Boot中的切面AOP处理
  • 第10课:Spring Boot中集成MyBatis
  • 第11课:Spring Boot事务配置管理
  • 第12课:Spring Boot中使用监听器
  • 第13课:Spring Boot中使用拦截器
  • 第14课:Spring Boot中集成Redis
  • 第15课:Spring Boot中集成ActiveMQ
  • 第16课:Spring Boot中集成Shiro
  • 第17课:Spring Boot中结成Lucence
  • 第18课:Spring Boot搭建实际项目开发中的架构
相关文章
|
2月前
|
Java 应用服务中间件 Maven
第01课:Spring Boot开发环境搭建和项目启动
第01课:Spring Boot开发环境搭建和项目启动
479 0
|
2月前
|
JSON 前端开发 Java
第05课:Spring Boot中的MVC支持
第05课:Spring Boot中的MVC支持
154 0
|
2月前
|
安全 Java 数据库
第16课:Spring Boot中集成 Shiro
第16课:Spring Boot中集成 Shiro
522 0
|
2月前
|
开发框架 前端开发 Java
Spring篇
Spring是一个用于简化Java企业级应用开发的开源框架,核心功能包括控制反转(IoC)和面向切面编程(AOP)。它通过管理对象生命周期、解耦组件、支持多种注入方式及提供如MVC、事务管理等模块,提升开发效率与代码质量。常用于构建轻量、灵活、易维护的企业级应用程序。
203 0
|
1月前
|
SQL Arthas 关系型数据库
MySQL相关问题
当SQL语句执行缓慢时,可通过Skywalking等工具定位慢SQL,再使用Explain分析执行计划。重点关注possible_keys、key、key_len、type和extra字段,判断索引使用情况及是否回表。可通过优化索引、使用覆盖索引等方式提升性能。此外,还可开启MySQL慢日志或使用Arthas、Prometheus等工具辅助定位问题。
45 0
|
2月前
|
JSON 前端开发 API
如何写好一篇技术方案
本项目旨在升级知识库基础能力,优化目录与文档管理体验,提升交互流畅度。内容包括产品需求文档、功能模块设计、系统流程与UML图示、API接口定义及研发排期安排,帮助团队理解背景、对齐开发进度,确保项目高效推进。
|
2月前
|
负载均衡 Dubbo Java
Dubbo篇
Dubbo篇
104 0
|
5月前
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
145 20
|
2月前
|
存储 安全 网络协议
第三章 web阶段
第三章 web阶段
|
2月前
|
存储 缓存 安全
One Trick Per Day
本文介绍了Java开发中的六大关键规范:1)初始化Map时避免扩容问题,推荐使用Guava或手动计算容量;2)线程池禁止使用Executors,防止OOM,建议自定义配置;3)Arrays.asList返回不可变列表,避免修改操作;4)遍历Map时优先使用entrySet提升效率;5)SimpleDateFormat应避免static使用,注意线程安全;6)并发修改记录时合理加锁,乐观锁与悲观锁根据场景选择。适用于提升代码质量与系统稳定性。

热门文章

最新文章