nihui123
现在在修炼中
展开
-
通过Spring Boot 实现页面配置生成动态接口?
设计页面配置:首先,你需要设计一个用户界面(UI),允许用户通过此界面来配置接口的各种参数,例如HTTP方法(GET、POST等)、URL路径、请求参数、响应数据格式等。保存配置信息:当用户通过页面配置接口时,这些信息需要被持久化存储起来。你可以选择使用数据库(如MySQL、MongoDB等)或配置文件(如YAML、Properties文件)来保存这些配置。读取配置并动态生成接口:你的Spring Boot应用程序需要能够读取这些配置,并根据这些配置动态地创建或修改接口。原创 2024-03-08 16:44:52 · 1559 阅读 · 0 评论 -
如何在Spring Boot中使用Redis连接池?
如果你需要更复杂的连接池配置,你可以创建一个配置类来自定义LettuceConnectionFactory或JedisConnectionFactory。在这个配置类中,你可以设置连接池的各种参数。原创 2024-03-07 15:45:07 · 835 阅读 · 0 评论 -
Spring Boot 整合 Redis 实现排行榜功能
在实际应用中,你可能需要添加异常处理逻辑,以处理Redis连接失败、操作异常等情况。对于大型排行榜或高并发场景,你可能需要考虑分页查询、使用Redis的管道(pipelining)功能来提高性能,或者考虑使用Redis的集群模式来扩展处理能力。以上步骤提供了一个基本的框架,你可以根据自己的具体需求进行扩展和优化。注意,Redis操作通常是原子性的,因此你可以放心地在高并发的环境中使用它来维护排行榜。原创 2024-03-07 15:16:19 · 980 阅读 · 0 评论 -
Spring Boot 整合 Zxing 创建自定义二维码功能实现
废话不多说,直接上代码。原创 2022-10-20 10:11:24 · 911 阅读 · 0 评论 -
如何使用OpenFeign实现对于第三方接口的调用
导语 在开发中,我们经常会遇到一些对于第三方接口的调用,在加上现在很多的服务都是通过微服务的方式实现的,很多的服务都是通过注册中心进行代理,这个时候OpenFeign就显得尤为重要了,但是在开发中我们也会遇到只提供第三方接口的统一封装而不进行注册中心调用的场景。下面我们就来看看如何实现OpenFeign实现第三方接口的统一封装的。引入POM依赖 依赖的引入非常简单的只需要搭建一个Spring Boot的项目,并且找到合适的OpenFeign的版本进行POM依赖的引入即可。<?xml v.原创 2022-04-19 09:03:27 · 4310 阅读 · 2 评论 -
微信小程序服务端调用--小程序码 wxacode.getUnlimited 接口调用,实现微信扫码直接跳转小程序页面
调用wxacode.getUnlimited 获取小程序码适用的场景是需要很多的小程序码的业务场景。通过这个接口生成的小程序码永久有效,数量暂时没有限制。 废话不多说直接上代码。 在使用的时候记得将APPID与秘钥换成自己的APPID与秘钥。这里由于TOKEN的时效性,所以简单的使用了一个本地文件的方式做了一个缓存。是一个比较简单的操作,所以不需要用到缓存中间件等复杂操作,当然可以使用其他的例如HashMap将TOKEN放入到内存中进行缓存。为了节省内存空间,这里将TOKEN放入到外部文件中进行了简原创 2022-06-14 11:11:45 · 3144 阅读 · 0 评论 -
实战系列-如何让Spring Boot 接口直接支持Https?
导语 前段时间再生产环境上遇到这样一个问题,小程序接口认证只能通过HTTPS的请求来完成,这就难坏了我,百度了很多的例子,都没有很好的实现HTTPS协议的支持,都是讲什么原理。我就在想我实现都实现不了,我还管什么原理。所以我就自己搞了一套。介绍 首先我们要通过HTTPS协议进行访问,那么我们就必须得有相应的证书,在这里,获取证书的方式有很多种,证书也有很多类型。基于Nginx 、Tomcat、Apache 等等的。或者可自己通过Java的方式来生成证书。这里也就不做过多的介绍了。博主这里使用的.原创 2022-05-27 08:46:35 · 1216 阅读 · 0 评论 -
实战系列-Nacos作为配置中心的使用
为什么需要配置中心? 在没有配置中心之前,传统的应用配置有如下的一些痛点1、采用本地静态配置,无法保证实时配置,实时生效;2、容易引发重大事故,例如发布的时候配置文件内容没有修改准确。3、配置乱改,格式不准确,导致项目无法正常启动4、缺乏安全审查机制,对于版本控制,权限控制等内容无法进行追溯。 配置中心存在的意义是什么?1、实现统一配置、标准化,格式化。2、配置的实时性,当配置发生变化的时候可以实时影响线上感知,无须重启服务。3、通过版本控制、权限控制,可以追溯相关的问题。配原创 2022-05-17 14:22:46 · 1114 阅读 · 0 评论 -
实战系列--Windows下搭建Nacos环境
快速开始首先需要下载最新的稳定版本nacos-server-2.0.3。环境准备64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。演示在Windows下的部署。64 bit JDK 1.8+;Maven 3.2.x+;解压压缩包bin目录conf目录 会发现在conf目录下有有关配置文件的内容和一些sql的文件。在启动项目之前,我们先要将这些sql文件运行到我们自己的数据库中。这里笔者使用的是Navicat工具进行导原创 2022-05-17 11:26:51 · 1054 阅读 · 0 评论 -
如何使用Java调用Post请求的x-www-form-urlencoded类型的键值对
导语 在项目中遇到一个比较棘手的问题,第三方系统是使用C#编写,提供的接口文档是通过x-www-form-urlencoded格式的键值对进行调用的,这让博主很头疼。第一次接触到使用x-www-form-urlencoded格式的请求数据,之前的时候都是使用JSON格式的数据居多,所以编写对应的请求工具类也比较方便。下面就来看一下博主是如何实现的。文章目录application/x-www-form-urlencodedx-www-form-urlencoded 与json的区别如何实现这种数据格.原创 2021-11-05 08:49:23 · 7271 阅读 · 0 评论 -
实战系列-分布式缓存
导语 互联网三高-高可用、高扩展、高性能,这样的一个软件结构,在真实的场景中如何落地实现。如何把合适的技术放到合适的地方,才能打造出这样的架构。不要让语言本身成为限制发展的瓶颈。文章目录高并发下的分布式缓存为什么要使用缓存Redis集群常见的两个模式主从副本模式切面模式集群如何能让数据能均匀的分布在这三台服务器上?总结一个优雅的切片规则(一致性Hash算法)一致性Hash算法是有问题的?缓存穿透布隆算法布隆算法的使用缓存雪崩高并发下的分布式缓存 这个话题在面试的时候很大可能会被问道,在缓存的.原创 2021-11-03 00:17:02 · 1051 阅读 · 0 评论 -
Spring Boot 全局异常机制
导语 在项目开发中遇到一个问题,就是通过校验规则判断的内容抛出的异常,并没有被Spring Boot的全局异常捕获机制锁处理。这里提供了如下的解决方案校验规则引入 在项目的POM文件中引入如下的依赖项目 <!--校验规则--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>.原创 2021-08-19 15:37:13 · 736 阅读 · 0 评论 -
Spring Boot整合批量文件下载功能
导语 在测试功能中,出现了再Spring Boot中打包压缩文件的需求,下面来实现一个这个操作 /** * 批量下载文件 * * @param request * @param response */ @GetMapping("/qcodeExcept") public void qcodeExcept(HttpServletRequest request, HttpServletResponse response) { .原创 2021-08-12 10:30:53 · 1932 阅读 · 0 评论 -
Java实现创建二维码操作
导语 公司想要模仿共享单车,创建不同颜色的二维码,需要编写一个生成二维码的工具类代码如下需要引入依赖 <!--二维码生成--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2..原创 2021-08-12 10:22:38 · 990 阅读 · 0 评论 -
Java实现文件夹打包
导语 接到一个需求,说是要把文件夹打包成成zip包,还要求使用Java代码来实现,想想既然是工具类,那么就来编写一个工具来试试。废话不多说直接上代码import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java..原创 2021-08-12 10:18:05 · 2226 阅读 · 0 评论 -
Spring Boot+Maven将配置文件打包到Jar包外方便运维修改配置
导语 在小公司使用Spring Boot部署上线,因为环境太多,导致运维开发相互之间重复的打包jar包运行到不同的环境上,使用容器技术又显得有点浪费,所以就先将配置文件打包的jar包外面。然后运维同学就可以自己手动修改配置文件,而不需要每次都重新打包jar。首先创建一个项目 创建项目,项目结构如下,编写一个Controller的测试类编写测试类@RestControllerpublic class TestController { @GetMapping("test") .原创 2021-08-10 15:35:22 · 2260 阅读 · 1 评论 -
Java 实现 微信支付完成回调解密返回字符串内容
导语 微信支付完成支付调用的时候,在传入的参数中有一个是执行支付完成之后结果回调的参数,这个回调函数就是微信调用这个接口来将支付成功的结果返回到具体的服务中。下面就来看看这个内容编写接收参数接口 首先来编写一个用来接收回调内容的参数,要求是这个接口没有任何的参数是使用POST的方式来进行调用。 @PostMapping("/payParkingSuccess") public AjaxResult paySuccess(@RequestBody SuccessCallBackO.原创 2021-08-09 08:51:03 · 4203 阅读 · 5 评论 -
编写一个可动态注入Spring 容器的工具类
导语 在有些使用场景下,我们使用Bean的时候发现它并没有那么必要在这个类中注入对应的对象引用。就有一个需求,就是再需要的地方将指定的类注入到容器中,这样这个类就可以动态的使用到原本已经在容器中的依赖关系,方便我们的开发。那么如何实现这个需求呢? 首先我们知道Spring 容器作为Spring的核心应用,所有的对象依赖关系都是在这个容器中进行的,而对于容器中比较重要的一点就是工厂设计模式与上下文机制,这里我选择了是ConfigurableListableBeanFactory工厂 和 Appli.原创 2021-08-04 09:25:22 · 1033 阅读 · 0 评论 -
在Spring Boot 项目中使用Spring AOP实现切面日志
导语 大数据时代,数据来源是比较重要的。而日志作为用户操作、系统监控、业务分析等都比较重要的一个环节。能更好的使用日志显得尤为重要。那么在Spring Boot的项目中如何能更加高效的记录Controller层的日志呢?这个就是今天需要讨论的问题。 直接上代码,不过在实现之前,为了让项目支持AOP的操作这里首先需要引入一个maven依赖,这里对于AOP的原理就先不做说明了,是一个比较大的内容。 <!-- SpringBoot AOP 场景启动器 --> .原创 2021-08-04 09:08:04 · 1237 阅读 · 0 评论 -
Spring Boot 实现微信小程序订阅模板消息
导语 有很多场景下,需要要对接微信小程序的开发,在使用的过程中,会出现各种各样的问题,本人总结了关于如何调用微信小程序模板订阅消息的相关实现总结如下微信订阅消息官网 首先要求系统,在不同的场景下,发送不同的微信订阅消息。第一步需要实现的就是如何将订阅消息发送出去,通过官网上的描述,先编写了一个通用的请求方法。使用的最为传统的调用方法,当然也可以使用其他的方式进行优化对于Java 网络调用的优化。这里系统要求并不是太高,所以使用的最简单的方式来实现。编写一个通用请求方法 /** *.原创 2021-08-03 10:32:53 · 1130 阅读 · 0 评论 -
池化技术:如何减少频繁创建数据库连接的性能损耗?
导语 想想一下,如何快速研发出一套面向某个垂直领域的电商系统。在人手紧张的情况下,时间不足,为了能够完成任务可能就是使用JSP模板引擎等技术快速的开发出一套系统来。后台使用一台数据库服务器存储业务数据。如下图 这个架构图是我们每个人比较熟悉的,也是最简单的架构原型图,很多的系统在最开始的时候,都是这样子的,随着业务复杂度的提高,架构做了叠加,然后就看上去复杂起来了。 在说回上面提到的电商系统,系统一开始上线之后,虽然用户量不大,也运行平稳。很有成就感的一件事情。有一天运营的同学搞了一波活动.原创 2021-07-30 01:26:28 · 1592 阅读 · 0 评论 -
Spring Boot 如何组装一个树结构的数据?
导语 项目中出现需求要求返回一个树结构的数据到页面中,但是再数据库设计的时候我们使用的是id与父id的结构来进行存储的,所以说需要有一个简单的数据结构的转换,那么在Spring Boot中如何实现这种数据类型的转换呢?下面就来看一下。Controller 层编写的数据 /** * 获取部门下拉树列表 */ @GetMapping("/treeselect") public AjaxResult treeselect(ZhwyAddressPo zhwy.原创 2021-07-27 11:40:47 · 1517 阅读 · 0 评论 -
Mybatis XML文件如何编写In语句
导语 项目开发中遇到一个问题,就是从前端传入List参数接收到参数之后要从另一张表中查询出相关的的内容,也就是SQL中要实现一个IN的操作,将包含相关内容的信息查询出来。第一步 首先在Mapper映射文件中加入如下内容 可以看到在方法中,方法参数传入的是一个List类型的数据。 /** * 根据地址列表获取业主信息 * @param addressList * @return */ List<ZhwyOwnerInfo> se.原创 2021-07-27 11:13:28 · 3078 阅读 · 0 评论 -
实战系列-使用Mybatis-Plus生成器生成代码
导语 为了提高开发效率,再很多的时候程序员会选择使用逆向工程来生成一些公共使用的代码。下面就来看一下,通过Mybatis-plus生成器来生成基础的代码。这种方式适合一些比较小的业务场景中使用。文章目录引入POM文件编写生成类总结引入POM文件 创建好Spring Boot项目之后,再项目的pom文件中引入如下的依赖,可以直接复制粘贴修改自己对应的Spring Boot的版本即可。 <?xml version="1.0" encoding="UTF-8"?><proje.原创 2021-06-21 14:45:21 · 2014 阅读 · 0 评论 -
实战系列-Java中线程安全集合类(二)
导语 上次分享中讲到了比较常用的几个Map相关的集合原创 2021-06-08 23:45:42 · 2781 阅读 · 4 评论 -
实战系列-Java中线程安全集合类(一)
导语 在Java开发中我们经常会遇到集合类线程安全的问题,在Java语言的发展过程中,从最初的线程不安全的集合类,到现在基本上支持很多的线程安全的集合类,在开发过程中,有些场景中不需要注意线程安全问题,当时在一个并发场景中就必须要使用到线程安全的集合类,那么下面就来看看在Java中比较常见的线程安全集合类以及其原理。文章目录ConcurrentHashMap原理ConcurrentHashMap原理 ConcurrentHashMap是线程安全且高效的HashMap集合类,在工作环境中并发与.原创 2021-06-06 11:59:17 · 3047 阅读 · 2 评论 -
实战系列-Java实现限流算法
导语 在Java开发过程中,经常用到的限流算法有两种,一种是令牌桶算法,一种是漏斗桶算法,那么下面就来分别看看两种算法的Java实现方式。文章目录限流算法之漏桶算法漏桶的实现限流算法之令牌桶法简单的令牌桶算法实现总结限流算法之漏桶算法 漏桶算法:首先保证请求先进入到漏桶中,漏桶再通过一定的速度将流量引出,这里需要注意的是当流量太大或者是漏桶已经满了之后会直接溢出,然后就开始拒绝请求,可以看出漏桶算法能强行限制数据传输的速率。如图所示,图来自网络漏桶的实现 实现的关键点:1、定义这.原创 2021-04-20 14:28:25 · 3517 阅读 · 5 评论 -
实战系列-IDEA中Spring MVC实现接口功能
导语 现在由于Spring Boot的简约化开发,很多的人都忘记了SSM框架接口是如何搭建的,这里就记录一次本人在实际开发中使用的如何去搭建一个Spring MVC的接口项目,当然这个功能整合完成之后还可以继续进行操作实现SSM的框架搭建JavaEE的项目。...原创 2021-03-27 15:09:25 · 2483 阅读 · 0 评论 -
Linux 下安装和配置 MinDoc
导语如果你的服务器上没有安装golang程序请手动设置一个环境变量如下:键名为 ZONEINFO,值为MinDoc根目录下的/lib/time/zoneinfo.zip 绝对路径。如果下载的压缩包中不存在该文件,请从 https://github.com/lifei6671/mindoc/blob/master/lib/time/zoneinfo.zip?raw=true 下载不会修改Linux 环境变量的请移步: http://jingyan.baidu.com/article/ea24bc39.原创 2021-02-27 15:38:30 · 2163 阅读 · 0 评论 -
实战系列-亿级流量秒杀系统JVM调优
导语 关于亿级流量的秒杀系统的调优,其实并不仅仅包括对于JVM的调优,还有包括网络调优、IO调优、负载均衡调优,缓存调优,中间件调优等等一些东西内容的调优计划,一个亿级流量的秒杀系统仅仅是通过JVM的调优来实现一个高性能真的它所起到的作用很小很小。只要有资金,可以把超级计算机改造成服务器。当然这个是开玩笑的。下面的博客中,这通过一个小例子来看看具体在支持秒杀系统流量的应用中怎么让Java应用程序达到一个最优的运行效果。文章目录JVM性能调优引用和指针的区别与联系JVM堆内存调优Java 对象分配原.原创 2020-11-21 15:27:10 · 2356 阅读 · 1 评论 -
实战系列-Spring Boot跨域解决方案
导语 在实际工作开发中经常会遇到跨域请求,这个时候就需要前后端来共同协调来解决问题,那么在Spring Boot中怎么解决跨域请求问题呢?下面就来看看什么是跨域 为了保证浏览器的安全,不同源地址的客户端脚本在没有经过明确授权的情况下是不能读写彼此的资源的,这个就是叫做同源策略,同源策略是浏览器安全问题的基石。如果没有这种限制,那么浏览器可以毫无限制的去控制整个的网络体系。那么什么是跨域呢? 如果一个请求地址里面的协议、域名和端口号都相同,就属于同源。 例如,判断下面的URL是否和htt.原创 2020-08-09 18:28:16 · 1404 阅读 · 0 评论 -
实战系列-HashMap深入剖析
导语 手撕面试官,面试某公司开发的时候被问到了HashMap底层,问到我怀疑人生,不知道是面试官错了还是我错了。我相信是我错了利用下班时间来分析手撕一下HashMap。 不用多说直接上源码这里,首先解释一下传入的几个参数。HashMap 传入的就是KV两个值,没有什么好解释的,进入方法之后调用的是putVal的方法这里可以看到。调用了一个hash()的方法。 /** * Associates the specified value with the specified key in.原创 2020-07-03 15:02:41 · 1950 阅读 · 2 评论 -
实战系列-Spring Cloud微服务中三把利器Feign、Hystrix、Ribbon
导语 在之前的分享中分享过关于Fegin的底层实现原理,以及Spring Cloud OpenFegin的启动原理。在这次的分享中主要总结一下Spring Cloud 微服务架构的三把利器。对于Fegin、Hystrix、Ribbon三个组件来说它们之间是什么样的关系。怎么样综合使用等这些问题就是这次分享的内容文章目录Fegin介绍Ribbon介绍Hystrix介绍三者关系如何配置Feign配置说明Hystrix配置说明Ribbon配置说明总结Fegin介绍GitHub地址 https://.原创 2020-07-01 11:28:46 · 1272 阅读 · 0 评论 -
实战系列-被面试官问到Feign原理
导语 事情是这样的,昨天参加了某公司二面,被面试官问道了Spring Cloud的RESTFul远程调用。项目上用到的技术就是OpenFeign,面试官可能自己不是太了解,给他解释一番发现自己还有很多的细节也不是太清楚,下面就来结合OpenFeign的源码来分析一下文章目录@EnableFeignClients注解registerDefaultConfiguration()方法registerFeignClients()方法内部流转逻辑FeignInvocationHandler 调用处理器Met.原创 2020-06-29 17:00:54 · 5264 阅读 · 0 评论 -
实战系列-分布式锁的Redis实现
导语 本篇博客,博主使用本地的Docker 搭建了一套测试环境,用来手写一个属于自己的基于Redis分布式锁实现方案,通过自己实现来了解分布式锁的原理。并且对整个的构建过程做了分享,希望可以对大家学习分布式锁有所帮助。文章目录环境搭建分布式锁需要解决的问题互斥性锁超时阻塞或者非阻塞可重入性高可用RedissionRedissonRedLock总结环境搭建RedisSpring BootNginxJmeter分布式锁需要解决的问题互斥性锁超时支持阻塞与非阻塞可重入性高可用.原创 2020-06-25 17:40:02 · 1938 阅读 · 1 评论