
spring-boot
文章平均质量分 87
spring-boot相关知识
懵懵懂懂搬运工
这个作者很懒,什么都没留下…
展开
-
SpringBoot 整合Smart-doc生成接口文档
可是当我接触到另一个接口文档工具smart-doc后,我觉得它比Swagger更适合集成在项目中,更适合老鸟们。今天我们就来介绍一下smart-doc组件的使用,作为对老鸟系列文章的一个补充。swagger vs smart-doc首先我们先看一下Swagger组件目前存在的主要问题: Swagger的代码侵入性比较强 这个很容易理解,要让Swagger生成接口文档必须要给方法或字段添加对应的注解,是存在代码侵入的。 原生swagger不支持接口的参数分组 对于有做参数分组的转载 2021-11-26 09:27:01 · 1510 阅读 · 0 评论 -
Spring Boot 埋点监控吧
JVM应用度量框架Micrometer实战前提spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收集,Grafana(增强ui)进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。一般,我们叫这样的操作为”埋点”。SpringBoot中的依赖spring-actuator中集成的度量统计API使用的框架是Micrometer,官网是Micrometer.io。在实践中发现了业务开发者滥用了Micrometer的度量类型Counter,导致无论什么转载 2021-11-26 09:23:28 · 417 阅读 · 0 评论 -
SpringBoot 2.0实现基于Restful风格的文件上传与下载
Part1环境 JDK: Java 1.8 Framework: Spring Boot 2.2.6(Only Using Spring Web MVC) Maven: Maven 3.5.0+ IDE: IntelliJ IDEA 2019.2 Test: Postman 7.23.0 Part2功能本教程中,使用Spring 2.2.6实现Restful风格的APIs并提供以下的功能: 客户端上传文件到服务端 对客户端上传文件大小进行转载 2021-11-26 09:21:07 · 322 阅读 · 0 评论 -
SpringBoot+Kafka+ELK
整体流程大概如下:服务器准备在这先列出各服务器节点,方便同学们在下文中对照节点查看相应内容SpringBoot项目准备引入log4j2替换SpringBoot默认log,demo项目结构如下:pom<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spri...转载 2021-11-26 09:18:53 · 433 阅读 · 0 评论 -
Spring Boot 集成 WebSocket,实现信息推送
在一次项目开发中,使用到了Netty 网络应用框架,以及 MQTT 进行消息数据的收发,这其中需要后台来将获取到的消息主动推送给前端,于是就使用到了MQTT,特此记录一下。已经收录至陈某独立博客,点击左下角阅读原文跳转!一、什么是websocket?WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了客户端与服务器之间的全双工通信,学过计算机网络都知道,既然是全双工,就说明了服务器可以主动发送信息给客户端。这与我们的推送技术或者是多人在线聊天的功能不谋而合。为转载 2021-11-25 09:32:28 · 448 阅读 · 0 评论 -
SpringBoot实现动态增删启停定时任务
在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。查看spring-context这个jar包中org.springframework.schedulin转载 2021-11-25 09:25:37 · 291 阅读 · 0 评论 -
SpringBoot集成Sentinel实现接口流量控制
Sentinel控制台搭建 Sentinel 客户端 项目搭建 如何定义资源 启动控制台 控制台配置规则 Hello,大家好,我是麦洛,今天带大家来了解一下SpringBoot如何继承Sentinel来实现接口流量控制Sentinel控制台搭建在我的上一篇文章阿里出品的Sentinel到底是个什么玩意?中,已经介绍过如何准备Sentinel控制台,大家可以直接参考;Sentinel 客户端项目搭建首先我们...转载 2021-11-25 09:22:43 · 525 阅读 · 0 评论 -
Spring Boot 项目优化
介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 方便微服务部署。 方便项目启动,不需要下载Tomcat或者Jetty 针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点 线程数 超时时间 jvm优化 针对上述的优化点来说,首先线程数是一个重点,初始线程数和最大线程数,初始线程数保障启动的时候,如果有大量用户访问,能够很稳定的接受请求。而最大线程数量用来保证系统的转载 2021-11-25 09:21:35 · 376 阅读 · 0 评论 -
基于Sharding Sphere实现数据“一键脱敏”
在真实业务场景中,数据库中经常需要存储某些客户的关键性敏感信息如:身份证号、银行卡号、姓名、手机号码等,此类信息按照合规要求,通常需要实现加密存储以满足合规要求。痛点一:通常的解决方案是我们书写SQL的时候,把对应的加密字段手动进行加密再进行插入,在查询的时候使用之前再手动进行解密。此方法固然可行,但是使用起来非常不便捷且繁琐,使得日常的业务开发与存储合规的细节紧耦合痛点二:对于一些为了快速上线而一开始没有实现合规脱敏的系统,如何比较快速的使得已有业务满足合规要求的同时,尽量减少对原系统的改转载 2021-11-25 09:20:37 · 142 阅读 · 0 评论 -
Spring Boot 数据库连接池HikariCP
前言现在已经有很多公司在使用HikariCP了,HikariCP还成为了SpringBoot默认的连接池,伴随着SpringBoot和微服务,HikariCP 必将迎来广泛的普及。下面陈某带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐,文章目录如下:目录零、类图和流程图开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。获取连接时的类间交互:图1一、主流程1:获取连接流程HikariCP获取连接时转载 2021-11-24 09:48:25 · 1406 阅读 · 0 评论 -
ELK 处理 Spring Boot 日志
在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。ELK 简介ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。LogstashLogstash 主要用于转载 2021-11-24 09:30:06 · 433 阅读 · 0 评论 -
批处理框架 Spring Batch
spring batch简介spring batch是spring提供的一个数据处理框架。企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作。这些业务运营包括: 无需用户交互即可最有效地处理大量信息的自动化,复杂处理。这些操作通常包括基于时间的事件(例如月末计算,通知或通信)。 在非常大的数据集中重复处理复杂业务规则的定期应用(例如,保险利益确定或费率调整)。 集成从内部和外部系统接收的信息,这些信息通常需要以事务方式格式化,验证和处理到记录系统中。批处理用于每转载 2021-11-24 09:27:47 · 264 阅读 · 0 评论 -
@Autowired注解的实现
前言使用spring开发时,进行配置主要有两种方式,一是xml的方式,二是java config的方式。spring技术自身也在不断的发展和改变,从当前springboot的火热程度来看,java config的应用是越来越广泛了,在使用java config的过程当中,我们不可避免的会有各种各样的注解打交道,其中,我们使用最多的注解应该就是@Autowired注解了。这个注解的功能就是为我们注入一个定义好的bean。那么,这个注解除了我们常用的属性注入方式之外还有哪些使用方式呢?它在代码层面又转载 2021-11-23 09:28:20 · 392 阅读 · 0 评论 -
让Spring Boot 的配置 “动” 起来
前言对于微服务而言配置本地化是个很大的鸡肋,不可能每次需要改个配置都要重新把服务重新启动一遍,因此最终的解决方案都是将配置外部化,托管在一个平台上达到不用重启服务即可一次修改多处生效的目的。但是对于单体应用的Spring Boot项目而言,动态刷新显然是有点多余,反正就一个服务,改下重启不就行了?然而在某些特殊的场景下还是必须用到动态刷新的,如下: 添加数据源:对接某个第三方平台的时候,你不可能每次添加一个数据源都要重启下服务 固化的对接:大量的固定对接方式,只是其中的某个固定的转载 2021-11-23 09:27:01 · 186 阅读 · 0 评论 -
SpringBoot中的线程池
前言前两天做项目的时候,想提高一下插入表的性能优化,因为是两张表,先插旧的表,紧接着插新的表,一万多条数据就有点慢了后面就想到了线程池ThreadPoolExecutor,而用的是Spring Boot项目,可以用Spring提供的对ThreadPoolExecutor封装的线程池ThreadPoolTaskExecutor,直接使用注解启用使用步骤先创建一个线程池的配置,让Spring Boot加载,用来定义如何创建一个ThreadPoolTaskExecutor,要使用@Configur转载 2021-11-23 09:23:14 · 728 阅读 · 0 评论 -
SpringBoot 中实现跨域的5种方式
一、为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)二、什么是跨域当一个请求url的协议、域转载 2021-11-23 09:22:14 · 313 阅读 · 0 评论 -
Shiro + JWT + Spring Boot Restful
特性 完全使用了 Shiro 的注解配置,保持高度的灵活性。 放弃 Cookie ,Session ,使用JWT进行鉴权,完全实现无状态鉴权。 JWT 密钥支持过期时间。 对跨域提供支持。 准备工作在开始本教程之前,请保证已经熟悉以下几点。 Spring Boot 基本语法,至少要懂得Controller、RestController、Autowired等这些基本注释。其实看看官方的 Getting-Start 教程就差不多了。 JWT...转载 2021-11-23 09:20:54 · 244 阅读 · 0 评论 -
SpringBoot 自定义注解+拦截器实现
在实际生产项目中,经常需要对如身份证信息、手机号、真实姓名等的敏感数据进行加密数据库存储,但在业务代码中对敏感信息进行手动加解密则十分不优雅,甚至会存在错加密、漏加密、业务人员需要知道实际的加密规则等的情况。本文将介绍使用springboot+mybatis拦截器+自定义注解的形式对敏感数据进行存储前拦截加密的详细过程。一、什么是Mybatis Plugin在mybatis官方文档中,对于Mybatis plugin的的介绍是这样的:MyBatis 允许你在已映射语句执行过程中的某一点进行拦转载 2021-11-23 09:17:31 · 1842 阅读 · 0 评论 -
如何使用 Arthas 定位 Spring Boot 接口超时
背景 定位过程 分析代码 分析调用流程 Arthas分析问题 Tomcat embed Bug分析&解决 为什么每次请求会加载Jar包内的静态资源 为什么连续请求不会出现问题 为什么本地不会复现 如何解决 升级spring boot版本 ...转载 2021-11-22 10:04:58 · 191 阅读 · 0 评论 -
SpringBoot 接口幂等性的实现方案
spring-boot 接口幂等性转载 2021-11-22 09:48:13 · 132 阅读 · 0 评论 -
Spring Boot反爬虫,防止接口盗刷
spring boot 防止接口被刷转载 2021-11-19 09:35:55 · 533 阅读 · 0 评论 -
优雅结束spring boot项目
如何优雅结束一个spring boot项目转载 2021-11-19 09:32:50 · 2193 阅读 · 0 评论 -
使用 Arthas 定位 Spring Boot 接口超时
spring-boot Arthas 定位问题转载 2021-11-19 09:30:36 · 451 阅读 · 0 评论 -
SpringBoot 接口幂等性的实现方案
spring-boot 接口幂等性设计转载 2021-11-19 09:27:40 · 154 阅读 · 0 评论 -
SpringBoot 整合 MyCat 实现读写分离
mycat 读写分离转载 2021-11-19 09:25:21 · 332 阅读 · 0 评论 -
SpringBoot+JWT整合实现单点登录SSO
spring boot单点登录转载 2021-11-19 09:26:03 · 1396 阅读 · 1 评论 -
SpringBoot,来实现MySQL读写分离技术
spring boot mybatis转载 2021-11-18 09:29:08 · 188 阅读 · 0 评论 -
SpringBoot中使用注解来实现 Redis 分布式锁
redis锁转载 2021-11-18 09:27:42 · 296 阅读 · 0 评论 -
使用@AutoConfigureBefore调整配置顺序
目录 前言 如何自定义一个starter? 分享一个经典的误区 源码分析自动配置类如何排序? 准备自己的自动配置类 将自动配置类设置在spring.factories 如何指定自动配置类的执行顺序? 总结 前言日常工作中对于Spring Boot提供的一些启动器可能已经足够使用了,但是不可避免的需要自定义启动器,比如整合一个陌生的组件,也想要达到开箱即用的效果。在上一章节从底层源码介绍.转载 2021-11-18 09:22:09 · 446 阅读 · 0 评论 -
Spring Boot 自动配置源码解析
源码转载 2021-11-18 09:20:50 · 165 阅读 · 0 评论 -
二十三张图带你从源码分析Spring Boot 启动流程
spring boot转载 2021-11-17 09:20:29 · 1019 阅读 · 0 评论 -
Spring Boot 多环境配置
目录 前言 Spring Boot 自带的多环境配置 创建不同环境的配置文件 指定运行的环境 Maven 的多环境配置 创建多环境配置文件 定义激活的变量 pom 文件中定义 profiles 资源过滤 总结 总结 前言日常开发中至少有三个环境,分别是开发环境(dev),测试环境(test),生产环境(prod)。不同的环境的各种配置都不相同,比如数转载 2021-11-17 09:18:50 · 204 阅读 · 0 评论 -
Spring Boot 与 多数据源
目录 前言 写这篇文章的目的 什么是多数据源? 何时用到多数据源? 整合单一的数据源 整合Mybatis 多数据源如何整合? 什么是动态数据源? 数据源切换如何保证线程隔离? 如何构造一个动态数据源? 定义一个注解 如何与Mybatis整合? 演示 总结 前言大约在19年的这个时候,老同事公司在做医疗系统,需要和HIS系统对接一些转载 2021-11-17 09:16:05 · 214 阅读 · 0 评论 -
Spring Boot @Conditional 注解
目录 前言 Spring Boot 版本 @Conditional Condition接口 ConditionContext接口 如何自定义Condition? 条件判断在什么时候执行? 多个Condition的执行顺序 Spring Boot中常用的一些注解 总结 前言不知道大家在使用Spring Boot开发的日常中有没有用过@Conditionalxxx注解,比如@ConditionalOnM转载 2021-11-15 09:21:48 · 771 阅读 · 0 评论 -
spring boot 异常处理
目录 前言 Spring Boot 版本 全局统一异常处理的前世今生 Spring Boot的异常如何分类? 如何统一异常处理? 异常匹配的顺序是什么? 总结 前言软件开发过程中难免遇到各种的BUG,各种的异常,一直就是在解决异常的路上永不停歇,如果你的代码中再出现try(){...}catch(){...}finally{...}代码块,你还有心情看下去吗?自己不觉得恶心吗?冗余的代码往往回丧失写代码的动力,每天搬砖似的写代码,转载 2021-11-15 09:14:18 · 228 阅读 · 0 评论 -
Spring Boot如何扩展、接管Spring MVC?
目录 前言 Spring Boot 版本 如何扩展MVC? 如何自定义一个拦截器? 什么都不配置为什么依然能运行MVC相关的功能? 如何全面接管MVC?【不推荐】 为什么@EnableWebMvc一个注解就能够全面接管MVC? Spring Boot相关资料 总结 前言自从用了Spring Boot是否有一个感觉,以前MVC的配置都很少用到了,比如视图解析器,拦截器,过滤器等等,这也正是Spring Boot好处之转载 2021-11-15 09:11:59 · 308 阅读 · 0 评论 -
Spring Boot 配置过滤器
目录 前言 Spring Boot 版本 什么是过滤器? Filter的执行原理 如何自定义一个Filter? Spring Boot如何配置Filter? 配置类中使用@Bean注入【推荐使用】 使用@WebFilter 举个栗子 总结 前言上篇文章介绍了Spring Boot中如何配置拦截器,今天这篇文章就来讲讲类似于拦截器的一个组件:过滤器。其实在实际开发中过滤器真的接触的不多,但是转载 2021-11-12 09:30:34 · 530 阅读 · 0 评论 -
Spring Boot 拦截器配置
目录 前言 Spring Boot 版本 什么是拦截器? 如何自定义一个拦截器? 如何使其在Spring Boot中生效? 举个栗子 思路 根据什么判断这个接口已经请求了? 这个具体的信息存放在哪里? 如何实现? 总结 前言上篇文章讲了Spring Boot的WEB开发基础内容,相信读者朋友们已经有了初步的了解,知道如何写一个接口。今天这篇文章来介绍一下拦截器在Spr转载 2021-11-12 09:28:57 · 5056 阅读 · 0 评论 -
Spring Boot Web 初步开发
目录 前言 Spring Boot 版本 前提条件(必须注意) 添加依赖 第一个接口开发 如何自定义tomcat的端口? 如何自定义项目路径? JSON格式化 日期格式的设置 其他属性的配置 如何在配置类配置? 总结 前言今天是Spring Boot专栏的第五篇文章,相信大家看了前四篇文章对Spring Boot已经有了初步的了解,今天这篇文章就来介绍一下转载 2021-11-12 09:27:57 · 166 阅读 · 0 评论 -
Spring Boot 切换日志框架
目录 前言 Spring Boot 版本 什么是日志门面? 如何做到无感知切换? 如何切换? 引入依赖 指定配置文件 日志如何配置? 总结 前言首先要感谢一下读者朋友们的支持,你们每一个的赞都是对陈某最大的肯定,陈某也会一如既往的加油,奥利给!!!言归正传,上一篇文章写了Spring Boot的默认日志框架Logback的基本配置,有兴趣的可以看看:Spring Boot第三弹,一文带你搞转载 2021-11-12 09:25:57 · 1025 阅读 · 0 评论