第001课:Spring Boot 课程概览

 Spring Boot 技术栈快速实战课程

第001课:Spring Boot 课程概览

1、Spring Boot 介绍

1.1 Spring Boot 起源

Spring 飞速发展的今天,毫无疑问它已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 配置存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的低下。Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着人们开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spirng 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,到了后来人们甚至称 Spring 为配置地狱。Spring 似乎也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,快速开发微小独立的应用变得更为急迫,Spring 刚好处在这么一个交叉点上,于 2013 年初开始的 Spring Boot 项目的研发,2014年4月,Spring Boot 1.0.0 发布。 当然,Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot 应用中这些第三方库几乎可以是零配置开箱即用,Spring Boot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

1.2 Spring Boot设计目的及约定

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架。

Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。Spring Boot 的核心思想就是约定大于配置,多数 Spring Boot 应用只需要很少的 Spring 配置。采用 Spring Boot 可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。

1.3 SpringBoot框架与SpringWeb框架搭建区别

相对于SpringWeb,SpringBoot其实就是简单、快速、方便!

平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?

1)配置web.xml,加载spring和SpringMVC。

2)配置数据库连接、配置Spring事务。

3)配置加载配置文件的读取,开启注解。

4)配置日志文件。

......等等

配置完成之后部署Tomcat调试。

如果使用SpringBoot呢?

很简单,只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目或者是构建一个微服务!

1.4 Spring Boot的好处

使用了Spring Boot后,能给开发人员带来哪些好处?能给运维人员带来哪些方便?甚至说能给公司带来哪些经济效益?

主要有六点:基于Spring、快速编码、模块化、配置简单、便捷部署、有效监控

1.基于Spring

Spring Boot基于Spring,所以Spring有的优点Spring Boot也有,不需要开发人员去学习一个全新的框架,学习门槛相对降低。

2. 快速编码

Spring Boot的依赖包都是基于maven的pom文件提供的,而Spring Boot本身就集成了特别多的第三方框架。以前开发Spring应用时,需要用到的第三方框架的库都需要开发人员一个一个去寻找。现在不需要了,有些可能只需引入一个pom.xml,就能把大量需要用到的第三方库自动引入到项目中。所以减少了开发工作量,实现快速编码。

3. 模块化

基于Spring Boot开发的项目可以非常简单的实现模块化编程,这样的话可以非常有效的实现项目的分工合作,减少开发过程中的代码冲突。模块化编程还可以非常高效的实现减少代码的改动量,按需修改模块,降低生产发生事故概率。

4. 配置简单

Spring Boot摒弃了了繁琐的xml配置文件,大量的配置文件经常是导致生产事故的原因。Spring Boot大量采用yml形式的配置文件再加上相应的Annotation,从而大大减少了配置文件的个数,因为以前的Spring应用引入一个第三方框架说不定就要添加一个配置文件。举个例子,比如项目中要引入数据库连接池,就需要添加数据库连接池的配置文件,但是使用了Spring Boot就只需要那么几行配置就可以了,因为Spring Boot默认集成数据库连接池,提供了很多默认的配置。

5. 便捷部署

Spring Boot天生就是为了简单、快捷部署而生。SpringBoot内嵌了Tomcat,不需要额外部署应用服务器Tomcat,只需简单一个Java运行环境即可,而且启动的命令也非常简单:java –jar xxx-release.jar。同时Spring Boot结合现在非常火的技术 Docker、Kubernetes可以快速实现集群部署。

6. 有效监控

Spring Boot集成了非常高效的监控框架,只要简单引入对spring-boot-start-actuator的依赖,就可以实现对服务性能的监控。结合Spring Cloud就可以实现对整个微服务链路的全天候监控。

1.5 SpringBoot核心功能

1、独立运行Spring项目

Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。

2、内嵌servlet容器

Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。

3、提供starter简化Maven配置

spring提供了一系列的start pom来简化Maven的依赖加载。

4、自动装配Spring

SpringBoot会根据在类路径中的jar包自动配置Bean,这样会极大地减少我们要使用的配置。当然 SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot没有提供支 持,则可以自定义自动配置。

5、准生产的应用监控

SpringBoot提供基于http ssh telnet对运行时的项目进行监控。

6、无代码生产和xml配置

SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。

1.6 SpringBoot 常用的注解

1、@RestController和@Controller指定一个类,作为控制器的注解。

2、@RequestMapping为方法级别的映射注解,这一个用过Spring MVC的小伙伴相信都很熟悉。

3、@EnableAutoConfiguration和@SpringBootApplication是类级别的注解,根据maven依赖的jar来自动完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器。

4、@Configuration类级别的注解,一般这个注解,我们用来标识main方法所在的类,完成元数据bean的初始化。

5、@ComponentScan类级别的注解,自动扫描加载所有的Spring组件包括Bean注入,一般用在main方法所在的类上。

6、@ImportResource类级别注解,当我们必须使用一个xml的配置时,使用@ImportResource和@Configuration来标识这个文件资源的类。 

7、@Autowired注解,一般结合@ComponentScan注解,来自动注入一个Service或Dao级别的Bean。

8、@Component类级别注解,标识一个组件,比如自定义一个filter,则需要此注解标识之后,Spring Boot才会正确识别。

2、为什么学习Spring Boot

  • 从软件发展的角度来讲,越简单的开发模式越会流行。简单的开发模式解放出更多生产力,让开发人员可以将精力集中在业务上,而不是各种配置、语法所设置的门槛上。Spring Boot 就是尽可能的简化应用开发的门槛。

  • Spring Boot 所集成的技术栈,几乎都是各互联网公司在使用的技术,按照 Spring Boot 的路线去学习,基本可以了解国内外互联网公司的技术特点。

  • Spring Boot 和微服务架构都是未来软件开发的一个大趋势,越早参与其中受益越大。

3、本课程能学到什么

微服务架构已经慢慢成为了互联网架构的主流,Spring Boot 正是这股潮流的主先锋。本课程是围绕 Spring Boot 技术栈的系列教程,目标是带领读者了解 Spring Boot 各种特性,学会使用 Spring Boot 相关技术栈上手开发项目。课程以 Spring Boot 所支持的技术栈为主线,一步一步了解每个组件的使用方式,最后综合演练。认真学完这个系列课程之后,会对 Spring Boot 有进一步的了解,具备使用 Spring Boot 上手进行开发的基本能力。本课程使用目前 Spring Boot 2.3.0 RELEASE版本,课程文章均为作者在实际项目中剥离出来的场景和Demo,目标是带领学习者快速上手 Spring Boot,将 Spring Boot 相关技术点快速运用在微服务项目中。

全篇分为25个课程,主要介绍 Spring Boot 在项目中最常使用的一些功能点,旨在带领学习者快速掌握 Spring Boot 在开发时需要的知识点,能够把 Spring Boot 相关技术运用到实际项目架构中去。内容包括课程概览、开发环境搭建、 快速体验 Web 开发、项目属性配置、MVC支持、集成 MyBatis、MyBatis Druid 多数据源配置、返回JSON数据格式封装、使用slf4j日志记录、集成Swagger接口文档、集成Thymeleaf模板引擎、全局异常处理、 切面AOP处理等等。同时,在课程中也重点介绍了 Spring Boot 在项目中拔高一些的技术点,包括集成的一些组件,旨在带领学习者在项目中遇到具体的场景时能够快速集成,完成对应的功能。该部分以 Spring Boot 框架为主线,内容包括事务管理、监听器、 拦截器、集成Redis、集成 Quartz、集成Shiro、集成Lucence、发送邮件、 MongoDB 实战、 项目打包与部署、搭建实际项目开发框架、综合实战用户管理系统等等。认真读完该系列文章之后,学习者会快速了解并掌握 Spring Boot 在项目中最常用的技术点,在课程的最后,会基于课程内容搭建一个 Spring Boot 项目的空架构,该架构也是从实际项目中剥离出来,学习者可以运用该架构于实际项目中,具备使用 Spring Boot 进行实际项目开发的能力。

4、适合阅读的人群

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

  • 从事 Java 相关开发,对 Spring Boot 感兴趣的人员

  • 热衷于新技术并希望在技术上有所突破的开发人员

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

本课程的开发环境:

  • 开发工具:IDEA 2019

  • JDK版本:JDK 1.8

  • Spring Boot版本:2.3.0 RELEASE

  • Maven版本:3.6.1

涉及到的插件:

  • MyBatis

  • Druid

  • FastJson

  • Swagger2

  • Thymeleaf

  • Redis

  • Quartz

  • Shiro

  • Lucence

  • MongoDB

6、课程目录

  • 第001课:Spring Boot 课程概览

  • 第002课:Spring Boot 开发环境搭建

  • 第003课:Spring Boot 快速体验 Web 开发

  • 第004课:Spring Boot 项目属性配置

  • 第005课:Spring Boot 中MVC支持

  • 第006课:Spring Boot 集成 MyBatis

  • 第007课:Spring Boot  MyBatis Druid 多数据源配置

  • 第008课:Spring Boot 返回JSON数据格式封装

  • 第009课:Spring Boot 使用slf4j日志记录

  • 第010课:Spring Boot 集成Swagger接口文档

  • 第011课:Spring Boot 集成Thymeleaf模板引擎

  • 第012课:Spring Boot 全局异常处理

  • 第013课:Spring Boot 切面AOP处理

  • 第014课:Spring Boot 事务管理

  • 第015课:Spring Boot 监听器

  • 第016课:Spring Boot 拦截器

  • 第017课:Spring Boot 集成Redis

  • 第018课:Spring Boot 集成 Quartz

  • 第019课:Spring Boot 集成Shiro

  • 第020课:Spring Boot 集成Lucence

  • 第021课:Spring Boot 发送邮件

  • 第022课:Spring Boot MongoDB 实战

  • 第023课:Spring Boot 项目打包与部署

  • 第024课:Spring Boot 搭建实际项目开发框架

  • 第025课:Spring Boot 综合实战用户管理系统

扫描二维码关注公众号 : 猿码天地

你多学一样本事,就少说一句求人的话,现在的努力,是为了以后的不求别人,实力是最强的底气。记住,活着不是靠泪水博得同情,而是靠汗水赢得掌声。

——《写给程序员朋友》

猜你喜欢

转载自blog.csdn.net/zbw125/article/details/107502921
今日推荐