自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 从前序中序遍历序列构造二叉树的迭代算法理解

力扣上这道题的大神的迭代解法不是特别好理解,比如详细通俗的思路分析,多解法的迭代算法,看着解法新颖,但是我看了大半天都吃不透。后来想到了一个关于栈的算法题,就是给定两个数组 A 和 B,A 代表的是元素入栈的顺序,问 B 的元素顺序是不是 A 的出栈顺序。可以说,理解了出栈顺序这道题,基本就理解了这个二叉树构造的迭代算法了。数组 A :[1,2,3,4,5],数组 B1 :[5,4,3,2,1],B3 :[4,5,3,2,1],B3 :[3,4,5,2,1]。数组 B1,B2,B3 均是数组 A 的..

2020-08-27 20:54:23 405

原创 多数据源,多租户,执行多线程代码的解决方案

我们的产品是用医疗数据做回顾性科研的,数据库 Schema 是基于国际公认的 OMOP 模型,所以核心的表结构都是固定的,而且我们经过几年的打磨,表也有上百个了,功能上也能支持复杂的查询和分析。我们自己也是对功能模块做了拆分,目前有 4 个应用,之间有少量的 REST 调用。本来我们的目标客户是医院,实施人员抽取医院的 HIS 系统数据进入到我们的产品依赖的数据库,运行我们的软件,医生的科研都是基于全院数据的。所以大多数情况下,我们只需要启动 4 个 docker 甚至一个 docker 都行,能让 4

2020-08-20 16:13:24 1257

原创 Logstash同步Mysql数据到elasticsearch(默认smartcn分词器)

先下载 ES 容器,我下的是 6.7.0 版本docker pull elasticsearch:6.7.0启动 ES 容器docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.7.0如果启动过,直接 restartdocker restart 893进入 ES 容器的 bin/bash 目录,通过 elasti.

2020-08-17 14:14:30 360

原创 解决 No converter found for return value of type 的问题

最近测试一个导出功能的时候,后台日志报异常,但是页面的文件下载正常,网上搜了一些,都不是需要的答案。但是java.lang.IllegalArgumentException: No converter found for return value of type里面Soumyajit Swain的回答给了我一点提示。仔细看我的代码,原来是 Service 里面直接以流的方式把内存数据响应给页面请求,等于结束了 HTTP 请求,但是我们的 Controller 还是一如既往地想返回一个通用的对象作为响...

2020-08-05 19:52:09 2469

原创 应用多节点部署,操作同步的实现方案

系统功能概述:我们的应用所面向的终端用户是医学人员,系统部署后,用户可以通过复杂的医学条件检索出符合条件的病人,称之为队列,然后定义变量,也就是再次查询每一个病人的具体信息,如年龄,性别,是否服药,检测的血压值是多少等等,有了这些数据,就可以做统计学方面的分析,得出一些医学结论。业务需求和解释:客户提出了一个应用多节点部署,并且操作同步的业务需求。这个客户是省市级的医院,其下还有乡镇,社区...

2020-03-16 12:26:17 1510

原创 利用Java反射消除 if/else 语句

前端页面会根据用户选择的下拉列表选项,传给后端相应的 Value 值,后端根据不同的 Value 值执行不同的业务逻辑,大致如下:public String getSqlForField(String field){ if ("AGE".equals(field)){ // genSqlForAge } else if ("DATE".equals(field)){ // gen...

2020-02-06 10:07:18 958

原创 解决 devtools::install_github 的 SSL/TLS connection failed 问题

使用 devtools 的 install_github 命令安装一个 R 包报了如下错误:Installation failed: schannel: failed to receive handshake, SSL/TLS connection failed百度了下,[已解决]failed to receive handshake ssl/tls connection failed ...

2019-12-03 09:37:03 17029 4

原创 使用 Redis 做 MyBatis 二级缓存

1. 首先安装 Redis Server,设置好用户名密码,然后 pom 里添加依赖:<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.1</version></de...

2019-11-21 17:55:56 253

原创 使用阿里 EasyExcel 读写 Excel 文件

首先 pom.xml 引入依赖,EasyExcel 版本更新快,不同版本 API 均有不同,有些已经废弃。<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.0.0</version...

2019-10-25 13:46:01 2700

原创 阿里云镜像解决了springboot和spring cloud版本兼容问题

直接使用 start.spring.io 快速构建微服务应用,添加Eureka Server依赖, 由于没办法选择老一点的 springboot 版本,只好选择默认的,生成的 pom.xml 文件如下:接着就是应用 springboot 的版本去修改 spring cloud 版本,网上找了下SpringBoot与SpringCloud的版本对应详细版,对应着瞎改改总是报错:既然...

2019-10-18 17:59:10 2234 1

原创 springboot应用在内置tomcat和在独立tomcat里Listener加载顺序不同的问题

我们的一个语言国际化的实现思路是:通过Listener在应用被加载的时候读取properties 资源文件,然后把对象放入 ServletContext 中,I18NUtils 工具类通过注入ServletContext,实例化时从上下文获取对象,简化 API(读文件的时间放到应用启动而不是业务初次调用时)。@WebListenerpublic class VinciContextL...

2019-10-14 15:17:55 1442

原创 数据导出为 .SAV文件到SPSS软件进行分析的解决过程

我们的一个产品是做医疗数据分析统计的,核心功能是通过精细的数据过滤条件及灵活的组合方式,给予用户使用严苛条件检索出病人数据,而数据分析这块,我们是通过 R 语言库,编码实现常用的统计分析功能。有个客户可能是习惯于使用 IBM SPSS 分析软件,提出了筛选出来的病人数据直接进入 SPSS,然后他们就可以在 SPSS 里面做任何分析。对我们而言就是怎么让数据生成好后,用户在我们的应用里一键启动 ...

2019-09-27 16:37:53 5709

原创 离线安装 Enhanced Class Decompiler

通过 Eclipse Marketplace 安装Enhanced Class Decompiler 总是报Unable to read repository at https://ecd-plugin.github.io/update/content.xml.的错误,和Eclipse下载反编译插件报错Unable to read repository at https://ecd-plug...

2019-09-18 10:05:54 6235 1

原创 特殊的 log4j:ERROR Failed to rename 问题

由于业务功能的需要,我们需要分流日志语句到不同的文件里,我们的 log4j.properties 配置如下:### set log levels ###log4j.rootLogger = INFO,CONSOLE,Dlog4j.logger.firstLogger = INFO,firstAdpterlog4j.logger.secondLogger = INFO,secondAdp...

2019-08-09 18:36:47 1861

原创 算法:打印二叉树的边界节点:

打印二叉树的边界节点有两个标准,这里只看标准一:1. 头节点为边界节点2. 叶节点为边界节点3. 如果节点在其所在的层中是最左或最右的,那么也是边界节点左程云的《程序员代码面试指南》里面的解法如下:1. 递归遍历树,找到树的最大高度,然后定义保存每层最左最右边界节点的二维数组2. 递归找出每层最左最右边界节点(如果该层只有一个节点,那么会重复保存)3. 先从上往下打印左...

2019-03-28 10:09:37 602

原创 springboot工程扫描依赖Jar包的mapper和xml的解决办法

1. 如果宿主和被依赖的工程都包含 Swagger.java,整合后会发生冲突,解决办法就是不重名或者直接删除被依赖工程里的文件。2. 宿主的 Java进程启动入口需要加上依赖 jar 包的扫描路径,MapperScan 也要加上对应的多个 dao 的包路径:3.宿主的 application.properties 文件的 mybatis 的配置的写法比较特别,需要写成:也...

2019-03-25 17:45:07 14086 3

原创 Oracle转PostgreSQL后,应用层修改时碰到的问题

使用 Ora2PG 完成Oracle到PostgreSQL迁移后,就需要修改Java应用的代码了,我们使用的是 Spring Boot + Druid + MyBatis,除了常规的函数不同要修改,比较琐碎的就属子查询要有别名和临时表的问题。这里,重点讲临时表碰到的问题:1. 使用 Ora2PG 工具后,发现所有的临时表定义都不在目标导出文件里。以前用Oracle,可以把临时表定义好,Or...

2019-01-31 10:37:47 959

原创 使用ORA2PG迁移数据库

 首先需要安装 Perl 和 PostgreSQL数据库,还需要安装Oracle的客户端。我都是在本机 Windows 系统上测试的,对应的文件名:ActivePerl-5.26.3.2603-MSWin32-x64-a95bce075.exepostgresql-10.6-1-windows-x64-binaries.zip软件装完进入Perl 的bin目录,命令安装Perl 的...

2019-01-27 15:20:23 1236

原创 Oracle+Mybatis批量插入含有Sequence和CLOB字段

参考 当oracle+mybaits批量insert遇到CLOB类型字段,通过使用 begin .. end 将语句放入Oracle 的块里实现批量提交。常规的,带有 Sequence 的插入语句需要使用到 Mybatis 的 selectKey 标签。但是,带有 Sequence 和 CLOB 的却可以使用下面更简洁的方式完成: &lt;insert id="insertAll" para...

2018-12-28 14:08:45 996 1

原创 Java8 对矩阵进行组合排序

首先,常规的实体类的多条件排序可参考:Java8:Lambda表达式增强版Comparator和排序java8-Lambda中比较器Comparator的使用我们有个Matrix 多条件排序要求,矩阵的列动态生成,程序可以知道该列是定性的还是定量的值。用户在浏览这个Matrix 的时候,他会选择若干个列,每个列的升降序和排序优先级进行排序,后台负责做真分页排序。比如一个matrix...

2018-11-29 14:19:37 1050

原创 自己碰到的 R : invalid multibyte string 的原因

今天替客户做一个研究,用的是一个开源的库,github: Participate on HypertensionCombination study代码有好几个 bug, 比如 CreateCohorts.R 文件的第 25 - 41 行是创建 EXPOSURETABLE / OUTCOMETABLE 表的,但是却被注释掉了,导致 ca_cohort_per_protocol.sql 第 619...

2018-09-28 16:41:23 11204 3

原创 windows下sqoop环境搭建要正确安装hadoop

一开始我是根据 Windows下部署HBase 的步骤进行安装,里面说把 HADOOP_HOME 设置成 hadoop-common-2.2.0-bin-master 的路径上,这个暂时没有问题,hbase 可以正常启动。然后我打算导数据,就需要安装 sqoop,根据 Sqoop环境搭建 下载并安装,然后验证安装是否成功,却发现下面这样的问题:尝试着修改 hadoop.cmd 文件,始终不...

2018-09-20 15:42:45 2929

原创 MyPerf4J 的使用说明

看头条时推送的 MyPerf4J 一个简单、快速且无侵入的Java方法监控工具 ,觉得是个不错的可以粗略统计接口响应时间的工具,但是 README 上只有文字描述,而缺乏页面截图方面的指导,自己捣鼓了一阵子也没有进展,后来在 GITHUB 找到了作者的邮箱,直接发邮件,得到了作者的答复,顺利完成了使用。其实步骤很简单,只是自己找错了地方。首先,GITHUB下载工程,然后本地构建 ASM 子工程,得...

2018-07-11 09:48:59 3405 2

原创 R 生成图片的中文问题

使用下面的命令生成图片的 PDF 文件,则中文无法显示,同时,如果使用 RCaller 的 java 库执行时,程序会直接报错的,大意就是无法识别中文字符。&gt; pdf('logistic_roc_graph2.pdf')&gt; plot(ss,main='logistic', xlab='1-specific', ylab='灵敏度')There were 18 warnings (u...

2018-04-10 15:55:56 1544

原创 使用SqlRender命令行将Sql Server语法的Sql转成Oracle

首先下载 SqlRender 包到本地,然后 Dos 进入 %R_HOME%/library/SqlRender/java 路径,可看见 SqlRender.jar :进入该目录,然后照着例子做就可以将 Sql 文件从 Sql Server 转成 Oracle,比如命令:java -jar SqlRender.jar D:/software/R-3.4.3/library/DrugsInPeds/...

2018-04-04 10:35:40 493

原创 install_github无法下载 R 包的变通方法

---------------update on 2019/12/03----------------今天要下载一个 fifer 的包,由于这个包已经不在 CRAN 上面了,无法按照下文从 github 上下载源码(找不到源码仓库)然后install.packages 的方式安装了。Google 了一下,How to install a package not located on ...

2018-04-03 16:47:55 20001 10

原创 Redis事务里错误对事务的影响

网友写的 Redis的事务 并没有对里面的 case3:全体连坐 和 case4 :冤头债主(哪个执行失败就失败,其他成功就成功) 并没有解释两个区别。其实 Redis Transactions 里 “Errors inside a transaction” 段落有句 “If there is an error while queueing a command, most clients will...

2018-02-12 10:45:12 947

原创 高并发下防止商品超卖的Redis实现

朋友面试被问到高并发下,如何防止10个商品被超卖,当时想到了消息队列。我也搜了下,都是推荐内存处理秒杀类的高并发抢购,减库存则是通过异步的方式写到数据库,但是在这之前就已经对秒杀成功的用户完成了登记。看了网友的答案,总结大致如下:1. 首先定义一个 Redis 队列名为 sku:awards,里面的元素的值都是比如 1,只是用来代表一个商品,元素的个数则是供秒杀的商品总数。2. 因为 Redis ...

2018-02-09 09:33:31 9392 1

原创 Redis无侵入式地缓存业务查询数据

这里是根据我们自己的业务特点(极少数据更新且不要求数据精确,某些查询的时间又比较长),我们采用了 Redis 做缓存,使用 Hash 数据结构缓存数据。我们的业务查询都是通过 Service 层整合多个 DAO 完成 DTO 的组装,基于业务特点,没必要将各个 DAO 的数据缓存,而是直接缓存 Service 的最终 DTO 结果。首先,在 Spring Boot 里实例化 RedisTempla

2018-01-18 11:48:38 1003

原创 Spring boot 工程设置上下文路径时的 Websocket 配置

项目中用的 Websocket,可以参考 Using WebSocket to build an interactive web application ,我用的是 Maven 构建的工程。教程不难,但是有几个新手需要注意的地方,特别是重构老工程,容易眼花。第一个就是 Websocket 前后端的纽带配置,也就是继承了 AbstractWebSocketMessageBrokerConfigu

2017-12-06 11:28:15 3388

原创 RestTemplate 引起的 "enq: TX - Row Lock Contention"

一个需求:服务实例 A 和服务实例 B 是同一个应用的不同实例,只是数据库不同。现在 A 创建一些数据并做分析,程序对所有 ID 特殊处理后原封不动地插入到 B 上并且做同样的分析,大致代码如下:@Transactionalpublic Integer processRestRequest(CohortSyncDTO dto){ logger.info("进入单队列远程REST请求的处理方

2017-11-27 17:48:46 326

原创 使用 Rserve 实现 R 程序的复杂数据返回

在 RCaller 无法返回复杂数据的研究 我们知道 RCaller 无法处理复杂数据的返回,那么就看看其他工具吧,比如 Rserve。使用下来的感觉是 Rserve 虽然能把值都给你,但是怎么获取却是一个艰难的过程,比如和 RCaller 一样,对矩阵值的读取也是先列后行,定位到具体的值的变量上,API 显然没有与时俱进,不用泛型,使用古老的 Vector 类型,经常要强制转型,要不是 de

2017-09-22 16:10:32 992

原创 RCaller 无法返回复杂数据的研究以及解决方案

在 Java调用基于 R 的 One-Way ANOVA检测 文章里,通过 cbind 我们可以返回多个数据,但是里面的数据都是简单类型,所有能正常工作,但是我在做 Propensity Score Match 的时候调用 MatchIt 函数,我需要将分析结果数据全部返回,下面是数据在 RGui 里面的样子:获取各个 Matrix 的函数:我的程序是这样的:RCall

2017-09-22 15:41:27 644

原创 使用 java8 实现List到Array的转换

开发中需要调用第三方的库,有些 API 的入参要求是 double[] 数组,程序根据用户在页面的输入,计算出一个 double[] 作为返回值的结果,然后调用这个 API。往往无法预先知道这个 double[] 数组的大小,就不能直接定义一个 double[] 的变量,只能借助 List,先将数据放入 List, 再转换为 double[] 数组。这个很简单,一个 for 循环就搞定了,但是

2017-09-19 16:53:43 6118 1

原创 Java调用基于 R 的 One-Way ANOVA检测

本文主要说下面三点:1. R 的 ANOVA 测试默认是基于 Type I Sum of Squares,而 SPSS 默认则是 Type III 平方和的,所以需要对 R 做修改;2. 普通应用上,都是准备好一个 excel 文件,里面包含一个二维矩阵作为 SPSS / R 的数据输入;而 java 则是逐个计算变量 (列)的值,怎么构建 java -> R 的数据桥梁?3. jav

2017-09-14 17:03:53 1104

原创 MongoDB自增长主键,批量操作,distinct记录,条件组合查询

一,创建自增长主键在 mongodb 的命令行终端,创建一个 collection 比如 sequence,然后插入一条记录:MongoDB Enterprise > db.sequence.insert({_id:"userseq",seq:0})WriteResult({ "nInserted" : 1 })创建一个Service, 调用 mongodb 的一个 API,修改这个

2017-08-23 16:18:22 1431

原创 Spring Boot应用上下文启动前后代码执行插入点

Spring Boot 提供了若干个代码执行点的事件和监听器,见 Application events and listeners。Spring Boot 可以使用内置的 tomcat 启动,也可以使用外部的,依据打包方式的不同,实现代码略有不同。1. 打成 jar,使用内置的 tomcat 启动:@SpringBootApplication@ServletComponentScan

2017-08-11 12:10:21 1307

原创 应用程序通过WebSocket自行推送业务消息给Subscriber的实现

首先是使用 Spring Boot 构建包含 WebSocket 的工程。然后定义一个 Java-Config 的 WebSocket : @Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @

2017-07-12 17:01:49 905

原创 prevent jar from decompiling by golang solution

Actually the title for this article is not at the right point, but I think this is better to make others find it by search engine.The scenario I did this is we would like to protect code by encrypti

2017-07-01 09:53:43 628

原创 Empty repository的SVN工程在Spring Cloud Config下的问题

我们的SVN库在创建的时候使用了空库(推荐方式)创建的,这样就没有 trunk, branches, tags这些文件夹,也就是下面这个向导页的时候选择的是 Empty repository (recommended option):这样我们的工程是这个样子的:在配置 Spring Cloud Config 的客户端的时候我们需要配置下面四个属性:spring.appl

2017-06-29 16:27:51 1139

空空如也

空空如也

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

TA关注的人

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