SpringBoot
趔趄的猿
这个作者很懒,什么都没留下…
展开
-
SpringBoot | 第十三章:测试相关(单元测试、性能测试)
前言 前面写了这么多章节,都是通过浏览器访问的形式,进行接口方法访问进而验证方法的正确与否。显然在服务或者接口比较少时,这么做没有啥问题,但一旦一个项目稍微复杂或者接口方法比较多时,这么验证就有点不符合程序猿的懒人的特性了。所以这章节,讲述下SpringBoot中的单元测试及基于Contiperf压测工具进行性能测试相关方面的知识点。单元测试 是指对软件中的最小可测试单元...原创 2018-08-14 09:04:03 · 590 阅读 · 0 评论 -
SpringBoot | 第二十三章:日志管理之整合篇
前言 在本系列《第四章:日志管理》中,由于工作中日志这块都是走默认配置,也没有深入了解过,因为部署过程中直接使用了linux中的输出重定向功能,如java -jar xx.jar > app.log 2>&1 &,直接输出到某个日志文件了。所以也就没有认真关心过默认的日志格式了。系列文章出来后,也看见有网友反馈说如何进行日志的相关配置,或者配置失效问题。本着负...原创 2018-08-22 11:36:40 · 238 阅读 · 0 评论 -
SpringBoot | 第二十章:异步开发之异步请求
前言 关于web开发的相关知识点,后续有补充时再开续写了。比如webService服务、发邮件等,这些一般上觉得不完全属于web开发方面的,而且目前webService作为一个接口来提供服务的机会应该比较小了吧。所以本章节开始,开始讲解关于异步开发过程中会使用到的一些知识点。本章节就来讲解下异步请求相关知识点。一点知识何为异步请求在Servlet 3.0之前,Serv...原创 2018-08-17 08:52:34 · 658 阅读 · 0 评论 -
SpringBoot | 第二十一章:异步开发之异步调用
前言 上一章节,我们知道了如何进行异步请求的处理。除了异步请求,一般上我们用的比较多的应该是异步调用。通常在开发过程中,会遇到一个方法是和实际业务无关的,没有紧密性的。比如记录日志信息等业务。这个时候正常就是启一个新线程去做一些业务处理,让主线程异步的执行其他业务。所以,本章节重点说下在SpringBoot中如何进行异步调用及其相关知识和注意点。一点知识何为异步调用说...原创 2018-08-17 08:53:17 · 6282 阅读 · 0 评论 -
SpringBoot | 第二十四章:日志管理之AOP统一日志
前言 上一章节,介绍了目前开发中常见的log4j2及logback日志框架的整合知识。在很多时候,我们在开发一个系统时,不管出于何种考虑,比如是审计要求,或者防抵赖,还是保留操作痕迹的角度,一般都会有个全局记录日志的模块功能。此模块一般上会记录每个对数据有进行变更的操作记录,若是在web应用上,还会记录请求的url,请求的IP,及当前的操作人,操作的方法说明等等。在很多时候,我们需要记录请...原创 2018-08-24 09:29:08 · 202 阅读 · 0 评论 -
SpringBoot | 第二十六章:邮件发送
前言 讲解了日志相关的知识点后。今天来点相对简单的,一般上,我们在开发一些注册功能、发送验证码或者订单服务时,都会通过短信或者邮件的方式通知消费者,注册或者订单的相关信息。而且基本上邮件的内容都是模版,一些差异化的可根据实际情况来进行替换。比如12306购票成功后,会发送一封购票信息邮件;在京东下单成功后,也会收到一封包含订单的邮件。所以,今天就来讲讲如何利用Spring提供的JavaMa...原创 2018-08-29 10:12:44 · 708 阅读 · 0 评论 -
SpringBoot | 第二十五章:日志管理之自定义Appender
前言 前面两章节我们介绍了一些日志框架的常见配置及使用实践。一般上,在开发过程中,像log4j2、logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了。但在一些特殊需求或者需要将日志进行集中管理(集群部署时,日志是分拆到不同服务器上的,不可能去每一台服务器上去下载文件的,也不便于日志检索)时,就需要自定义Appender,将日志集中输出或者其他一些特殊需求。...原创 2018-08-25 23:55:48 · 3955 阅读 · 1 评论 -
SpringBoot | 第二十七章:监控管理之Actuator使用
前言 随着我们服务越来越多,部署的环境也越来越繁多时,由于各服务都部署在不同的机器上,每当出现问题或者异常时,想快速进行问题的定位就变的麻烦了。所以,本章节开始,开始讲解SpringBoot的监控相关知识点。本章节就先来说一说,其自带的Actuator功能。一点知识Actuator实践 原生端点上手实践自定义端点 自定义健康端点自定义端点参考资料总结最后老生常谈...原创 2018-09-11 09:23:55 · 238 阅读 · 0 评论 -
SpringBoot | 第二十八章:监控管理之Spring Boot Admin使用
前言 上一章节,我们介绍了Actuator的使用,知道了可通过访问不同的端点路径,获取相应的监控信息。但使用后也能发现,返回的监控数据都是以JSON串的形式进行返回的,对于实施或者其他人员来说,不是很直观,而当需要监控的应用越来越多时,依次去访问对应的应用也过于繁琐和低效了。所以,本章节来介绍下Spring Boot Admin这个UI监控工具。Spring-Boot-Admin...原创 2018-09-14 20:30:34 · 245 阅读 · 0 评论 -
SpringBoot | 第二十九章:Dubbo的集成和使用
前言今年年初时,阿里巴巴开源的高性能服务框架dubbo又开始了新一轮的更新,还加入了Apache孵化器。原先项目使用了spring cloud之后,已经比较少用dubbo。目前又抽调回原来的行业应用部门,可能还会使用dubbo进行服务调用。趁着编写教材的机会来进行学习下。而且目前Dubbo也出了springboot的starter项目了,借着SpringBoot的东风,集成起来很方便,基本上就...原创 2018-09-28 09:41:43 · 276 阅读 · 0 评论 -
SpringBoot | 第三十章:Spring-data-jpa的集成和使用
前言在前面的第九章:Mybatis-plus的集成和使用章节中,介绍了使用ORM框架mybatis-plus进行数据库的访问。今天,我们来简单学习下如何使用spring-data-jpa进行数据库的访问。由于本人未使用过jpa,也是趁着写博文的机会查阅了相关资料下,有错误的地方还望指出!前言一点知识何为JPA何为Sping-data-jpaSpringBoot集成Sprin...原创 2018-10-31 09:30:58 · 213 阅读 · 0 评论 -
SpringBoot | 第三十一章:MongoDB的集成和使用
前言上一章节,简单讲解了如何集成Spring-data-jpa。本章节,我们来看看如何集成NoSQL的Mongodb。mongodb是最早热门非关系数据库的之一,使用也比较普遍。最适合来存储一些非结构数据了,适合对大量或者无固定格式的数据进行存储,比如:日志、缓存等。一点知识MongoDB简介SpringBoot集成MongoDB准备工作MongoTemplate方式M...原创 2018-11-01 09:26:21 · 334 阅读 · 0 评论 -
SpringBoot | 第三十二章:事件的发布和监听
前言今天去官网查看spring boot资料时,在特性中看见了系统的事件及监听章节。想想,spring的事件应该是在3.x版本就发布的功能了,并越来越完善,其为bean和bean之间的消息通信提供了支持。比如,我们可以在用户注册成功后,发送一份注册成功的邮件至用户邮箱或者发送短信。使用事件其实最大作用,应该还是为了业务解耦,毕竟用户注册成功后,注册服务的事情就做完了,只需要发布一个用户注册成功...原创 2018-11-06 09:24:58 · 345 阅读 · 0 评论 -
SpringBoot | 第三十三章:Spring web Servcies集成和使用
前言最近有个单位内网系统需要对接统一门户,进行单点登录和待办事项对接功能。一般上政府系统都会要求做统一登录功能,这个没啥问题,反正业务系统都是做单点登录的,改下shiro相关类就好了。看了接入方案,做坑爹的是需要业务系统提供一个webService服务,供统一平台调用。对于ws服务,是真的除了大学期间要去写个调用天气预报的作业后,就再也没有接触过了。查阅了SpringBoot文档后,发现确实有...原创 2018-11-09 10:02:02 · 549 阅读 · 0 评论 -
SpringBoot | 第三十四章:CXF构建WebService服务
前言上一章节,讲解了如何使用Spring-WS构建WebService服务。其实,创建WebService的方式有很多的,今天来看看如何使用apache cxf来构建及调用WebService服务。前言一点知识何为Apache-CXF关于JAX-WS规范常用注解介绍SpringBoot整合CXF实例服务端构建客户端调用异常捕获自定义拦截器服务端拦...原创 2018-11-12 09:05:47 · 2531 阅读 · 2 评论 -
SpringBoot | 第三十五章:Mybatis的集成和使用
前言最近收到公众号留言说,单纯的Mybatis的集成和使用。前面在第九章:Mybatis-plus的集成和使用介绍了基于mybatis-plus的集成和使用。后者也只是对mybatis进行了功能增强,原本的用法都是没有变化的。那今天就来简单介绍了如何springboot中如何集成和使用Mybatis吧。SpringBoot的集成和使用通用配置注解方式xml方式枚举类型处理器配置...原创 2018-12-03 08:56:48 · 208 阅读 · 0 评论 -
SpringBoot | 第三十六章:集成多CacheManager
前言今天有网友咨询了一个问题:如何在一个工程中使用多种缓存进行差异化缓存,即实现多个cacheManager灵活切换。原来没有遇见这种场景,今天下班抽空试了下,以下就把如何实现的简单记录下。一点知识关于CacheMananger集成Redis和ehcache参考资料总结最后老生常谈一点知识在SpringBoot中使用Spring Cache可以轻松实现缓存,是S...原创 2019-03-08 09:32:59 · 307 阅读 · 0 评论 -
SpringBoot | 第三十七章:集成Jasypt实现配置项加密
前言近期在进行项目安全方面评审时,质量管理部门有提出需要对配置文件中的敏高文件进行加密处理,避免了信息泄露问题。想想前段时间某公司上传github时,把相应的生产数据库明文密码也一并上传了,导致了相应的数据泄露问题。也确实,大部分项目无论开发、测试还是生产环境,相关的敏高信息都是明文存储的,也是一大安全隐患呀。所以今天来说说,如何对配置文件进行加密操作。一点知识何为Jasypt...原创 2019-05-08 22:57:36 · 617 阅读 · 0 评论 -
SpringBoot | 第二十二章:定时任务的使用
前言 上两章节,我们简单的讲解了关于异步调用和异步请求相关知识点。这一章节,我们来讲讲开发过程也是经常会碰见的定时任务。比如每天定时清理无效数据、定时发送短信、定时发送邮件、支付系统中的定时对账等等,往往都会定义一些定时器,进行此业务的开发。所以,本章节介绍下在SpringBoot中定时任务如何使用及一点分布式定时服务的思考总结。一点知识基于JDK方式实现简单定时 Timer...原创 2018-08-19 11:42:50 · 270 阅读 · 0 评论 -
SpringBoot | 第十九章:web应用开发之WebSocket
前言 web开发也讲解了三章了,这章节开始讲解关于与前端通信相关知识。实现一个在线聊天室类似的功能或者后端推送消息到前端,在没有WebSocket时,读大学那伙还有接触过DWR(Direct Web Remoting),也使用过轮询的方式,当Servlet3.0出来后,也有使用其异步连接机制进行前后端通信的。今天我们就来说说WebSocket。它是HTML5开始提供的。关于Web...原创 2018-08-16 09:05:51 · 249 阅读 · 0 评论 -
SpringBoot | 第十八章:web应用开发之WebJars使用
前言 前面一章节我们主要讲解了关于文件上传的两种方式。本章节继续web开发的相关知识点。通常对于web开发而言,像js、css、images等静态资源版本管理是比较混乱的,比如Jquery、Bootstrap、Vue.js可能各个前端框架所依赖的自个组件的版本都不尽相同,一不注意就可能引起不同版本的冲突问题。所以,是否有一种像后端管理jar包一样的解决方案呢?答案当然是有的,今天我们就来重...原创 2018-08-16 09:04:56 · 258 阅读 · 0 评论 -
SpringBoot | 第十四章:基于Docker的简单部署
前言 讲解了单元测试,本章节讲讲应用的部署吧。总体而言,在进行自动化部署时,基本都会用上Jenkins+Maven+Docker进行部署。本章节主要讲解使用Maven+Docker进行SpringBoot应用的部署知识。题外话:对于Docker,本人也是去年才第一次听说的,当时也没有进行过相关了解。然后年初的时候,本着学习的心态,购置了一台阿里云的ECS服务器,之后的相关实践,都是在...原创 2018-08-14 09:06:22 · 329 阅读 · 0 评论 -
SpringBoot | 第十五章:基于Postman的RESTful接口测试
前言 从上一章节开始,接下来的几个章节会讲解一些开发过程中配套工具的使用。俗话说的好,工欲善其事,必先利其器。对于开发人员而言,有个好用的工具,也是一件事半功倍的事,而且开发起来也很爽,效率也会提升很多。本章节主要讲解关于Postman这款http模拟请求工具,一般上拿来测试api接口服务的。题外话:对于Postman而言,本人也是仅仅使用了其中一小部分,还是本着够用的原则,对于...原创 2018-08-14 09:07:49 · 591 阅读 · 0 评论 -
SpringBoot | 第零章:前言
缘起 前段时间公司领导叫编写一两课关于springboot的基础知识培训课程,说实话,也是今年年初才开始接触了SpringBoot这个脚手架,使用了之后才发现打开了一个新世界。再之后也没有一些系统的学习过springboot,刚好借着这次编写培训教程机会,以一个初学者的身份,希望能够对sproingboot进行一次完整的学习。也希望通过此系列教程,能够加深对springboot的理解,之后...原创 2018-08-11 21:51:28 · 316 阅读 · 0 评论 -
SpringBoot | 第一章:第一个SpringBoot应用
springboot简单介绍概述 随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。 在上述环境下,Springboot应运而生。它使用”习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运...原创 2018-08-11 21:53:16 · 230 阅读 · 0 评论 -
SpringBoot | 第二章:lombok介绍及简单使用
前言 在去北京培训的时候,讲师说到了lombok这个第三方插件包,使用了之后发现,确实是个神奇,避免了编写很多臃肿的且定式的代码,虽然现代的IDE都能通过快捷键或者右键的方式,使用Generate Getters and Setters快速生成setters/getters,但当某一个字段修改或者添加字段时,又需要重复的操作一遍,但使用了lombok之后。一切都是自动的,除了最常用的生成s...原创 2018-08-11 21:54:59 · 320 阅读 · 0 评论 -
SpringBoot | 第三章:SpringBoot配置详解
前言 基于springboot的约定优于配置的原则,在多数情况下,启动一个应用时,基本上无需做太多的配置,应用就能正常启动。但在大部分开发环境下,添加额外配置是无所避免的,比如自定义应用端口号(比较在机器比较少的情况下,一台机器还是需要部署多个应用的,当然利用docker的话,是可避免的,这是后话了)、mq的服务地址、缓存服务的服务地址、数据库的配置等,都或多或少的需要一些外部的配置项。...原创 2018-08-11 21:56:34 · 445 阅读 · 0 评论 -
SpringBoot | 第四章:日志配置(转)
前言 介于平时工作中,对于日志这块没有过多的接触,也就未有过多的了解。故在编写本文时,上官网查看了相关资料,奈何每个字母我都认识,但合起来就有点晕了,英文阅读水平还是有待大大的提高呀。最后觉得还是转载一篇关于日志的文章,不能误人子弟不是~SpringBoot官网关于日志章节说明(可输入logging进查找):https://docs.spring.io/spring-boot/doc...转载 2018-08-11 21:57:49 · 251 阅读 · 0 评论 -
SpringBoot | 第五章:多环境配置
前言 写上一篇看英文资料,耗费了心力呀,这章,相对来说简单点。也比较熟悉,但是这很实用。不扯了,开始~多环境配置 在开发应用时,常用部署的应用是多个的,比如:开发、测试、联调、生产等不同的应用环境,这些应用环境都对应不同的配置项,比如swagger一般上在生产时是关闭的;不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。...原创 2018-08-11 21:59:04 · 233 阅读 · 0 评论 -
SpringBoot | 第六章:常用注解介绍及简单使用
前言 之前几个章节,大部分都是算介绍springboot的一些外围配置,比如日志 配置等。这章节开始,开始总结一些关于springboot的综合开发的知识点。由于SpringBoot本身是基于Spring和SpringMvc等各类spring家族的一个解决方案,可快速进行集合。故相关知识点其实大部分都是基于spring或者springmvc既有的知识点的。本章节,主要讲解的是关于web开发...原创 2018-08-11 22:01:51 · 187 阅读 · 0 评论 -
SpringBoot | 第七章:过滤器、监听器、拦截器
前言 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏高词汇、访问权限控制(URL级别)等业务需求。这些对于业务来说一般上是无关的,业务方是无需关系的,业务只需要关系自己内部业务的事情。所以一般上实现以上的功能,都会或多或少的用到今天准备讲解的过滤器、监听器、拦截器来实现以上功能。过滤器 过滤器Filter,是Servlet的的一个...原创 2018-08-11 22:03:35 · 330 阅读 · 0 评论 -
SpringBoot | 第八章:统一异常、数据校验处理
前言 在web应用中,请求处理时,出现异常是非常常见的。所以当应用出现各类异常时,进行异常的捕获或者二次处理(比如sql异常正常是不能外抛)是非常必要的,比如在开发对外api服务时,约定了响应的参数格式,如respCode、respMsg,调用方根据错误码进行自己的业务逻辑。本章节就重点讲解下统一异常和数据校验处理。springboot中,默认在发送异常时,会跳转值/error请求进...原创 2018-08-11 22:05:52 · 301 阅读 · 0 评论 -
SpringBoot | 第九章:Mybatis-plus的集成和使用
前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数据库持久化框架。多说几句 看着现在Mybatis框架的大行其道,让我不禁想起,大学时期,当时还是hibernate的时代,现在基本已经忘记了。而当时,Mybatis的前身iBatis还在...原创 2018-08-11 22:07:26 · 461 阅读 · 0 评论 -
SpringBoot | 第十章:Swagger2的集成和使用
前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的沟通成本就增加了。所以一款强大的RESTful API文档就至关重要了。而目前在后端领域,基本上是Swagger的天下了。Swagger2介绍 Swagger是一款RESTfu...原创 2018-08-12 14:51:14 · 179 阅读 · 0 评论 -
SpringBoot | 第十一章:Redis的集成和简单使用
前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的需求。所以这一章节准备讲下缓存数据库Redis的集成,同时会介绍下基于Redis和注解驱动的Spring Cache的简单使用。Redis 介绍 大家应该对Redis应该比较...原创 2018-08-12 14:54:20 · 219 阅读 · 0 评论 -
SpringBoot | 第十二章:RabbitMQ的集成和使用
前言 上节讲了缓存数据库redis的使用,在实际工作中,一般上在系统或者应用间通信或者进行异步通知(登录后发送短信或者邮件等)时,都会使用消息队列进行解决此业务场景的解耦问题。这章节讲解下消息队列RabbitMQ的集成和简单使用示例。RabbitMQ介绍SpringBoot集成RabbitMQ总结最后老生常谈RabbitMQ介绍 RabbitMQ是一个开源...原创 2018-08-12 14:55:29 · 166 阅读 · 0 评论 -
SpringBoot | 第十六章:web应用开发
前言 前面讲了这么多章节,都没有涉及到前端web和后端交互的部分。因为作者所在公司是采用前后端分离方式进行web项目开发了。所以都是后端提供api接口,前端根据api文档或者服务自行调用的。后台也有读者说为何没有关于web这部分的集成文章。本章节就主要讲解下如何渲染页面的。一点知识 我们知道,在web开发时,一般都会涉及到很多的静态资源,如js、image、css文件等。...原创 2018-08-15 08:57:35 · 205 阅读 · 0 评论 -
SpringBoot | 第十七章:web应用开发之文件上传
前言 上一章节,我们讲解了利用模版引擎实现前端页面渲染,从而实现动态网页的功能,同时也提出了兼容jsp项目的解决方案。既然开始讲解web开发了,我们就接着继续往web这个方向继续吧。通常,我们在做web开发时,碰见诸如附件上传、图片头像上传等文件的上传需求也是再正常不过的。那么,我们今天我们就来讲讲SpringBoot下文件上传的功能的实现。一点知识我们知道,前端上传文件时,...原创 2018-08-16 09:04:03 · 143 阅读 · 0 评论 -
SpringBoot | 第三十八章:基于RabbitMQ实现消息延迟队列方案
前言前段时间在编写通用的消息通知服务时,由于需要实现类似通知失败时,需要延后几分钟再次进行发送,进行多次尝试后,进入定时发送机制。此机制,在原先对接银联支付时,银联的异步通知也是类似的,在第一次通知失败后,支付标准服务会重发,最多发送五次,每次的间隔时间为1、4、8、16分钟等。本文就简单讲解下使用RabbitMQ实现延时消息队列功能。前言一点知识延时队列使用场景RabbitMQ...原创 2019-07-21 22:40:40 · 458 阅读 · 1 评论