10 2020 档案
摘要:Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的数据结构和算法。key都是由字符串构成的,那么这五种数据结构的使用场景有哪些?一起来看看! 一 字符
阅读全文
摘要:2020-1024=996! 今天,星期六,你们是否加班了?我反正加了!早上去公司开了一早上会,中午回家写下了这篇文章。 今天,我要推荐一个开源免费的Spring Boot项目,就是我最近日更的Spring Boot系列文章——spring-boot-route。 github地址:**https:
阅读全文
摘要:在讲微信公众号开发之前,先来大概了解一下微信公众号。微信公众号大体上可以分为服务号和订阅号,订阅号和服务号的区别如下: 服务号可以申请微信支付功能。 服务号只能由企业申请,订阅号可以有企业或个人申请。 订阅号和服务号每月推送消息次数不同,订阅号每天可以推送一次,服务号每月可以推送四次。 服务号推送的
阅读全文
摘要:在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送。在Spring项目中发送邮件需要封装复杂的消息体,不太方便。而在Spring Boot项目中发送邮件就太简单了,下面一起来看看Spring Boot如何发送邮件。 本文以126邮箱为例进行邮件发送功能,其他邮箱的配置也都大同小
阅读全文
摘要:Quartz是一个定时任务的调度框架,涉及到的主要概念有以下几个: Scheduler:调度器,所有的调度都由它控制,所有的任务都由它管理。 Job:任务,定义业务逻辑。 JobDetail:基于Job,进一步封装。其中关联一个Job,并为Job指定更详细的信息。 Trigger:触发器,可以指定给
阅读全文
摘要:Spring Task是Spring 3.0自带的定时任务,可以将它看作成一个轻量级的Quartz,功能虽然没有Quartz那样强大,但是使用起来非常简单,无需增加额外的依赖,可直接上手使用。 一 如何实现定时任务 1. 开启定时任务 在启动类上增加@EnableScheduling注解,开启定时任
阅读全文
摘要:SpringBootAdmin不是Spring官方提供的模块,它包含了Client和Server两部分。server部分提供了用户管理界面,client即为被监控的服务。client需要注册到server端。 SpringBootAdmin提供了很少的几个监控服务端点,需要依赖SpringBootA
阅读全文
摘要:Spring Boot提供了良好的服务监控模块,只需要通过简单的配置便可以完成服务监控和管理。但是服务监控这块内容往往是最容易被忽略的一块内容,今天我们一起来学习一下使用spring-boot-actuator进行服务监控。spring-boot-actuator提供了监控端点,这些端点直接返回JS
阅读全文
摘要:在上一章内容中——使用logback管理日志,我们详细讲述了如何将日志生成文件进行存储。但是在实际开发中,使用文件存储日志用来快速查询问题并不是最方便的,一个优秀系统除了日志文件还需要将操作日志进行持久化,来监控平台的操作记录。今天我们一起来学习一下如何通过apo来记录日志。 为了让记录日志更加灵活
阅读全文
摘要:在日常开发中,总会接触到各种接口。前后端数据传输接口,第三方业务平台接口。一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护。这篇文章重点讨论一下提供给第三方平台的业务接口应当如何设计?我们应该考虑哪些问题? 主要从以上三个方面来设计一个安全的AP
阅读全文
摘要:日志是一个系统非常重要的一部分,我们经常需要通过查看日志来定位问题,今天我们一起来学习一下Spring Boot的日志系统。有很多同学习惯性的在生产代码中使用System.out来输出日志,这是不推荐的一种做法,因为System.out是一个同步操作,会在一定程度上影响系统性能,而Logger是一个
阅读全文
摘要:RocketMQ简介 RocketMQ是阿里巴巴开源的消息中间件。目前已经贡献给Apache软件基金会,成为Apache的顶级项目。 rocketMQ基本概念 1. Producer Group 生产者组:是一类生产者的集合,通常发送同一类消息并且发送逻辑一致。 2. Producer 生产者:负责
阅读全文
摘要:在上一章中SpringBoot整合RabbitMQ,已经详细介绍了消息队列的作用,这一种我们直接来学习SpringBoot如何整合kafka发送消息。 kafka简介 kafka是用Scala和Java语言开发的,高吞吐量的分布式消息中间件。高吞吐量使它在大数据领域具有天然的优势,被广泛用来记录日志
阅读全文
摘要:这篇是SpringBoot整合消息队列的第一篇文章,我们详细介绍下消息队列的相关内容。 消息队列简介 1. 什么是消息队列 MQ(Message Quene):通过典型的生产者和消费者模型,生产者不断向消息队列中产生消息,消费者不断的从队列中获取消息。因为生产者和消费者都是异步的,而且生产者只关心消
阅读全文
摘要:redis简介 redis作为一种非关系型数据库,读写非常快,应用十分广泛,它采用key-value的形式存储数据,value常用的五大数据类型有string(字符串),list(链表),set(集合),zset(有序集合)和hash(哈希表)。 redis的特性决定了它的功能,它可以用来做以下这些
阅读全文
摘要:Spring Boot最大的特点就是自动配置了,大大的减少了传统Spring框架的繁琐配置,通过几行简单的配置就可以完成其他组件的接入。比如你想要连接mysql数据库,只需要的配置文件里面加入mysql的一些配置信息就可以了。为了保护数据的安全性,越来越多的公司选择加密这些重要信息。接下来一起来看看
阅读全文
摘要:前面我们已经介绍了三种方式来操作数据库,在实际开发中,往往会出现一个服务连接多个数据库的需求,这时候就需要在项目中进行灵活切换数据源来完成多个数据库操作。这一章中,我们使用jdbcTemplate来学习多数据源的配置。 一 准备工作 1.1 建库、建表 我们新建两个库db1和db2,数据结构还是用前
阅读全文
摘要:单调的增删改查让越来越多的程序员感到乏味,这时候就出现了很多优秀的框架,完成了对增删改查操作的封装,只需要简单配置,无需书写任何sql,就可以完成增删改查。这里比较推荐的是Spring Data Jpa。 Spring Data JPA是Spring Data家族的一部分,可以轻松实现基于JPA的存
阅读全文
摘要:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Ja
阅读全文
摘要:在一部分内容中,我们学习了Restful接口的编写,及接口文档的生成。我们需要将接口数据进行持久化存储,这一部分我们主要学习几种持久化框架将数据进行存储。本部分内容中,我们都将使用mysql为例来做为演示数据库。 在刚开始接触数据库操作的时候我们都会使用JDBC来进行数据库操作,但是每次都要创建连接
阅读全文
摘要:上一篇文章中介绍了使用Swagger生成接口文档,非常方便,功能也十分强大。如果非要说Swaager有什么缺点,想必就是注解写起来比较麻烦。如果我说有一款不用写注解,就可以生成文档的工具,你心动了吗?他就是我们今天的主角——JApiDocs。 下面我们一起来看看如何使用! 一、添加依赖 <depen
阅读全文
摘要:目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有效解决前后端人员沟通难的问题。 下面我们使用SpringBoot结合swagger2生成Restfu
阅读全文
摘要:在开发中,我们经常会使用try/catch块来捕获异常进行处理,如果有些代码中忘记捕获异常或者不可见的一些异常出现,就会响应给前端一些不友好的提示,这时候我们可以使用全局异常处理。这样就不用在代码中写那些烦人的try/catch块了,代码的可读性也会提高。 SpringBoot提供的的注解@Cont
阅读全文
摘要:Spring Boot默认上传的单个文件大小1MB,一次上传的总文件大小为10MB。 单个文件上传使用MultipartFile参数来接收文件,多文件使用MultipartFile[]数组来接收,然后遍历它,当成单文件来处理。 问题一:如何配置上传文件大小限制? @Configuration pub
阅读全文
摘要:Spring Boot提供了两种格式的配置文件,分别是properties 和 yml。Spring Boot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置文件来指定自己服务器相关的参数。 配置文件集约管理了配置信息,如果把配置参数写到Java代码中,维护起来非常不方便,
阅读全文
摘要:Controller接收参数的常用方式总体可以分为三类。第一类是Get请求通过拼接url进行传递,第二类是Post请求通过请求体进行传递,第三类是通过请求头部进行参数传递。 1 @PathVariable接收参数 请求方式:localhost:7001/param/123 请求示例: 代码示例: @
阅读全文
摘要:国庆了! 今年是参加工作后的第四个国庆了。前三年是怎么过的差不多都忘记了,可能是回家了,也可能是出去旅游了。今年打算过个不一样的国庆——继续熬夜掉点头发。 好多事情已经计划了很久了,趁着国庆假期好好梳理梳理! 探望老丈人,谈婚论嫁 很幸运,刚参加工作的时候就找到了现在的女朋友。据不可靠统计,互联网行
阅读全文