Spring Boot
文章平均质量分 85
Spring Boot2.x 学习实践样例
_星辰夜风
专注后端开发,架构,微服务,分布式等领域
展开
-
Jenkins 使用 Pipeline 构建部署 Spring Boot 应用
前言在本文开始前可以先看看这篇文章:Jenkins + Gitlab + Maven + Tomcat 持续集成部署 SpringBoot 应用实践,除了 Jenkins 构建项目的方式不一样之外,其他配置都一样。关于 pipeline 的简介和 pipeline 的两种语法模型的区别可以看这篇文章: Pipeline 声明式和脚本式的主要区别Spring Boot 项目准备这里创建了一个简单的 Spring Boot 项目,功能简单,运行后会提供一个可访问的 index 页面。结构图如下:项原创 2022-04-19 00:20:46 · 3021 阅读 · 0 评论 -
Spring Boot2 实战系列之登录注册(三) - 邮件激活账号和密码重置
前言在前面的博文 Spring Boot2 实战系列之登录注册(二) - 登录实现 中实现了登录功能。这次继续完善常用的功能,就是在注册的时候可以向注册邮箱发送一个链接,打开该链接才能激活该账户。还有就是忘记密码重置的功能。项目架构项目结构图如下:pom 依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://原创 2020-07-02 23:27:30 · 1230 阅读 · 0 评论 -
Spring Boot2 实战系列之使用 Spring Security 实现登录
前言在之前的一篇博文 Spring Boot2 实战系列之语言国际化 中利用了 BootStrap 官网的一个登录页面实现了语言国际化,这次在此之上进行改进,增加 Spring Security 的功能,使其能对登录用户进行认证。Spring Boot 已经为 spring security 进行了自动配置,只需要引入以下依赖即可: <dependency> <groupId>org.springframework.boot</groupId> <原创 2020-05-23 13:45:25 · 1392 阅读 · 0 评论 -
Spring Boot2 实战系列之登录注册(二) - 登录实现
前言在前面的博文 Spring Boot2 实战系列之登录注册(一) - 注册实现 中实现了一个基本的注册功能,这次继续把登录功能加上,采用 spring security 对用户进行认证,采用 session 管理用户登录状态。项目架构项目结构图如下:pom 依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http原创 2020-05-17 00:07:17 · 883 阅读 · 0 评论 -
Spring Boot2 实战系列之登录注册(一) - 注册实现
前言登录注册是一个网站最基本的功能,但它其实可以涉及到比较多方面,如用户注册时的密码校验,账户邮件激活,或者用户登录时的权限认证等。这次我们就来逐步实现一个登录注册功能。具体会用到 Spring Security来管理应用的认证授权,对象映射框架 JPA,同时为了方便演示,使用了基于内存的 H2 数据库。首先来实现一个基本的注册功能。项目架构项目结构图如下:pom 依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xml原创 2020-05-10 18:13:28 · 1000 阅读 · 0 评论 -
Spring Boot 默认日志使用
前言日志框架有很多种,但常用的日志框架是这三种: Log4j,Log4j2,Logback,简单介绍下它们的关系:Log4j 是 作者 Ceki 最早在 1999 年发布的,在2015 年宣布终止。Log4j 被 Apache 收入门下后,它的作者后来又开发了 sl4j(sl4j 是日志的抽象层,提供了简单统一的接口) 和 Logback(在 log4j 基础上进行了改进)Apache ...原创 2020-05-04 19:52:05 · 3717 阅读 · 1 评论 -
Spring Boot 入门简介
概述Spring Boot 是简化 Spring 应用开发的一个框架块,它整合了 Spring 的整个技术栈,提供了 J2EE 开发以站式解决方案。它的目标是让你无需手动进行繁杂的配置或者只需要用到很少的配置就可以快速将你的项目运行起来。核心功能内置 Tomat,Jetty 和 Undertow servlet 容器,可以独立运行应用,无需打 war 包提供一系列的 starter p...原创 2020-05-03 20:42:01 · 305 阅读 · 0 评论 -
Spring Boot2 实战系列之使用 RestTemplate
前言在另一篇博文 Spring Boot2 实战系列之RESTful Web Service 中我们构建了一个 restful 风格的项目,并用 postman 来围绕 HTTP 动词 GET,POST,PUT,DELETE 对员工信息展开 CURD 操作。那么在实际项目中,如果我们想调用别人提供的 resultful api 来请求网络资源应该怎样做呢,很多人会想到用 httpclient,但...原创 2020-05-02 20:48:19 · 1553 阅读 · 0 评论 -
Spring Boot2 实战系列之使用Thymeleaf模板引擎
前言Thymeleaf 是一个 xml, xhtml,html5 的模板引擎,Spring Boot 官方推荐使用 Thymeleaf 引擎,因为它对 Spring MVC 提供了完美的支持。我们知道以前的 Spring MVC web应用在视图层常使用 JSP,但 springboot 使用的是内嵌的 servlet 容器,而内嵌的 Tomcat 和 Jetty 不支持以 jar 形式运行 J...原创 2020-05-02 01:53:10 · 247 阅读 · 0 评论 -
Spring Boot2 实战系列之文件上传下载
前言文件上传和下载是很多网站都会有的功能,这次我们来实践下用 Spring Boot 实现这个功能。为了方便演示,没有实现将文件存储到数据库中,只是用到了一个 List 将上传文件的相关信息保存在内存中,文件本身放在本地磁盘。创建项目项目结构图如下:pom 依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xml...原创 2020-04-29 23:53:49 · 273 阅读 · 0 评论 -
Spring Boot2 实战系列之使用分页插件PageHelper
前言在网站里我们常常会看到可以分页的列表,这次我们就通过 springboot + thymeleaf + pagehelper 来实现这一功能。PageHelper 是开源的 MyBatis 分页插件, 支持任何复杂的单表、多表分页,详细使用方法可查看 官方文档下面通过一个展示商品信息的页面来演示怎样使用 pagehelper创建项目项目结构图如下:pom 依赖如下:<?xm...原创 2020-04-27 00:55:08 · 706 阅读 · 0 评论 -
Spring Boot2 实战系列之语言国际化
前言在很多网站我们可以看到可以切换语言的按钮,如果网站需要面向海外用户,那么实现网站语言国际化就显得非常必要。在 Spring Boot 中,我们可以非常方便地实现这个语言国际化的功能,下面就开始动手来实践一个可以中英切换的登录页面吧。创建项目项目结构图如下:这里的登录页面使用的是 Bootstrap 官方的一个实例,下载下来,把相关静态资源文件导入到 resource 目录就好。...原创 2020-04-18 23:25:18 · 518 阅读 · 1 评论 -
Spring Boot2 实战系列之RESTful Web Service
前言关于 REST 概念的阐述,是 Roy Fielding 大神在他的 博士论文 中提出的,有兴趣的小伙伴可以去看一下,Restful web service是指遵守了 REST 风格的web服务, 可以看下阮一峰老师的 RESTful API 最佳实践。但要记住的是 REST 是一种设计风格,它背后的理念是使用 HTTP 动词 GET,POST, PUT, DELETE 来对应服务的 CU...原创 2020-04-12 20:06:31 · 273 阅读 · 0 评论 -
Spring Boot2 实战系列之Scheduling Tasks
前言在系统中使用定时任务已经是一个比较常见的事情,比如需要定时发送邮件报告,生成系统日志,进行数据归档等。Spring3.0 起加入了任务调度功能 Schedule, 它不需要使用依赖其他 JAR 包,使用起来比较方便。在 SpringBoot 中使用 scheduled,在项目启动类上添加注解 @EnableScheduling 来开启任务调度,然后在方法上使用注解 @Scheduled ...原创 2020-04-12 17:26:40 · 199 阅读 · 1 评论 -
Spring Boot2 实战系列之 exception 配置
前言在实际项目中,通常会有各种异常抛出,如果我们不加以捕捉并自定义统一的response(返回信息),那么用户就可能看到莫名奇怪的错误。比如常见的 NullPointerException, 你直接返回这个错误信息,相信用户也是一头雾水。还有就是统一捕捉异常并自定义报错信息也有利于我们排查,迅速定位问题所在。我们先来看下如果不做全局异常配置会是怎样,如下例所示,在 controller 层的...原创 2020-04-07 00:48:57 · 256 阅读 · 0 评论 -
Spring Boot2 实战系列之多环境Profile
前言在开发软件中,一个值得注意的问题就是当程序从一个环境迁移到另一个环境时,我们的程序是否依然正常运行,因为在开发阶段时,某些环境配置可能与生产环境不同,例如数据库配置,加密算法等。在 Spring 中,你可以分别为不同的环境设置一个配置类,然后在运行时再根据环境来确定应该创建哪个 bean 和 不创建哪个 bean。在 Spring3.1 中,引入了 bean profile 的概念,可以将...原创 2020-03-29 16:26:06 · 317 阅读 · 0 评论 -
Spring Boot2 实战系列之使用HTTPS
前言各位小伙伴有没有发现,现在的网站基本都用上了 HTTP,因为 HTTP的通信是明文的,容易被不怀好意的人监听通信,窥探用户的隐私,这简直就是裸奔。而 HTTPS 使用 SSL 证书在加密通信前进行身份验证,协商加密算法以及交换密钥,可以满足基本的安全需求,即防窃取,防篡改,防钓鱼。https 通信的流程如下:HTTPS= HTTP + SSL, 想要建立起 HTTPS 连接,则必须使用...原创 2020-03-28 22:31:46 · 250 阅读 · 0 评论 -
Spring Boot2 实战系列之属性配置
一、前言在项目中我们常常需要配置一些基本的属性,比如连接数据库的 URL, Driven, username,password 等,这些配置内容如果放在代码中会变得难以维护, 想象一下,当你的应用配置信息临时需要变更时,你要改动代码然后重新编译打包再部署,如此一来就耗费大量时间,给用户带来不好体验。因此,我们通常将配置信息放在一个配置文件中,一般以 .properties 结尾,因为可以直接通过...原创 2020-03-27 00:12:22 · 128 阅读 · 0 评论