![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot
文章平均质量分 94
程可爱
一入码场深似海,从此头发不复存
展开
-
SpringBoot全局异常处理-原理分析
在日常开发中,如何快速定位异常并处理异常,体现了一个研发人员解决问题的能力,需要不断在业务发展中精进自己的业务水平,提升对原理的理解。快速解决的前提是快速定位问题,合理的异常处理能够帮助我们快速抛出问题。在SpringBoot中,全局异常处理能够有效降低异常代码数量,提供统一的异常处理模式,帮助我们从代码层面优雅地抛出异常。本文将演示SpringBoot中全局异常使用,并进行原理分析。原创 2024-04-30 16:27:24 · 852 阅读 · 0 评论 -
SpringCloud源码探析(十二)-基于SpringBoot开发自定义中间件
中间件是一种介于操作系统和应用软件之间,为应用软件提供服务功能的软件,按功能划分有消息中间件(Kafka、RocketMQ)、通信中间件(RPC通信中间件,dubbo等),应用服务器等。中间件屏蔽了底层操作系统的复杂性,让开放工程师可以把更多的专注力放在业务系统上,能够有效提高开发人员效率。本文主要分析利用springboot开发自定义日志中间件,通过此中间件能够打印请求入参及返回结果,帮助大家更好地理解利用springboot如何开发中间件。原创 2023-12-19 14:29:42 · 1500 阅读 · 0 评论 -
SpringBoot整合Dubbo和Nacos
dubbo是一个高性能、轻量级的开源分布式服务框架,早期由阿里巴巴进行开源。它提供了服务注册、发现、调用和负载均衡等分布式服务治理功能,为分布式开发提供了极大便利。dubbo核心概念包括:Provider(消费提供者)、Consumer(服务消费者)、Registry(注册中心)、Monitor(监控中心)等,注册中心是dubbo服务治理的核心组件,dubbo依赖注册中心的协调实现服务(地址)发现,自动化的服务发现是微服务实现动态扩缩容、负载均衡、流量治理的基础。原创 2023-11-14 10:08:26 · 1745 阅读 · 1 评论 -
springBoot整合讯飞星火认知大模型
讯飞星火大模型是科大讯飞最近开放的拥有跨领域的知识和语言理解能力的大模型,能够完成问答对话和文学创作等。由于讯飞星火大模型最近可以免费试用,开发者都可以免费申请一个QPS不超过2的账号,用来实现对平台能力的验证。本文将利用Springboot框架对星火大模型进行整合,使其能够提供简单的问答能力。原创 2023-10-20 12:40:19 · 5633 阅读 · 23 评论 -
SpringCloud源码探析(十)-Web消息推送
消息推送的方式主要分为两种:web消息推送和移动端消息推送。它将所要发送的信息,发送至用户当前访问的网页或者移动设备。本文主要分析在web端进行消息推送的几种方式,实现用户在web端接收推送消息。原创 2023-10-09 18:04:28 · 1033 阅读 · 0 评论 -
SpringCloud源码探析(七)-整合Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎。它是基于JAVA语言开发,并且是基于RESTful web接口进行查询和结果返回,是一款非常流行的企业级搜索引擎。Elasticsearch的核心功能包括存储数据和快速搜索、分析数据。本文将从elastic的基本属性和其使用方式进行分析,帮助大家快速理解。原创 2023-06-29 12:23:01 · 825 阅读 · 0 评论 -
SpringCloud从入门到放弃之链路追踪一(Sleuth+Zipkin)
1.概述”链路追踪“一词首次在google的Dapper论文中出现,该论文介绍了google自研的分布式链路追踪的实现原理,还介绍了他们是怎么低成本实现对应用透明的。Dapper论文一开始介绍的只是一个独立的链路调用系统,后来逐步演化成了监控平台,并且基于监控平台衍生出了许多工具,比如实时预警、过载保护等。单纯的理解链路追踪,就是记录一次请求开始到结束,期间所调用的系统及耗时都能被完整的记录下来。 现在所说的链路追踪系统,都是具有一套相对比较完整的功能,不仅具备记录功能,还具备一大堆衍生功能,让人能够更清原创 2022-04-11 21:03:41 · 3433 阅读 · 0 评论 -
SpringBoot从入门到放弃之日志配置
1.概述2.sl4j使用2.1 SpringBoot默认日志系统2.2 其它日志框架转换sl4j2.3 SpringBoot中日志框架切换3.小结4.参考文献5.附录原创 2022-03-27 23:35:42 · 1249 阅读 · 0 评论 -
SSO单点登录-基于cookie的单点登录
1.概述单点登录(Single-Sign-On),简称SSO,它的解释为:在多个应用系统中,只要登陆一次,便可以访问其它相互信任的系统。早期系统由于只有一个服务,因此只需要登录一次,就可以访问系统的其它资源。伴随着业务的发展和用户数量的增加,单系统局限性越来越突出(无法支撑大规模用户、用户数量过多系统卡顿等)。为了增强系统的并发能力和解耦合,进行了系统业务的拆分,系统业务拆分后,为了保护系统之间数据安全性,用户需要登录认证才能进行资源访问。若资源分散在不同的服务上,每访问一次都需要重新登录,这会极大地降低原创 2022-03-19 22:10:06 · 2601 阅读 · 0 评论 -
Springboot从入门到放弃之邮件发送
1.概述日常开发中,消息通知是比较常见的一种功能。比如在你购买完火车票之后,会给你发送一条短信;再比如某些网站你登陆后,会给你发一封确认邮件,等等等等。还有一些特殊场景,需要告警信息推送功能,来及时发现并解决一些问题。本文将基于springboot环境,实现邮件发送功能,并基于此功能,实现一个有意思的案例,加强应用性。2.发送邮件功能实现3.一个让女朋友爱到不能自拔的案例4.小结...原创 2021-05-27 20:25:59 · 1278 阅读 · 3 评论 -
Spring从入门到放弃之基于AOP的日志统计方案
1.概述在日常开发中,数据安全一般也是企业关注的重点问题,因此对于数据的操作记录也是关注的重点对象。采集操作日志也成为企业生产中必不可少的一环,如何在不影响业务且不需要新增大量记录日志的代码就能实现日志记录的功能,一直是企业所探索的方案。本文将详细分析利用Spring AOP特性,在不影响业务且不需要新增多余代码的前提下,实现该功能。同时基于Servlet拦截器的功能,实现同样的功能。最后分别对比方案的优劣,并提供有效代码供大家学习。2.基于AOP日志统计方案3.小结4.参考文献5.源码地址ht原创 2021-05-01 23:27:10 · 270 阅读 · 3 评论 -
SpringBoot从入门到放弃之注解@Async
1.概述在使用@Async注解之前,首先需要了解同步调用和异步调用的区别。同步调用指的是一个方法内部可能有几个不同的方法,按照从上到下的顺序依次执行。如下图中代码所示,方法init中分别有method1()、method2()、method3()三个方法,这三个方法按照顺序依次执行。异步调用指的是init()方法中的method1()、method2()、method3()执行顺序无明确先后关系,也就是说加上@Async注解后,该方法就变为异步调用。该注解应用的场景主要为:(1)某一方法不需要立即执行,也原创 2021-03-12 17:27:13 · 666 阅读 · 0 评论 -
Spring中RestTemplate详解
1.概述RestTemplate是spring封装的restful请求的模板,它内部封装了常用的GET、POST、DELETE、PUT等请求方式,帮助开发者更快构建HTTP请求。传统的请求方式采用Apache的HttpClient,此种方式编写http请求时需要编写大量代码,比较繁琐。本文将从代码量、以及最大访问量对比HttpClient与Restemplate请求封装的工具类。2.基于HttpClient封装的工具类2.1 GET请求2.2 POST请求2.3 DELETE请求2.4 PUT请原创 2020-11-23 20:50:32 · 9039 阅读 · 0 评论 -
如何在Jetty中禁用Trace方法
1.概述在最近一次的服务器漏洞检测中,我们线上的某个服务检测出漏洞:远端www服务支持TRACE请求。由于服务是基于springboot开发,容器选择的是内置的Jetty,所以本文针对的是Jetty容器如何禁止接收HTTP TRACE请求。2.解决方案2.1 什么是TraceTrace请求是HTTP请求的一种,可以用来回显服务器收到的请求,主要用于测试或诊断。个人之前基本没关注过这个请求方法,只知道它是HTTP请求的一种。TRACE方法本用于客户端测试到服务器的网络通路,通过允许客户端知道请求链另原创 2020-11-18 17:12:23 · 4210 阅读 · 1 评论 -
基于zipkin链路追踪中的问题排查(Parameter 2 of method reporter in org.springframework.cloud.sleuth.zipkin2.Zipki)
1.概述最近在服务中添加链路追踪功能时,遇到了一个了一个kafka报错的问题,经过一番排查,最终确认了问题根源,最终予以解决。下面将阐述这一问题的排查过程。2.问题排查错误信息如下图所示:Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.2020-10-20 17:00:52.090 |-ERROR [mai原创 2020-10-24 23:50:54 · 2310 阅读 · 1 评论 -
Mybatis从入门到放弃之一对多设计
1.概述在数据库表设计中,大多数情况下都会有一对多关系,例如:一个教室里会有多个学生,教室与学生的关系就是一对多;一个老师会教多个学生,则老师和学生的关系就是一对多;一个猫妈妈可能会生多个猫宝宝,则猫妈妈和猫宝宝就是一对多的关系。本文将针对mybatis中一对多的情形,首先分析一对多的设计原则,再结合具体的学生与老师案例分析,并结合springboot环境,进行案例的详细讲解;最后,进行总结结论。2.Mybatis一对多案例2.1 一对多设计原则在数据库表设计过程中,面对一对多这种情况,通常将用单的原创 2020-08-25 19:51:19 · 186 阅读 · 0 评论 -
Kafka从入门到放弃之Springboot中生产者与消费者案例
1.概要继上文讲解了Kafka在CentOS环境中的安装和Kafka在CentsOS环境下单机集群的搭建,本文将基于Springboot环境,搭建生产者与消费者案例,利用KafkaProducer向kafka内发送消息,利用KafkaConsumer来获取消息并进行打印,直观展示消息的生产与消费。2.生产者部分代码1.生产者配置类import org.apache.kafka.clients.producer.ProducerConfig;import org.springframework.be原创 2020-08-08 09:05:56 · 403 阅读 · 0 评论 -
将swagger-ui中的接口导入postman
1.简介swagger是一款深受广大后端开发人员喜爱的工具,它能够帮助使用者减少文档的编写,且能够以可视化界面的形式呈现接口,方便测试。使用swagger唯一的缺陷在于需要用注解对每个接口进行解释说明,无形中也增加一些代码量。本文将详细介绍将swagger声明的接口快速导入postMan,快速进行测试。2.swagger配置篇(1)导入依赖jar包首先在所要使用swagger的工程中导入相关依赖,主要的依赖有:<dependency><groupId>io.springf原创 2020-06-10 19:29:59 · 1950 阅读 · 0 评论 -
SpringBoot从入门到放弃-跨域问题解决方案
要解决浏览器的跨域问题,则需要了解什么是跨域。在了解跨域概念的基础上,才能从根本寻找解决方案,本文将从跨域的原因以及在springboot中如何解决跨域进行展开。1.什么是跨域由于浏览器具有同源策略,同源策略是一个重要的安全策略,它用于限制一个源的文档或者其加载的脚本如何与另一个源的资源进行交互。它能够帮助阻隔恶意的文档,减少被攻击的可能。...原创 2020-05-19 19:24:37 · 1337 阅读 · 0 评论 -
docker打包部署springboot项目
本文主要讲述的是在centos7环境下,运行springboot项目。首先编写了一个springboot项目,我这里写了一个连接数据库的小demo。项目完成之后,打成jar包,利用xshell上传到centos里,我这里直接上传到根目录下,然后编写dockerfile,利用dockerfile来构建docker镜像,最后运行镜像。具体实施步骤如下:1.编写一个springboot项目可以根据喜好编写一个简单的springboot项目,我这边主要测试数据库的连接,所以编写了一个与数据库交互的小项目,项目地原创 2020-05-11 08:58:24 · 814 阅读 · 0 评论