SpringBoot使用汇总

简介: 本课程系统讲解Spring Boot 2.0.3核心技能,涵盖配置、MVC、持久化、安全认证、缓存等实战内容,分为基础与进阶两篇,助你快速掌握微服务开发,附真实项目架构与源码。

导读:课程概览

  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 的官方网站,可以看到下图:

我们可以看到图中官方对 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 有哪些优点?主要给我们解决了哪些问题呢?我们以下图来说明:

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

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


org.springframework.boot
spring-boot-starter-web

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


org.springframework
spring-web
5.0.7.RELEASE
compile


org.springframework
spring-webmvc
5.0.7.RELEASE
compile

由此可以看出,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 是未来发展的一个大趋势。

  1. 本课程能学到什么
    本课程使用目前 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 进行实际项目开发的能力。
    课程所有源码提供免费下载:下载地址。
  2. 适合阅读的人群
    本课程适合以下人群阅读:
    ● 有一定的Java语言基础,了解Spring、Maven的在校学生或自学者
    ● 有传统项目经验,想往微服务方向发展的工作人员
    ● 热衷于新技术并对 Spring Boot 感兴趣的人员
    ● 希望了解 Spring Boot 2.0.3 的研究人员
  3. 本课程开发环境和插件
    本课程的开发环境:
    ● 开发工具:IDEA 2017
    ● JDK版本: JDK 1.8
    ● Spring Boot版本:2.0.3 RELEASE
    ● Maven版本:3.5.2
    涉及到的插件:
    ● FastJson
    ● Swagger2
    ● Thymeleaf
    ● MyBatis
    ● Redis
    ● ActiveMQ
    ● Shiro
    ● Lucence
相关文章
|
Web App开发
实时分析HTTP/HTTPS数据流(HTTP Analyzer)
简述 HTTP Analyzer是一款实时分析HTTP/HTTPS数据流的工具。它可以实时捕捉HTTP/HTTPS协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、HTTP状态信息和其他过滤选项。同时还是一个非常有用的分析、调试和诊断的开发工具。 HTTP Analyzer可以集成
2645 0
|
4月前
|
JavaScript Java 关系型数据库
基于springboot的图书馆座位预约系统
针对高校图书馆座位紧张与管理低效问题,本研究设计并实现了一套基于Spring Boot、Vue.js与MySQL的智能预约系统。系统通过移动端实现座位实时查询、预约、签到及违规管理,提升资源利用率与用户体验。采用Java语言开发,结合前后端分离架构,支持高并发访问,解决传统人工管理排队久、监管难等问题。对比国内外现有方案,本系统在智能化分配、稳定性与可扩展性方面更具优势,助力智慧校园建设,具有良好的应用推广价值。
|
5月前
|
JavaScript Java 关系型数据库
基于springboot的古树名木保护管理系统
本研究针对古树保护面临的严峻挑战,构建基于Java、Vue、MySQL与Spring Boot技术的信息化管理系统,实现古树资源的动态监测、数据管理与科学保护,推动生态、文化与经济可持续发展。
|
6月前
|
JavaScript Java 大数据
基于springboot的美食文化和旅游推广系统
本研究聚焦美食文化与旅游推广系统的融合,探讨如何借助Java、Vue.js等技术构建数字化平台,整合地域美食资源与旅游产业,推动文化传承与经济协同发展。
|
3月前
|
JavaScript Java 关系型数据库
2026基于springboot的人力资源管理系统
针对鞍山钢峰风机公司人力资源管理信息化需求,本文设计并实现基于Spring Boot与Vue的B/S架构系统,结合MySQL数据库,提升管理效率与准确性,推动企业数字化转型。
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的医院药品管理系统
本文探讨基于Java的医院药品管理系统的设计与实现。针对传统人工管理效率低、易出错等问题,系统采用Java语言,结合Spring Boot、Vue、MySQL等技术,构建B/S架构的信息化管理平台,提升药品管理效率与安全性,优化资源配置,助力医疗信息化发展。
|
5月前
|
JavaScript 前端开发 Java
基于Springboot的助农惠农服务平台
凉州区依托优越自然条件发展农业,但受限于信息不畅、销售困难。为此,构建助农惠农服务平台,整合资源,提供市场信息、技术支持与销售渠道,提升农民收入与农业竞争力,推动区域经济均衡发展。
|
5月前
|
JavaScript 前端开发 Java
基于springboot的美食食品商城系统
本项目研究美食食品商城系统的设计与实现,顺应数字化时代消费需求,结合SSM框架、Vue、Java与MySQL技术,构建功能完善、高效安全的电商平台,推动食品行业转型升级。
|
6月前
|
JavaScript Java 关系型数据库
基于springboot的校内跑腿管理系统
针对校园跑腿服务效率低、信任难等问题,本研究设计基于Spring Boot与Vue的校内跑腿管理系统,融合MySQL数据库与智能化调度技术,实现任务发布、智能匹配、实时追踪与评价反馈一体化,提升服务效率与质量,助力智慧校园建设。
|
6月前
|
JavaScript Java 关系型数据库
基于springboot的快递分拣管理系统
本系统基于SpringBoot框架,结合Java、MySQL与Vue技术,构建智能化快递分拣管理平台。通过自动化识别、精准分拣与实时跟踪,提升分拣效率与准确性,降低人力成本,推动快递行业向智能化、高效化转型,助力电商物流高质量发展。

热门文章

最新文章