自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃水不忘挖井人

取之于网,用之于网

  • 博客(18)
  • 收藏
  • 关注

原创 mongodb和spring整合使用

整合前看项目中spring版本,选择对应的mongodb依赖spring-data-mongodb版本:1.10.8.RELEASEspring版本:4.3.12.RELEASEspring-data-mongodb版本:1.10.8.RELEASEmongo-java-driver版本:2.14.3配置如下:<mongo:repositories base-package="xxx.xxx.repository" /><!-- MongoDB hos.

2021-05-17 17:30:22 1040

原创 依赖版本问题解决过程吐槽

想不出什么名字合适了,也不是什么技术深挖,就是记录一次实际遇到的问题解决过程中的复杂心情。本来是要在项目中使用mongodb,项目本身框架用的spring,添加spring-data-mongodb依赖,配置之后启动报一些NoSuchMethod之类的错,第一感觉就是版本不匹配,就朝这个方向查找我的spring版本是4.3.12.RELEASE,spring-data-mongodb的版本最新的是3.2.0,但是这个版本里面依赖的spring并没有标注想查看版本依赖就得去项目的pom文件里.

2021-05-13 14:23:11 471

原创 模拟AQS中acquireQueued返回true的情况

AQS中有acquire方法: public final void acquire(int arg) { if (!tryAcquire(arg) && acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) selfInterrupt(); } final boolean acquireQueued(final Node node, int arg) {

2021-05-10 10:06:52 384

原创 源码分析Lock实现原理 - ReentrantLock

从jdk1.5出现的Lock接口,与synchronized相比,提供了更广泛的操作,可以有不同的属性,支持多个关联对象先看它的一个实现ReentrantLock两个继承关系图: ReentrantLock有一个抽象静态内部类Sync,FairSync和NonfairSync分别是Sync公平和非公平锁的两个实现知道了这些前提,使用Lock锁先要初始化ReentrantLock实例,ReentrantLock有两个构造方法:/** Synchronizer provi...

2021-04-29 18:30:04 227

原创 订阅消息发送47003

订阅消息发送失败信息:{"errcode":47003,"errmsg":"argument invalid! data.phrase4.value invalid rid: 600a44c7-56086c1c-4f499b49"}提示phrase4这个字段无效,这个订阅消息模板给我示例是下面那样的:我发送的消息只有7个汉字,不行的,这个模板示例不具有参考价值,看接口文档,调用接口是:https://api.weixin.qq.com/cgi-bin/message/subscribe/send

2021-01-22 11:38:02 5859

原创 小程序码生成errcode:47001

生产发版小程序码生成不了,开始以为token任务没有执行,可能token失效了,经查看不是,因为发版内容改动不涉及小程序码生成过程,一直好好的突然就不能用了追查过程本地单元测试输出微信接口(POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN)请求返回值如下:{"errcode":47001,"errmsg":"data format error rid: 5fbfdd5b-4ebb

2020-11-28 10:22:03 1002 2

原创 项目中SET @rowNum = 0和SELECT语句一起执行

还拿上篇中sql举例:SET @rowNum = 0;SELECT ( @rowNum := @rowNum + 1 ) AS rowNo, t.phone, t.count FROM ( SELECT phone, count( 1 ) AS count FROM sign_in GROUP BY phone ORDER BY count DESC LIMIT 10 ) t;方法一:合并成一条语句SELECT ( @rowNum := @rowNum + 1 ) AS r

2020-10-31 12:50:56 1898

原创 mysql变量查询实现计数排行

先看mysql一个简单的变量查询:SET @rowNum = 0; SELECT ( @rowNum := @rowNum + 1 ) AS rankNum;变量初始值rowNum设置为0,查询一行数据变量+1,定义为排行号,也是数据行号用途一:数据排行现在签到表结构如下:CREATE TABLE `sign_in` ( `phone` varchar(11) NOT NULL COMMENT '登录手机号', `integral_num` decimal(3,0) NOT

2020-10-31 12:49:33 673

原创 线程池任务增长过程分析

//线程缓冲队列 private static BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(10); // 核心线程数 private static final int SIZE_CORE_POOL = 5; // 线程池维护线程的最大数量 private static final int SIZE_MAX_POOL = 9; // ...

2020-10-30 19:57:39 261

原创 solr5.5.5独立部署(不使用tomcat)

solr作为客户端,从5版本开始就不用依赖tocmat可以自己单独启动我下载的solr是5.5.5版本,solr下载后解压缩目录如下:我用的win7系统,从cmd进入当前目录,执行命令:bin\solr.cmd start需要注意的是:对于solr6以下的版本可用jdk7,从solr6开始只能使用jdk8了,对于jdk9才能用的版本目前还没有(2017年记录)。查看一下solr是否启动和一些环境:bin\solr.cmd status启动完成可以从浏览器访问:localhos

2020-10-30 19:52:33 391

原创 swagger2集成配置

swagger2有一个web前端ui界面,可以清楚的看到所有被swagger2扫描到的接口列表,源码在github上:https://github.com/lijulia/swagger-ui这个版本不是最新版,但是带有搜索功能,这是在最新版里没有的。操作步骤:1、上面github项目下载下来,解压,项目创建静态目录swagger,把dist文件夹下的所有的东西放到这个目录2、修改index.html文件里的js代码,源码里的js访问doc路径修改成自己项目的访问路径:url = "/xxx

2020-10-28 21:08:29 688

原创 在github上分享项目

两种方式1、idea工具分享直接本地上传并创建github仓库2、先在github上创建,然后本地与其关联,再上传第一种方式:1、使用idea创建一个空项目2、菜单VCS》Import into version control》Share project on github3、接下来提示登录github账户,输入用户名和密码,点击log in4、弹出来一个确认框,可以设置仓库名称,下面orign名字不要改,确定5、弹框让选择要push到github上的文件,选择好之后

2020-10-28 20:38:20 1842

原创 依赖问题记录(持续更新)

3、The version of ZooKeeper being used doesn't support Container nodes. CreateMode.PERSISTENT will be used instead.2、java.lang.ClassNotFoundException: com.google.common.base.Function启动服务找不到这个类,我当时是使用curator-framework的时候排除了guava,添加上依赖:<dependency&g

2020-10-28 18:18:26 1446

原创 spring多环境项目下配置文件-apollo配置中心

apollo配置中心是携程研发的分布式配置中心,能管理不同环境配置,还有集群的配置,配置项修改实时更新生效,最重要的是更改配置不需要重启服务器,这也是我把项目的配置用apollo管理的主要原因。更多的介绍在github上都可查看,我这里直接记录对接的必要修改和作用。安装apollo服务端从github上apollo项目找到quick start,按照版本要求准备jdk,mysql环境Apollo服务端:1.8+Apollo客户端:1.7+mysql版本要求:5.6.5+需要下载项目包,

2020-10-13 21:02:37 618

原创 spring多环境项目下配置文件-部署包支持切换环境

目录问题场景原因改动过程一改动过程二最终效果关于公司项目的配置文件,我一共改过两次比较大的改动,从实际意义上解决运维发版部署问题,下面记录一下第一次改动场景原因和效果。问题场景原因项目是小程序后台,有一个web管理前端界面,后台共用,只服务一个小程序平台,领导安排新部署一个小程序后台,需要的东西就是:1、新平台中小程序相关信息整理好,更新到一个新的properties文件中2、准备部署的服务器和创建对应的数据库3、安装其它中间件以上三项是必须做的,下面打包到部

2020-09-23 14:36:00 242

原创 从51到csdn

最近陆续整理博客内容,从51cto到这里,原地址博客已隐藏,原博客名称也是Beyond_奈何所以这里继续用这个名字,不再修改。现在的博客很多,选一个适合自己的也真是不容易。有一个博客搬家的功能,可以通过申请达到自动拷贝,但是由于原博客从新公开需要审核,时间不定所以还是我一篇一篇整理,并且整理的过程,也发现之前的博客内容还有些地方需要完善一下,时隔几年时间,看看之前自己写的,发现很多问题,可能不利于他人看懂,当时记的时候也是为了重要的地方提个醒,就是忘了看看也能回忆起来,已经整理了两篇,看了之后发

2020-09-16 20:34:52 151

原创 slf4j-log4j12加log4j自定义配置包路径日志输出

项目日志在定位问题原因上起着重要的作用,有用的日志输出能提高解决问题的效率,所以日志配置还是很关键的,对一个项目来说有用的日志包路径一般都是项目自己包路径下的日志,集成的框架和依赖包中的包路径下的日志其次,代码在哪里需要输出日志和开发者的水平有关,排除这个因素,假设项目代码输出日志都很合理,那就剩下日志配置了,下面记录一下配置log4j.properties文件,实现自定义包路径日志输出。配置遵循以下几个原则:1、项目本身包路径就使用info级别日志,2、项目依赖第三方包中的日志对接好之后一般对

2020-09-15 22:10:58 2409

原创 jenkins 配置子项目发版

项目更改原因刚接手公司的项目虽说也多模块、分布式部署,但是模块之间却没有被父项目管理,每个模块都是一个单独的项目,单独维护着当前模块内使用的依赖,版本等,模块之间自然有很多重复引用的依赖,我不知道当初为什么这样创建,在我集成apollo配置中心的时候我改掉了这样依赖结构,所有的模块的依赖都和版本都统一由一个父pom管理,改成一个完全由上到下的父子结构项目,这也为后面埋下一个坑。更改之后出现问题测试环境上线的时候,使用的jenkins自动部署,更换了源码路径,jenkins配置每个模块的源码路径都是当前

2020-09-14 20:11:30 750

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除