java
文章平均质量分 63
Piper小豆芽
这个作者很懒,什么都没留下…
展开
-
简单的Charles抓包教程
点击add,host里不写东西,在port里填写443,这个数字不能错。一般我们在抓取手机端内容时需要将Proxy菜单栏下的Windows Proxy取消勾选,禁止charles抓取本机上的请求信息。打开浏览器,请求地址:chls.pro/ssl,下载证书命名,去CA证书目录信任此证书。注:首先要确认浏览器有访问物理存储的权限,下载时会弹出提示框,点击确认按钮。注:开启电脑端抓包后,会为电脑添加局域网代理,会导致正常上网时无法浏览。同时有些手机对于证书直接下载是不受信的,需要从已下载中安装证书。原创 2024-03-17 14:44:29 · 459 阅读 · 0 评论 -
公司分布式锁加锁错误原因
公司自研分布式锁问题,setIfabsent问题,LuttuceConfig配置问题,Netty的IdleStateHandler配置原创 2023-04-12 10:41:45 · 921 阅读 · 0 评论 -
Java异步线程池中 复制参数 MDC
最近在查询日志的时候,发现异步线程池里面执行的任务 没有打印公司自定义的 日志id排查发现日志id是存在MDC中,创建新的线程的时候并未传递给子线程查询文章发现spring可以使用线程装饰器解决,如下原创 2022-12-04 20:07:46 · 1988 阅读 · 0 评论 -
mysql数据库for循环 存储过程
mysql存储过程 for循环生成数据原创 2022-07-19 13:49:05 · 4051 阅读 · 0 评论 -
记公司项目对Spring的 ClassPathBeanDefinitionScanner 的运用
前言公司有一个老项目, 使用MongoDb数据库, 没有现在Spring Boot的 mongodb template 可以用. 但是之前员工对mongo链接做了封装, 我们只需要继承一个公共类,标注上实体类,就可以用, 类似 monggodb template的方式, 我非常感兴趣, 所以在这里记录下来我的研究,与君共勉.事情是这样的我们想使用monggo 直接这样定义一下Dao类, 项目中可以直接引用public class UserDao extends BaseDataLayer<Us原创 2022-02-16 17:36:31 · 791 阅读 · 2 评论 -
使用Spring的AbstractRoutingDataSource实现动态数据源
前言笔者公司目前数据库进行了分库操作,分成了几个库,存放用户相关信息的user库,存放资产信息的asset库,存放直播相关信息的live库。在平时开发过程中涉及多库操作的地方,需要通过rpc调用对应服务。这样的开发模型大体上没问题,因为既然拆分库了,应用跟随数据库进行拆分,也能防止以后开发代码混乱。但是这样缺少了灵活性,所以我这里为我们项目增添多数据源功能。调研调研了两种spring+mybatis数据源方案。1 多份配置在项目中,为每个库分别设置一套数据源配置。DataSource,SqlSe原创 2021-11-21 18:01:51 · 1590 阅读 · 0 评论 -
JMeter压力测试工具
1 简介JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。2 下载安装和启动JMeter可以在JMeter的官方网站下载(https://jmeter.apache.org/)官网找到Download 下载zip压缩包后, 解压到本地就行进入/bin目录, 运行 ApacheJMeter.jar 文件就启动了 但是首先确保 你安装了JDK环境3 简单的设置恭喜你现在你已经启动了JmeterJmeter可以设置为中文, 按照如下顺序进行配置原创 2021-11-19 18:01:34 · 9973 阅读 · 3 评论 -
mongo 删除重复 文档
db.table.aggregate([ { -- 根据重复字段分组 $group: { _id: {'name': '$name','age': '$age'}, -- 计数 count: {$sum: 1}, -- 将id放到ids数组 ids: {$addToSet: '$_id'}} }, { -- 查询数据条数大于1的 $match: {count: {$gt原创 2020-07-13 13:11:17 · 383 阅读 · 0 评论 -
mongodb 修改主键类型
公司不知道出于什么原因使用Mongodb存储业务数据,而且是比较老得版本,造成了后面一系列问题。没有事务导致后台繁忙时数据不一致。主键默认ObjectId导致查询失败,需要手动设置,并且为字符串,防止自动转换为ObjectId。自带一套查询语句,导致有学习成本。今天遇到的问题就是因为主键为ObjectId导致后台查询出错。原因为写代码忘记设置_id,mongo自动插入id并且是ObjectId。既然线上已经出错了,我就要解决了。查询mongodb语法,得到如下语句。db.table.find(原创 2020-07-13 13:05:39 · 2072 阅读 · 0 评论 -
手写Redis分布式锁
通过调研Redis、Lua和Redisson框架,整理思路自写Redis分布式锁,保证不会死锁,并实现了Watchdog功能原创 2020-06-30 13:07:24 · 766 阅读 · 3 评论 -
算法 - 二叉搜索树的第k个结点
题目给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。解题思路使用栈存储数据,循环比较数据和栈里面数据大小,大于就出栈,一直找到当前数据应该呆的位置,然后再将出栈的数据放回来。编码 private static TreeNode KthNode(TreeNode pRoot, int k) { if (k == 0) { return null; }原创 2020-06-11 13:53:01 · 331 阅读 · 0 评论 -
算法 - 序列化二叉树
题目请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到的序列化字符串结果str,重构二叉树。例如,我们可以把一个只有根节点为1的二叉树序列化为"1,",然后通过自己的函原创 2020-06-10 19:04:32 · 545 阅读 · 0 评论 -
InteliJ IDEA社区版 两款插件变身旗舰版
今年Idea对盗版软件打击力度加大,朋友们会发现,旗舰版自己激活使用,过几天就会失效,需要重新激活,有的小伙伴就会选择去淘宝花钱买个教育邮箱注册,这个方法我使用过,过了两三个月就不能用了,着实让人头疼。如何解决呢?我想到了Idea社区版本,下载一个使用,将我的Spring boot项目导入,启动下试试,不错所料,报错了。我这里不绕弯子了,想使用社区版Idea。安装Spring Assistant插件...原创 2020-05-19 10:20:03 · 10097 阅读 · 12 评论 -
brew的使用
brew tap ringohub/redis-clibrew install redis-cli原创 2020-03-31 09:35:28 · 940 阅读 · 0 评论 -
spring 特定环境下不启用配置
今天老曹找我说他们公司因为在正式服启用了Swagger,导致接口暴露,被对手公司爬了数据。我说这有何难,我正好有两个方法可以帮到你!一 配置文件自定义启用我们项目一般会分环境切分为三个配置文件:application-dev.properties、application-test.properties 和 application-prod.properties三个配置文件加入配置:swa...原创 2020-03-06 16:29:28 · 529 阅读 · 0 评论 -
simplejavamail : Batch module not found, make sure it is on the classpath
org.simplejavamail.internal.modules.ModuleLoaderException: Batch module not found, make sure it is on the classpath (https://github.com/bbottema/simple-java-mail/tree/develop/modules/batch-module)今天使...原创 2020-03-03 16:27:59 · 1229 阅读 · 0 评论 -
算法-把数组排成最小的数
占位符原创 2020-02-25 21:52:14 · 219 阅读 · 0 评论 -
IntelliJIdea配置文件位置
window 配置文件位置C:\Users\XXX.IntelliJIdeaxxx\configfileTemplates 是自定义的文件模版templates 是自定义的代码模版plugins是插件文件夹同步的时候同步这几个就够了。keymaps是自定义的快捷键,如果有很多自定义快捷键的话,可以同步此文件夹mac配置文件地址位置~/Library/Preferences/Inte......原创 2020-01-16 18:06:00 · 5213 阅读 · 0 评论 -
lombok插件生成set方法问题
lombok插件很好用,但是我今天就遇到个有意思的bug,代码如下spring mvc这样接受一个这样的dtovoid saveCardSendConf(@RequestBody CardSendConfDto cardSendConfDto);dto如下@Datapublic class CardSendConfDto implements Serializable { pr...原创 2020-01-15 17:05:04 · 1133 阅读 · 1 评论 -
Spirng I18n 国际化
最近公司做了个购票项目,业务扩展到了泰国,所以网站要支持泰语、英语和中文,因此有了下文。配置文件准备:根目录或者i18n目录放置需要的翻译,每个配置文件对应不同的翻译messages是默认展示的翻译 我这里为英文messages_th_TH:email_format_error=รูปแบบอีเมลไม่ถูกต้องmessages_en_US:email_format_err...原创 2020-01-10 23:52:55 · 256 阅读 · 0 评论 -
将UTC时间转换为本地时间
Instant instant = Instant.now();ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("GMT+08:00"));System.out.println(zonedDateTime.getHour());System.out.println(zonedDateTime.getMinute());Zon...原创 2020-01-10 18:42:39 · 683 阅读 · 0 评论 -
记一些有意思的类
文章目录PairStopWatchPairorg.springframework.data.util.Pair用于存储两个数据,当你的方法需要返回两个数据的时候可以使用。StopWatchorg.apache.commons.lang3.time.StopWatch秒表,用来计时,内部存了一个long型开始时间,提供有停止、暂停和重新计数等功能。...原创 2019-09-17 17:40:19 · 987 阅读 · 0 评论 -
Spring boot 文件上传大小限制
spring:servlet:# 文件上传大小限制multipart:max-file-size: 2MBmax-request-size: 2MB原创 2020-01-02 17:38:54 · 282 阅读 · 0 评论 -
@Scheduled(cron = "* * * * * *")
1 cron表达式格式:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}“”字符代表所有可能的值。“”在{月份}里表示每个月的含义。“/”字符用来指定数值的增量。在{分钟} 里的“0/15”表示从第0分钟开始,每15分钟。在{分钟}里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样。“L” 字符仅被用于{日期}和{星期},它...原创 2019-12-30 11:08:47 · 2773 阅读 · 2 评论 -
BigDecimal加减乘除计算
java.math.BigDecimal 不可变的、任意精度的有符号十进制数。在银行、帐户、计费等领域,BigDecimal提供了精确的数值计算。Bigdecimal进行加减乘除的类方法。加法:add()函数减法:subtract()函数乘法:multiply()函数除法:divide()函数绝对值:abs()函数...原创 2019-12-30 10:29:24 · 237 阅读 · 0 评论 -
sharding-jdbc 强制查询走主库
// 查// 只对下面第一条查询有效HintManager.getInstance().setMasterRouteOnly();Broker broker = jdbcTemplate.queryForObject( "select id, uname, broker_id brokerId, create_time createTime, deleted from bro...原创 2019-12-13 11:17:06 · 4648 阅读 · 2 评论 -
Unable to locate Spring NamespaceHandler for XML schema namespace shardingsphere
照着官网给的例子做sharding读写分离启动包如下错误Unable to locate Spring NamespaceHandler for XML schema namespace [http://shardingsphere.apache.org/schema/shardingsphere/sharding]其实官网还有一个namespace包 要导入 <dep...原创 2019-12-12 20:05:03 · 280 阅读 · 0 评论 -
redis Pipelined高效插入数据设置失效时间
如下代码所示RedisSerializer keyS = redisTemplate.getKeySerializer();RedisSerializer valueS = redisTemplate.getValueSerializer();byte[] key = keyS.serialize("key");redisTemplate.executePipelined((RedisC...原创 2019-11-29 09:54:55 · 1062 阅读 · 0 评论 -
二叉树前、中、后遍历
public class a { static class TreeNode { String val; TreeNode left; TreeNode right; TreeNode(String x) { val = x; } } //前序 static voi...原创 2019-10-25 15:52:34 · 136 阅读 · 0 评论 -
Java自带的md5、sha和base64加密怎么用
jdk自带base64加密的使用jdk自带sha加密jdk自带md5加密jdk自带base64加密的使用public static void base64(String s) { try { BASE64Encoder encoder = new BASE64Encoder(); String enc...原创 2018-08-04 15:00:19 · 1037 阅读 · 0 评论 -
httpclient请求转发实战
代码需求依赖地址httpclient连接池一个请求的流程一个demo代码需求公司有eureka管理页面、spring admin管理页面、kafka管理页面、日志查询页面和文件系统查询页面,现在要将这些页面放到一个统一的网页中管理,通过标签分别跳转到不同的页面,省去了分别点开的麻烦这些单个的系统外网访问不到,但是我这个系统(manage)能够被外网访...原创 2018-08-04 16:07:44 · 8328 阅读 · 0 评论 -
httpclient如何获取请求参数
目的如何获取前台get请求的参数如何获取post请求的参数获取post请求form表单数据获取post请求json数据目的见下面这篇博客的代码需求 https://blog.csdn.net/GY325416/article/details/81412078如何获取前台get请求的参数/** * 返回get方法 填充前台传送来的参数 * ......原创 2018-08-04 17:22:59 · 6897 阅读 · 0 评论 -
httpclient处理返回数据
目的见另一篇博客代码需求 https://blog.csdn.net/GY325416/article/details/81412078处理返回数据使用httpclient请求过后,返回的数据(在对象CloseableHttpResponse里面)如何处理,如何返回到前台页面? 我们只需将CloseableHttpResponse对象数据取出放到HttpServletRespon......原创 2018-08-05 21:53:57 · 8654 阅读 · 0 评论 -
java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
今天使用feign进行远程调用,被调用方使用@RequestParam接受参数,但是在启动项目的时候报了错Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.===2018-08-13 17:25:37....原创 2018-08-14 17:30:16 · 1536 阅读 · 0 评论 -
idea注释模板
类注释模板使用快捷键ctrl+alt+s打开配置 /** * * * @author piper * @date ${DATE} ${TIME} */ 方法注释 创建一个模板 点击Define 点击Edit variables 用的时候,直接打出node,即可弹出注释,按回车即可...原创 2018-08-14 18:27:52 · 1818 阅读 · 0 评论 -
Custom runner class Runner should have a public constructor with signature R
使用spring boot编写的测试类,如下图,但是执行会报如题所示的错, 需要改一类名,再者将类移到com.test包里面,重新编译尝试一下原创 2018-08-26 18:30:28 · 3170 阅读 · 5 评论 -
jenkins企业级实战
简介下载安装简介Jenkins是一个独立的开源自动化服务器,可用于自动执行与构建,测试,交付或部署软件相关的各种任务。Jenkins可以通过本机系统软件包,Docker安装,甚至可以由安装了Java Runtime Environment(JRE)的任何机器独立运行。能够部署使用Maven构建的java项目,使用npm构建的Node.js项目还有PyInstall...原创 2018-08-26 21:23:15 · 1774 阅读 · 0 评论 -
windows配置jdk环境变量
在我的电脑上右键弹出菜单点击属性 点击高级系统设置 选环境变量,在系统变量里面新建JAVA_HOME 编辑path,将jdk和jre的路径添加进去 新建classpath 测试 ...原创 2018-08-17 15:24:24 · 593 阅读 · 0 评论 -
eclipse启动A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order
eclipse启动报错 A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Eclipse. No Java virtual machinewas found after searching the following locations:D:\...原创 2018-08-17 15:39:11 · 595 阅读 · 0 评论 -
使用idea合并分支
这里展示将dev分支合并到test分支 首先切换到test分支 按下图所示操作原创 2018-08-27 11:16:06 · 717 阅读 · 0 评论