前言
在本文开始前可以先看看这篇文章:
Jenkins + Gitlab + Maven + Tomcat 持续集成部署 SpringBoot 应用实践,除了 Jenkins 构建项目的方式不一样之外,其他配置都一样。
关于 pipeline 的简介和 pipeline 的两种语法模型的区别可以看这篇文章: Pipeline 声明式和脚本式的主要区别
在本文开始前可以先看看这篇文章:
Jenkins + Gitlab + Maven + Tomcat 持续集成部署 SpringBoot 应用实践,除了 Jenkins 构建项目的方式不一样之外,其他配置都一样。
关于 pipeline 的简介和 pipeline 的两种语法模型的区别可以看这篇文章: Pipeline 声明式和脚本式的主要区别
Kubernetes(简称,K8S)是 Google 开源的容器集群管理系统。在容器部署时代,我们知道了容器类似于 VM,但有着更好的隔离属性,与基础架构分离,使得它可以跨云和 OS 分发进行移植。它的应用和其运行环境捆绑在一起,可以进行持续开发,集成和部署,并且因为镜像不可更改可以快速回滚。
容器镜像比 VM 镜像能够更快地创建,隔离性好,敏捷的应用程序和部署,但是在生产环境中,如果容器较多,如何管理容器的生命周期将会变得棘手,但如果由系统处容器的弹性扩展,故障转移,是不是就极大地解放了运维的成本,这就是使用 Kubernetes 的好处!使用 Kubernetes 有如下好处:
在前面的博文 Spring Boot2 实战系列之登录注册(二) - 登录实现 中实现了登录功能。这次来增加一个功能,就是在注册的时候可以向注册邮箱发送一个链接,打开该链接才能激活该账户。
在之前的一篇博文 Spring Boot2 实战系列之语言国际化 中利用了 BootStrap 官网的一个登录页面实现了语言国际化,这次在此之上进行改进,增加 Spring Security 的功能,使其能对登录用户进行认证。
Spring Boot 已经为 spring security 进行了自动配置,只需要引入以下依赖即可:
关于 REST 概念的阐述,是 Roy Fielding 大神在他的 博士论文 中提出的,有兴趣的小伙伴可以去看一下,Restful web service是指遵守了 REST 风格的web服务, 可以看下阮一峰老师的 RESTful API 最佳实践。但要记住的是 REST 是一种设计风格,它背后的理念是使用 HTTP 动词 GET,POST, PUT, DELETE 来对应服务的 CURD 操作,并且使用 JSON 来请求数据和接收数据。
在设计符合 REST 理念的服务接口时,可以参考以下指导方针:
下面使用一个对员工进行增删改查的例子来实践 RESTful 设计。
日志框架有很多种,但常用的日志框架是这三种: Log4j,Log4j2,Logback,简单介绍下它们的关系:
Log4j,Log4j2,Logback 这 3 种日志框架都对 sl4j 提供了实现支持, 关于它们之间的性能对比,可以参考这篇文章:https://bbs.huaweicloud.com/blogs/103530, 这里就不展开赘述了。