springBoot
文章平均质量分 78
spring_root
学海无涯
展开
-
Nacos服务心跳和健康检查源码介绍
接下来我们看标记不健康时候的代码,这部分代码在客户端注册的时候也出现相同的代码,只是我们略过了,这部分也是观察者模式的重要体现,从这里我们可以学习到的东西在于结合Spring的事件机制,轻松实现观察者模式,当然这个里面也有部分我感觉写的不太好,哈哈,大佬们看到勿喷。重点部分就是看BeatTask,BeatTask继承Runnable,run方法就是我们的重点,该方法调用了NamingProxy的sendBeat方法,服务端请求地址为/instance/beat的方法。原创 2023-09-11 20:30:00 · 980 阅读 · 0 评论 -
nacos上的注册过的服务实例掉线分析
最近生产上的xxl_job框架的一个执行器(nacos客户端)因为分配内存不大,导致频繁与nacos服务端的连接断开,而断开之后虽然客户端服务没有宕掉,但是就是无法重新注册到nacos的服务端上去。原创 2023-09-11 20:45:00 · 1475 阅读 · 0 评论 -
SpringBoot 之实现 PDF 添加水印的方案
PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。原创 2023-07-05 22:15:00 · 821 阅读 · 0 评论 -
java 8 stream流之大数据篇
如果你会任意一门语言的stream流,没道理不会大数据开发。俗话说男追女隔座山,女追男隔层纱。如果说零基础学大数据,感觉前面是一座山,那么只要你会java或者任意一门语言的stream流,那大数据就只隔了一层纱。本文以java stream流计算为例,讲解一些基础的spark操作。另一个流行的大数据框架flink同理。原创 2023-07-05 09:33:38 · 273 阅读 · 0 评论 -
spring boot:集成支付宝(沙箱环境)(spring boot 2.4.0 / wap/h5方式 )
支付宝小程序支付原创 2022-12-28 10:29:38 · 961 阅读 · 2 评论 -
Spring 依赖注入方式
Spring 正如其名字,给开发者带来了春天,Spring 是为解决企业级应用开发的复杂性而设计的一款框架,其设计理念就是:简化开发。Spring 框架中最核心思想就是: IOC(控制反转):即转移创建对象的控制权,将创建对象的控制权从开发者转移到了 Spring 框架。 AOP(切面编程):将公共行为(如记录日志,权限校验等)封装到可重用的模块中,而使原本的模块内只需关注自身的个性化行为。 本文,将主要介绍 Spring 中 IOC 的依赖注入,控制反转 IOC就 IO..原创 2022-03-22 23:12:42 · 97 阅读 · 0 评论 -
如何提高项目的吞吐量
一、异步执行实现方式二种: 使用异步注解@aysnc、启动类:添加@EnableAsync注解 JDK 8本身有一个非常好用的Future类——CompletableFuture @AllArgsConstructorpublicclassAskThreadimplementsRunnable{privateCompletableFuture<Integer>re=null;publicvoidrun(){...原创 2022-03-22 19:22:12 · 353 阅读 · 0 评论 -
巧用Stream优化老代码
Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读放大招,流如何简化代码如果有一个需求,需要对数据库查询到的菜肴进行一个处理: 筛选出卡路里小于400的菜肴 对筛选出的菜肴进行一个排序 获取排序后菜肴的名字 菜肴:Dish.javapublic class Dish { private String name; private boolean vegetar原创 2022-01-05 17:23:41 · 100 阅读 · 0 评论 -
ActiveMQ在分布式项目中的实际应用
具体需求:后台添加商品后,需要执行两个操作: 同步索引库(商品搜索使用了Solr实现) 生成静态页面(使用freemarker) 实现构思:使用消息队列。MQ作为消息中间件,传递的消息内容为新增商品的ID。准备工作:在需要的地方添加相应的依赖(基础依赖就不再说了)商品服务需要发送商品添加消息,所以需要添加三个依赖,分别是整合Spring需要的两个Jar和ActiveMQ的Jar:<dependency><groupId>org.s.原创 2021-08-01 11:29:39 · 95 阅读 · 0 评论 -
Spring Boot 实现通用 Auth 认证的 4 种方式!
文章中介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP、拦截器、参数解析器和过滤器,并提供了对应的实例代码,最后简单总结了下他们的执行顺序。前言最近一直被无尽的业务需求淹没,没时间喘息,终于接到一个能让我突破代码舒适区的活儿,解决它的过程非常曲折,一度让我怀疑人生,不过收获也很大,代码方面不明显,但感觉自己抹掉了 java、Tomcat、Spring 一直挡在我眼前的一层纱。对它们的理解上了一个新的层次。好久没输出了,于是挑一个方面总结一下,希望在梳理过程中再了解一些其原创 2021-07-29 09:53:08 · 471 阅读 · 0 评论 -
Spring Boot 实现多图片上传并回显
这两天公司有需求让做一个商户注册的后台功能,其中需要商户上传多张图片并回显。由于之前没做过这方面的东西,此篇文章用以记录一些知识点,以便后续查看。上传Controller的代码非常简单,由于用了SpringMVC框架,所以直接用MultipartFile来接即可。由于是多图片上传所以用数组来接。**此处应该注意参数名应该和``中的name**值相对应:@RequestMapping("/pic")@ResponseBodypublicResponseEntity<String>.原创 2021-07-29 08:58:10 · 768 阅读 · 0 评论 -
结合SpringBoot使用的可视化监控系统
当面对一个复杂的系统时,我们往往需要监控工具来帮助我们解决一些性能问题。比如之前我们使用SpringBoot Admin来监控应用,从而获取到SpringBoot Actuator暴露的指标信息。今天给大家介绍一个功能强大的监控工具Grafana,只要需要用到监控的地方,用它做可视化就对了!Grafana简介Grafana是一款开源的数据可视化和分析工具,不管你的指标信息存储在哪里,你都可以用它来可视化这些数据。同时它还具有告警功能,当指标超出指定范围时会提醒你。Prometheus简介.原创 2021-07-29 03:23:24 · 795 阅读 · 0 评论 -
SpringBoot实现动态增删启停定时任务
在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。查看spring-context这个jar包中org.springframework.schedulin原创 2021-07-29 01:38:33 · 631 阅读 · 2 评论 -
ELK 处理 Spring Boot 日志
在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。ELK 简介ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。LogstashLogstash 主要用于原创 2021-07-29 01:08:43 · 188 阅读 · 0 评论 -
SpringBoot接入支付宝
支付宝推出了新的转账接口alipay.fund.trans.uni.transfer(升级后安全性更高,功能更加强大) ,老转账接口alipay.fund.trans.toaccount.transfer将不再维护,新老接口的一个区别就是新接口采用的证书验签方式。使用新接口要将sdk版本升级到最新版本,博主升级时最新版本是4.10.97。接下来看集成步骤。1.将支付宝开放平台里下载的3个证书放在resources下面2.写支付宝支付的配置文件alipay.propertiesa原创 2021-07-22 15:04:46 · 869 阅读 · 0 评论 -
Spring Boot 项目打包 + Shell 脚本部署实践
本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_publish.sh启动程序 profiles指定不同环境的配置通常一套程序分为了很多个部署环境:开发,测试,uat,线上 等,我们要想对这些环境区分配置文件,可原创 2021-07-20 18:57:32 · 137 阅读 · 0 评论 -
SpringBoot 的@Value注解
一、前言在日常开发中,经常会遇到需要在配置文件中,存储List或是Map这种类型的数据。Spring 原生是支持这种数据类型的,以配置List类型为例,对于.yml文件配置如下:test:list:-aaa-bbb-ccc对于.properties文件配置如下所示:test.list[0]=aaatest.list[1]=bbbtest.list[2]=ccc当我们想要在程序中使用时候,想当然的使用@Valu...原创 2021-07-20 17:03:54 · 284 阅读 · 0 评论 -
基于SpringBoot开发一个Restful服务,实现增删改查功能
控制层@RestControllerpublic class HelloWorldController { @RequestMapping("/hello") public String index() { return "Hello World"; } }感觉使用SpringBoot开发程序是不是非常的简单呢!用Spring...原创 2021-07-14 15:03:19 · 81 阅读 · 0 评论 -
从零搭建 Spring Cloud 服务
1.什么是SpringCloud?SpringCloud官网:https://spring.io/projects/spring-cloud(个人建议是用谷歌浏览器访问官网打开中文翻译粗略把官网读一遍)把 Spring 全家桶相关的文章整理成了 PDF,关注微信公众号 Java后端,回复 666 下载这个技术栈手册。个人理解:以前的服务器就好像,一个会语数外全能的老师,为学生提供服务,这个老师生病了,那全校停课。现在微服务流行后,学校有了数学教研组,语文教研组,外语教研组,每个教研组有一群老原创 2021-07-14 14:56:56 · 87 阅读 · 0 评论 -
logback.xml常用配置详解
Logback最常用就是在/src/main/resource/文件夹下的logback.xml文件中。,从而对日志进行配置输出。logback主要包含三个组成部分:Loggers(日志记录器)、Appenders(输出目的在)、Layouts(日志输出格式)下面就是一个常用的日志配置模版,下面就从跟节点来解析每个节点<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="true.原创 2021-06-21 14:16:02 · 28893 阅读 · 0 评论 -
JAVA支付宝
支付宝推出了新的转账接口alipay.fund.trans.uni.transfer(升级后安全性更高,功能更加强大) ,老转账接口alipay.fund.trans.toaccount.transfer将不再维护,新老接口的一个区别就是新接口采用的证书验签方式。使用新接口要将sdk版本升级到最新版本,博主升级时最新版本是4.10.97。接下来看集成步骤。1.将支付宝开放平台里下载的3个证书放在resources下面2.写支付宝支付的配置文件alipay.propertiesa原创 2021-04-12 10:58:51 · 524 阅读 · 0 评论 -
Spring Boot 中引入 MyBatisPlus 的常规流程
一 前言:mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。mybatis-plus简介。Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特原创 2021-01-25 17:03:01 · 223 阅读 · 1 评论 -
基于 Springboot 2.0 + LayUI 开发的物流管理系统
目录项目需求说明项目技术选型架构选型功能模块介绍接货管理配车管理中转管理结算管理客户服务监控分析成本核算应用管理系统管理项目需求说明首先,发货客户与快递公司签订货运合同(货运单),把货物交给快递公司来托运,并按照货运合同的付款方式付款。快递公司根据货物运输线路,为货物配车,找到合适的车辆后,与司机签订运输合同(回执单),并按照运输合同的运费结算方式结算。司机对货物检查无误后,装车,然后发车,发车后,货物的任何损失由司机承担。司机到达目的地后,需要经原创 2020-12-16 16:00:54 · 1839 阅读 · 3 评论 -
SpringBoot☞切面AOP实现权限校验:实例演示与注解全解
目录 理解AOP 什么是AOP AOP体系与概念 AOP实例 第一个实例 第二个实例 AOP相关注解 @Pointcut @Around @Before @After @AfterReturning @AfterThrowing 1 理解AOP1.1 什么是AOPAOP(Aspect Oriented Progr原创 2020-12-16 15:10:10 · 125 阅读 · 0 评论 -
Spring Cloud 每个组件的原理详解
我们先认识一下SpringCloud的各个组件,然后知其所以然。关注微信公众号 Java后端,后台输入命令 666 下载技术手册。原理讲解前,先看一个最经典的业务场景,如开发一个电商网站,要实现支付订单的功能,流程如下:1、创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”2、扣减相应的商品库存3、通知仓储中心,进行发货4、给用户的这次购物增加相应的积分如上,微服务的应用场景和核心竞争力:降低耦合:每一个微服务专注于单一功能,并通过定义良好的原创 2020-12-10 16:20:16 · 480 阅读 · 0 评论 -
从零搭建 Spring Cloud 服务
1.什么是SpringCloud?SpringCloud官网:https://spring.io/projects/spring-cloud(个人建议是用谷歌浏览器访问官网打开中文翻译粗略把官网读一遍)把 Spring 全家桶相关的文章整理成了 PDF,关注微信公众号 Java后端,回复 666 下载这个技术栈手册。个人理解:以前的服务器就好像,一个会语数外全能的老师,为学生提供服务,这个老师生病了,那全校停课。现在微服务流行后,学校有了数学教研组,语文教研组,外语教研组,每个教研组有一群老原创 2020-11-27 17:09:26 · 98 阅读 · 0 评论 -
Spring Boot 实现定时任务的动态增删启停!
添加执行定时任务的线程池配置类 添加定时任务示例类 定时任务数据库表设计 添加定时任务实体类 新增定时任务 在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下..原创 2020-08-26 11:03:46 · 142 阅读 · 1 评论 -
Spring Boot自定义Annotation实现接口自动幂
在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段: 数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token原创 2020-07-27 16:58:30 · 95 阅读 · 0 评论 -
spring boot实现动态增删启停定时任务
在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。...原创 2020-03-11 20:58:17 · 763 阅读 · 0 评论 -
Spring Boot 最最最常用的注解梳理
一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuration等同于spring的XML配置文件;使用J...原创 2020-03-04 17:23:24 · 176 阅读 · 0 评论 -
基于Springboot+Dubbo+Nacos 注解方式实现微服务调用
1项目结构|-- spring-boot-dubbo-demo (父级工程) |-- spring-boot-dubbo-base (基础工程) |-- spring-boot-dubbo-consumer (消费者) |-- spring-boot-dubbo-provider (生产者)SpringBoot版本:2.2.0Dubbo版本:2.7.0N...原创 2020-02-25 11:36:45 · 841 阅读 · 0 评论 -
Spring Boot + Vue 如此强大?竟然可以开发基于 C/S 架构的应用
前言虽然 B/S 是目前开发的主流,但是 C/S 仍然有很大的市场需求。受限于浏览器的沙盒限制,网页应用无法满足某些场景下的使用需求,而桌面应用可以读写本地文件、调用更多系统资源,再加上 Web 开发的低成本、高效率的优势,这种跨平台方式越来越受到开发者的喜爱。Electron 是一个基于 Chromium 和 Node.js,使用 HTML、CSS 和 JavaScript 来构建跨平台...原创 2020-02-25 11:31:10 · 539 阅读 · 0 评论 -
SpringBoot缓存应用实践
缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。一、通用缓存接口1、缓存基础算法FIFO(First In First Out),先进先出,和OS里的FIFO思路相同,如果一个数据最先进入缓存中,当缓存满的时候,应当把最先进入缓存的数据给移除掉。 LFU(L...原创 2020-02-25 11:20:43 · 271 阅读 · 0 评论 -
Spring Boot RabbitMQ - 交换器
1fanout exchange发送到该交换器的所有消息,会被路由到其绑定的所有队列。不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。如图所示,所有发送到fanout exchange的消息都会路由到QUEUE-1和Q...原创 2020-02-25 11:15:24 · 424 阅读 · 0 评论 -
SpringBoot中异步请求和异步调用
一、SpringBoot中异步请求的使用1、异步请求与同步请求特点:可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。一句话:增加了服务器对客户端请求的吞吐量(实际生产上我们用的比较少,如果并发请求量很大的情况下,我们会通过nginx把请求负载到集群服务的各个节点上...原创 2020-02-25 11:11:06 · 210 阅读 · 0 评论 -
Spring Boot 五种热部署方式
1、模板热部署 2、使用调试模式Debug实现热部署 3、spring-boot-devtools 4、Spring Loaded 5、JRebel1、模板热部署在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下:Thymele...原创 2020-02-17 13:11:42 · 261 阅读 · 0 评论 -
Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序
1. Spring Boot Admin 是什么Spring Boot Admin 是由codecentric组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 Spring Boot 项目。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的 HTTP 接口,然后注册到 Spring Boot Admin 服务端,这一...转载 2020-02-17 12:39:31 · 1107 阅读 · 0 评论 -
Springboot 系列(十六)你真的了解 Swagger 文档吗?
前言目前来说,在 Java 领域使用Springboot构建微服务是比较流行的,在构建微服务时,我们大多数会选择暴漏一个REST API以供调用。又或者公司采用前后端分离的开发模式,让前端和后端的工作由完全不同的工程师进行开发完成。不管是微服务还是这种前后端分离开发,维持一份完整的及时更新的REST API文档,会极大的提高我们的工作效率。而传统的文档更新方式(如手动编写),很难保...转载 2020-02-03 09:53:48 · 271 阅读 · 0 评论 -
Springboot 系列(十五)如何编写自己的 Springboot starter
1. 前言Springboot中的自动配置确实方便,减少了我们开发上的复杂性,那么自动配置原理是什么呢?之前我也写过了一篇文章进行了分析。Springboot 系列(三)Spring Boot 自动配置。由于自动配置用到了配置文件的绑定,如果你还不知道常见的配置文件的用法,可以参考这篇文章。Springboot 系列(二)Spring Boot 配置文件。在这一次,通过学习Spri...转载 2020-01-22 15:12:11 · 1500 阅读 · 1 评论 -
Springboot 系列(十四)迅速启用 HTTPS 加密你的网站
由于微信不允许外部链接,你需要点击页尾左下角的“阅读原文”,才能访问文中的链接。1. 获取 HTTPS 证书正常情况下 HTTPS 证书需要从证书授权中心获得,这样获得的证书才具有公信力,也会被各种浏览器客户端所认可。常见的证书品牌如 Symantec,GeoTrustm,TrustAsia,Symantec 等。不过在 Springboot 的 HTTPS 实验中就没有必要去申请了,我们...转载 2020-01-22 15:04:42 · 243 阅读 · 0 评论