华为资深架构师墙裂推荐:豆瓣评分8.0+技术书籍springboot全解

本文介绍了SpringBoot作为简化Spring应用开发的框架,强调其开箱即用、默认配置和内嵌式容器的优点。通过IntelliJ中的SpringInitializr创建项目,遵循最佳实践的工程结构,并详细讲解了配置文件、RESTful接口服务、Web应用开发、异常处理、Swagger2的使用以及XML支持和SpringSecurity安全控制。此外,还涉及了日志管理的内容。
摘要由CSDN通过智能技术生成

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。springboot也成为了了当值无愧的主流技术。

本篇文章分享给大家springboot全教程,涵盖知识内容过长,都整理在PDF文档里面,文中只展示大概一部分给大家,需要源文档的朋友,可以点赞支持一下免费资料。

第一个Spring Boot项目

在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框

架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更

易上手,更简单快捷地构建Spring应用!

Spring Boot让我们的Spring应用变化的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应变能力为jar并通过使用java -jar来运行你的Spring Web应用。

Spring Boot的主要优点:

为所有Spring开发者更快的入门

开箱即用,提供各种默认配置来简化项目配置

内嵌式容器简化Web项目

没有冗余代码生成和XML配置的要求

快速入门:

本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对

Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

IntelliJ中快速创建项目

本文我们将介绍嵌入的Intellij中的Spring Initializr工具,它同Web提供的创建功能一样,可以帮助我们

快速的构建出一个基础的Spring Boot/Cloud工程。

  • 菜单栏中选择 File => New => Project.. ,我们可以看到如下图所示的创建功能窗口。其中 Initial Service Url 指向的地址就是Spring官方提供的Spring Initializr工具地址,所以这里创建的工程实际上也是基于它的Web工具来实现的。

点击 Next ,等待片刻后,我们可以看到如下图所示的工程信息窗口,在这⾥我们可以编辑我们想要创建的工程信息。其中, Type 可以改变我们要构建的工程类型,比如:Maven、Gradle; Language 可以选择:Java、Groovy、Kotlin。

最佳实践的工程结构

Spring Boot框架本身并没有对工程结构有特别的要求,但是按照最佳实践的工程结构可以帮助我们减少可能会遇见的坑,尤其是Spring包扫描机制的存在,如果您使用最佳实践的工程结构,可以免去不少特殊的配置工作。

典型示例

  • root package结构: com.example.myproject
  • 应用主类 Application.java 置于root package下,通常我们会在应用主类中做一些框架配置扫描等配置,我们放在root package下可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容
  • 实体(Entity)与数据访问层(Repository)置于 com.example.myproject.domain 包下
  • 逻辑层(Service)置于 com.example.myproject.service 包下
  • Web层(web)置于 com.example.myproject.web 包下

看看您现在的功能是否这样配置,如果不是,不妨尝试改变一下,看看是否可以去掉一些

@Configuration配置?

配置文件详解

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在 pom.xml 中引入模块化的 Starter POMs ,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在 application.properties 中完成一些属性配置就能开启各模块的应用。

在之前的各篇文章中都有提及关于application.properties 的使用,主要用来配置数据库连接、日志相关配置等。除了这些配置内容之外,本文将具体介绍一些在 application.properties 配置中的其他特性和使用方法。

开发RESTful接口服务及单元测试

首先,回顾并详细说明一下在快速入门中使用的 @Controller 、 @RestController 、 @RequestMapping 注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。

  • @Controller :修饰class,用来创建处理http请求的对象
  • @RestController :Spring4之后加入的注解,原来在 @Controller 中返回json需要 @ResponseBody 来配合,如果直接用 @RestController 替代 @Controller 就不需要再配置 @ResponseBody ,默认返回json格式。
  • @RequestMapping :配置url映射

下面我们尝试使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在

Spring MVC中如何映射HTTP请求、如何传参、如何编写单元测试。

RESTful API具体设计如下:

开发Web应用:模版引擎与静态资源

快速入门中我们完成了一个简单的RESTful Service,体验了快速开发的特性。在留言中也有朋友提到如何把处理结果渲染到页面上。那么本篇就在上篇基础上介绍一下如何进行Web应用的开发。

静态资源访问

在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。

Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射: /error ,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面来展示异常内容。

选择一个之前实现过的Web应用(Chapter3-1-2)为基础,启动该应用,访问一个不存在的URL,或是修改处理内容,直接抛出异常,如:

此时,可以看到类似下面的报错页面,该页面就是Spring Boot提供的默认error映射页面。

使用Swagger2构建强大的RESTful API文档

由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。

这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Android开发或是Web开发等。为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:

由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。

随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。

为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为文体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。具体效果如下图所示:

扩展XML请求和响应的支持

在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理。那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式返回一个对象呢?

实现原理:消息转换器(Message Converter

在扩展上述问题之前,我们先要知道Spring Boot中处理HTTP请求的实现是采⽤的Spring MVC。⽽在Spring MVC中有⼀个消息转换器这个概念,它主要负责处理各种不同格式的请求数据进⾏处理,并包转换成对象,以提供更好的编程体验。

在Spring MVC中定义了 HttpMessageConverter 接⼝,抽象了消息转换器对类型的判断、对读写的判断与操作,具体可⻅如下定义:

使用Spring Security进行安全控制

我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security)。

本文将具体介绍在Spring Boot中如何使用Spring Security进行安全控制。

Spring Boot日志管理

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

由于springboot全教程的篇幅过长,后面讲目录列举给大家,大家在springboot这一块学习有缺陷的朋友,可以点赞支持一下获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值