![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工具
北漂的菜小白
写代码是我的爱好,做专栏只为了混口饭吃
展开
-
短链接业务解决方案(附源码项目)
1、首先,你要有一个待跳转的长链接地址,这个链接长度随你心情,多长都行,参数也是看你安排,可以携带用户唯一标识,比如,加密后的用户id 2、使用雪花id,生成一个全局唯一的id 3、 使用算法,生成一个唯一的短key,长度短一些就行4、把这几个数据信息,存储到一张表中5、使用短key,和你的短链接跳转域名,拼接成一个短链接6、将这个短链接,发送给用户7、用户点击短链接,产生get请求,后端服务器拿到这个链接的key,去查询数据库,从而获得长链接地址8、 利用重定向技术,实现从短链接向长链接原创 2022-12-21 11:45:55 · 1703 阅读 · 0 评论 -
Spring webflux 中 WebClient 简单使用记录
webflux中 WebClient简单的使用记录原创 2022-08-30 11:37:57 · 1392 阅读 · 2 评论 -
JAVA使用AES实现对称加密
JAVA使用AES实现对称加密。原创 2022-08-09 10:56:42 · 1038 阅读 · 0 评论 -
JAVA使用RSA实现非对称加密
JAVA使用RSA实现非对称加密。RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。原创 2022-08-01 19:33:43 · 1233 阅读 · 0 评论 -
JAVA使用DES实现对称加密
JAVA使用DES实现对称加密原创 2022-08-01 09:20:10 · 444 阅读 · 0 评论 -
一个基于Spring Boot开发的微信公众号快速开发工具包
微信公众号开发相关组件,还在不断完善中感谢 JetBrains 的对这个项目的认可项目地址:https://github.com/lcy19930619/weixin-spring-boot-starterwiki地址: https://github.com/lcy19930619/weixin-spring-boot-starter/wiki微信文档写的一些东西,感觉比较乱,而且很多东西需要找来找去,百度、csdn等等代码复用性也不高,所以写了这个组件,希望通用性好一些方法一:通过mvn inst原创 2022-06-16 09:56:00 · 1049 阅读 · 6 评论 -
Java 程序启动脚本
#!/bin/bashAPP_NAME='h5-app'# 等待应用启动的时间APP_START_TIMEOUT=80# 应用端口APP_PORT=8081# 应用健康检查URLHEALTH_CHECK_URL='http://127.0.0.1:'${APP_PORT}/yfbApp/health/check# jar包的名字JAR_NAME='h5App.jar'# 探针JAVA_AGENT=' -javaagent:/usr/local/agent/skywalking-ag原创 2022-04-26 17:04:43 · 2580 阅读 · 0 评论 -
用JAVA实现一个简单的预热功能
背景某服务调用,因服务器性能问题,无法直接使用最大qps进行调用,需要动态加速逻辑设置最大加速时间,设置允许加速到的最大qps代码import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.atomic.AtomicLong;/** * 预热控制器 * @author chunyang.leng * @date 2022-03-11 6:22 PM */public cla原创 2022-03-11 20:53:48 · 1364 阅读 · 1 评论 -
使用spring cloud gateway,处理微信公众号模版推送事件
业务场景公众号推送服务,推送用户量级较大,且qps较高解决问题微信公众号的模版推送,在调用推送api接口时,就已经知道是否推送成功,但是微信依然会触发推送回调事件,显著占用线上服务处理能力解决方式在spring cloud gateway中添加过滤器,如果识别为微信回调的推送请求,直接返回空白字符串代码如下maven依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat&l原创 2022-02-21 10:13:51 · 373 阅读 · 0 评论 -
代码示例 ---- spring boot 扫描指定包内接口,自动创建代理类
期望目标提供一个可以扫描指定包的注解该包下,全部为接口类型在spring boot环境中,可以正常注入扫描包内的全部接口扫描包内的接口,使用代理模式实现,且,方法执行时,执行自定义代码段思路解析自定义一个注解该注解需要具备一个数组参数,用于存储扫描包的路径已知包内均为接口类型,也就是说,没有实现类,ioc注入必然报错,需要动态创建代理类代理模式两种方案,jdk需要预先实现相关接口,不太方便,cglib可能会更方便一些,所以使用cglib去实现相关功能该代理实现需要被ioc管理代原创 2022-01-22 18:45:55 · 1138 阅读 · 0 评论 -
代码工具---长链接转换短链接
长链接转短链接的示例代码原创 2022-01-13 14:22:11 · 643 阅读 · 0 评论 -
Elastic Job开启分片时,业务数据分片逻辑
业务场景:需要分布式定时任务可能有多个分片(生产者)每个分片生产总数据中的一部分数据说明:Elastic Job当前的分片索引最大值 = 分片总数 -1代码示例:public class DemoJob implements SimpleJob { @Override public void execute(ShardingContext shardingContext) { List<User> allData = getAllDataFromDat原创 2021-03-17 20:43:07 · 384 阅读 · 0 评论 -
LRU(JAVA)
import java.util.LinkedHashMap;import java.util.Map;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @author chunyang.leng * @date 2021-03-03 3:40 下午 */public class LRU<K, V> { private LRUMap&.原创 2021-03-03 16:06:35 · 102 阅读 · 2 评论 -
spring boot 结合mybatis动态数据源
@Configurationpublic class MybatisConfig { @Bean public DataSource dataSource1(){ return new DruidDataSource(); } @Bean public SqlSessionFactoryBean sqlSessionFactoryBean1(DataSource dataSource1){ final SqlSessionFacto原创 2021-02-01 12:43:48 · 264 阅读 · 0 评论 -
JAVA爬虫---LOL各英雄图片(含皮肤)下载
pom依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <dependen原创 2021-01-31 20:45:31 · 446 阅读 · 0 评论 -
spring boot 使用Validated
pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId>原创 2021-01-26 09:54:27 · 315 阅读 · 0 评论 -
html转txt(过滤html标签)
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.ArrayList;import java.util.List;import java.util.function.Function;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * html 转 txt * @author chunyang.leng *.原创 2021-01-20 10:22:30 · 318 阅读 · 0 评论 -
mbp m1 芯片 JAVA开发环境搭建
zulu jdk 下载:链接: https://pan.baidu.com/s/11kUi3mA5X8L_4Jiy6TfLSw 提取码: pmiadocker预览版https://desktop.docker.com/mac/m1preview/Docker-AppleSilicon-Preview7.dmg(正式版已经发布,可以直接官网下载)idea 2020.3预览版 (正式版2020.3.2已经发布,可以直接官网下载)https://download.jetbrains.com/idea/原创 2020-12-17 15:28:24 · 22666 阅读 · 45 评论 -
IDEA Command line is too long解决方法
搜索<component name="PropertiesComponent">在里面加上<property name="dynamic.classpath" value="true" />解决完成原创 2020-08-13 16:57:32 · 3219 阅读 · 1 评论 -
哨兵模式下,使用redisTemplate
import java.util.Set;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;import com.google.common.collect.Sets;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Au..原创 2020-08-03 11:30:14 · 1698 阅读 · 4 评论 -
反射赋值
public class ConditionUtils {/*** 无返回值分支处理方法* @param condition 条件* @param trueFaction 为true时的执行方法* @param falseFaction 为false时的执行方法*/public static void voidHandler(boolean condition,Supplier trueFaction,Supplier falseFaction){if(condition){trueFac原创 2020-06-19 14:43:29 · 272 阅读 · 0 评论 -
mybatis SQL打印插件
import java.text.DateFormat;import java.util.Date;import java.util.List;import java.util.Locale;import java.util.Properties;import java.util.regex.Matcher;import org.apache.commons.collections.CollectionUtils;import org.apache.ibatis.executor.Execu原创 2020-06-19 14:42:28 · 532 阅读 · 0 评论 -
idea 配置tomcat
原创 2020-06-16 12:25:56 · 287 阅读 · 0 评论 -
idea 配置JDK操作
一、配置JDK原创 2020-06-16 12:22:37 · 260 阅读 · 0 评论 -
Spring-IOC的学习
IOC用到的接口BeanDefinition:bean定义对象,含bean的属性,方法、init-method等等很多属性ResourceLoader:资源文件读取器BeanDefinitionReader:BeanDefinition读取器,用于把资源文件中的标签,解析成BeanDefinition对象BeanDefinitionRegistry:BeanDefinition注册器,内部持有BeanDefinitionMap对象,用于承装全部BeanDefinition,key:BeanName,原创 2020-05-22 14:18:09 · 89 阅读 · 1 评论 -
通用型分支处理
public class ConditionUtils {/*** 无返回值分支处理方法* @param condition 条件* @param trueFaction 为true时的执行方法* @param falseFaction 为false时的执行方法*/public static void voidHandler(boolean condition,Supplier trueFaction,Supplier falseFaction){if(condition){trueFac原创 2020-05-19 11:36:53 · 119 阅读 · 0 评论 -
记录问题解决方案(无代码)-----公网无法访问内网资源文件,但项目必须提供公网访问内网部分文件
情景:1、用户上传的文件存储于内网的某文件管理服务器中2、前端在某些情景上,需要展示用户上传的图片、或文档3、但是!用户访问时,无法访问内网资源!!!踩坑:原以为数据库记录文件路径,然后在传给前端即可,但是没想到。。。天杀的文件服务器不能用于公网访问解决方案: 1、在服务端,提供一个支持get访问的web接口,用于接收文件的唯一标识(需要提供HttpServletResponse ...原创 2020-03-08 19:18:08 · 348 阅读 · 0 评论 -
文件扩展名和response类型对照表
地址:http://tool.oschina.net/commons原创 2019-09-03 11:04:38 · 803 阅读 · 0 评论 -
文件批量压缩下载
一、果需要从服务器下载文件,首先应该对文件进行压缩,二、注意事项:1、不应该在服务器创建临时的压缩文件,这样比较浪费服务器硬盘资源2、读取文件时,一定要加上服务器地址 + 文件路径 + 文件名.后缀名三、实现细节/***文件转byte[]**@paramfile**@return*/private byte[] getBytes(Filefile){ byte[] buff...原创 2019-09-03 11:04:18 · 201 阅读 · 0 评论 -
java 生成二维码
所需依赖 QRCode-1.0说明:此依赖直接解压到maven仓库即可,网上未找到该依赖注:该二维码依赖已经添加到云效仓库中pom文件需要添加如下代码 <!--二维码--> <dependency> <groupId>QRCode-1.0</groupId> <...原创 2019-09-03 11:03:57 · 173 阅读 · 0 评论 -
java发送邮件
依赖<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency><dependency> <groupId>...原创 2019-09-03 11:10:20 · 393 阅读 · 0 评论 -
AOP保证数据源为同一个
AOP开发时事务控制一定要为同一个数据源 否则事务不生效/** * 采用ThreadLocal封装Connection * @author yanyan * */public class ConnectionManager { //声明一个Connection类型的ThreadLocal private static ThreadLocal<Connection&...原创 2019-09-03 11:12:30 · 171 阅读 · 0 评论 -
BASE64压缩与解压
/** * 字符串的压缩 * * @param base64 待压缩的字符串 * * @return 返回压缩后的字符串 * * @throws IOException */ public static String zipBase64(String base64) throws IOException {...原创 2019-09-03 11:15:47 · 15630 阅读 · 8 评论