0%

概述

Spring Boot 是简化 Spring 应用开发的一个框架块,它整合了 Spring 的整个技术栈,提供了 J2EE 开发一站式解决方案。
它的目标是让你无需手动进行繁杂的配置或者只需要用到很少的配置就可以快速将你的项目运行起来。

阅读全文 »

前言

在另一篇博文 Spring Boot2 实战系列之RESTful Web Service 中我们构建了一个 restful 风格的项目,并用 postman 来围绕 HTTP 动词 GET,POST,PUT,DELETE 对员工信息展开 CURD 操作。那么在实际项目中,如果我们想调用别人提供的 resultful api 来请求网络资源应该怎样做呢,很多人会想到用 httpclient,但是使用 httpclient 代码比较复杂,冗余代码多,相比之下,Spring 框架提供的 RestTemplate 类可用于在应用中调用 REST 服务, 它提供了许多比较简便的访问远程 HTTP 服务的方法,从而提高了客户端的开发效率。

RestTemplate 类是为调用REST服务而设计的,它的主要方法与 HTTP 协议方法紧密相连, 比如它有 headForHeaders()、getForObject()、postForObject()、put()和delete()等方法。

下面通过一个页面操作例子来演示 RestTemplate 的使用。

注意:在启动该项目前,先启动另一篇博文中构建的 RESTful service 项目。

阅读全文 »

前言

Thymeleaf 是一个 xml, xhtml,html5 的模板引擎,Spring Boot 官方推荐使用 Thymeleaf 引擎,因为它对 Spring MVC 提供了完美的支持。我们知道以前的 Spring MVC web应用在视图层常使用 JSP,但 springboot 使用的是内嵌的 servlet 容器,而内嵌的 Tomcat 和 Jetty 不支持以 jar 形式运行 JPS,Undertow也不支持 JPS,所以在SpringBoot 中我们完全可以使用 Thymeleaf来代替 JSP。

在 Spring Boot 中使用 Thymeleaf 非常方便,它已经通过 org.springframework.boot.autoconfigure.thymeleaf 包对 Thymeleaf 进行了自动配置, 如下图所示

阅读全文 »

前言

文件上传和下载是很多网站都会有的功能,这次我们来实践下用 Spring Boot 实现这个功能。为了方便演示,没有实现将文件存储到数据库中,只是用到了一个 List 将上传文件的相关信息保存在内存中,文件本身放在本地磁盘。

阅读全文 »

前言

在网站里我们常常会看到可以分页的列表,这次我们就通过 springboot + thymeleaf + pagehelper 来实现这一功能。PageHelper 是开源的 MyBatis 分页插件, 支持任何复杂的单表、多表分页,详细使用方法可查看官方文档 https://pagehelper.github.io/docs/howtouse/

下面通过一个展示商品信息的页面来演示怎样使用 pagehelper

阅读全文 »

前言

在很多网站我们可以看到可以切换语言的按钮,如果网站需要面向海外用户,那么实现网站语言国际化就显得非常必要。在 Spring Boot 中,我们可以非常方便地实现这个语言国际化的功能,下面就开始动手来实践一个可以中英切换的登录页面吧。

阅读全文 »

前言

在系统中使用定时任务已经是一个比较常见的事情,比如需要定时发送邮件报告,生成系统日志,进行数据归档等。Spring3.0 起加入了任务调度功能 Schedule, 它不需要使用依赖其他 JAR 包,使用起来比较方便。

在 SpringBoot 中使用 scheduled,在项目启动类上添加注解 @EnableScheduling 来开启任务调度,然后在方法上使用注解 @Scheduled

阅读全文 »

前言

在实际项目中,通常会有各种异常抛出,如果我们不加以捕捉并自定义统一的response(返回信息),那么用户就可能看到莫名奇怪的错误。比如常见的 NullPointerException, 你直接返回这个错误信息,相信用户也是一头雾水。

还有就是统一捕捉异常并自定义报错信息也有利于我们排查,迅速定位问题所在。

我们先来看下如果不做全局异常配置会是怎样,如下例所示,在 controller 层的请求里加个 try catch,然后根据不同异常处理,如果有很多请求,那么每个请求都像这样加个 try catch 层,就比较繁杂,而且要捕捉的异常可能很多都相同,这样代码重复就比较多。

阅读全文 »