java
文章平均质量分 71
allen_jinjie
这个作者很懒,什么都没留下…
展开
-
解决 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 · 2550 阅读 · 0 评论 -
应用多节点部署,操作同步的实现方案
系统功能概述:我们的应用所面向的终端用户是医学人员,系统部署后,用户可以通过复杂的医学条件检索出符合条件的病人,称之为队列,然后定义变量,也就是再次查询每一个病人的具体信息,如年龄,性别,是否服药,检测的血压值是多少等等,有了这些数据,就可以做统计学方面的分析,得出一些医学结论。业务需求和解释:客户提出了一个应用多节点部署,并且操作同步的业务需求。这个客户是省市级的医院,其下还有乡镇,社区...原创 2020-03-16 12:26:17 · 1642 阅读 · 0 评论 -
利用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 · 1029 阅读 · 0 评论 -
springboot应用在内置tomcat和在独立tomcat里Listener加载顺序不同的问题
我们的一个语言国际化的实现思路是:通过Listener在应用被加载的时候读取properties 资源文件,然后把对象放入 ServletContext 中,I18NUtils 工具类通过注入ServletContext,实例化时从上下文获取对象,简化 API(读文件的时间放到应用启动而不是业务初次调用时)。@WebListenerpublic class VinciContextL...原创 2019-10-14 15:17:55 · 1540 阅读 · 0 评论 -
Oracle转PostgreSQL后,应用层修改时碰到的问题
使用 Ora2PG 完成Oracle到PostgreSQL迁移后,就需要修改Java应用的代码了,我们使用的是 Spring Boot + Druid + MyBatis,除了常规的函数不同要修改,比较琐碎的就属子查询要有别名和临时表的问题。这里,重点讲临时表碰到的问题:1. 使用 Ora2PG 工具后,发现所有的临时表定义都不在目标导出文件里。以前用Oracle,可以把临时表定义好,Or...原创 2019-01-31 10:37:47 · 1038 阅读 · 0 评论 -
高并发下防止商品超卖的Redis实现
朋友面试被问到高并发下,如何防止10个商品被超卖,当时想到了消息队列。我也搜了下,都是推荐内存处理秒杀类的高并发抢购,减库存则是通过异步的方式写到数据库,但是在这之前就已经对秒杀成功的用户完成了登记。看了网友的答案,总结大致如下:1. 首先定义一个 Redis 队列名为 sku:awards,里面的元素的值都是比如 1,只是用来代表一个商品,元素的个数则是供秒杀的商品总数。2. 因为 Redis ...原创 2018-02-09 09:33:31 · 9481 阅读 · 1 评论 -
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 · 362 阅读 · 0 评论 -
Spring boot 工程设置上下文路径时的 Websocket 配置
项目中用的 Websocket,可以参考 Using WebSocket to build an interactive web application ,我用的是 Maven 构建的工程。教程不难,但是有几个新手需要注意的地方,特别是重构老工程,容易眼花。第一个就是 Websocket 前后端的纽带配置,也就是继承了 AbstractWebSocketMessageBrokerConfigu原创 2017-12-06 11:28:15 · 3602 阅读 · 0 评论 -
使用 Rserve 实现 R 程序的复杂数据返回
在 RCaller 无法返回复杂数据的研究 我们知道 RCaller 无法处理复杂数据的返回,那么就看看其他工具吧,比如 Rserve。使用下来的感觉是 Rserve 虽然能把值都给你,但是怎么获取却是一个艰难的过程,比如和 RCaller 一样,对矩阵值的读取也是先列后行,定位到具体的值的变量上,API 显然没有与时俱进,不用泛型,使用古老的 Vector 类型,经常要强制转型,要不是 de原创 2017-09-22 16:10:32 · 1034 阅读 · 0 评论 -
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 · 1227 阅读 · 0 评论 -
使用 java8 实现List到Array的转换
开发中需要调用第三方的库,有些 API 的入参要求是 double[] 数组,程序根据用户在页面的输入,计算出一个 double[] 作为返回值的结果,然后调用这个 API。往往无法预先知道这个 double[] 数组的大小,就不能直接定义一个 double[] 的变量,只能借助 List,先将数据放入 List, 再转换为 double[] 数组。这个很简单,一个 for 循环就搞定了,但是原创 2017-09-19 16:53:43 · 6255 阅读 · 1 评论 -
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 · 1491 阅读 · 0 评论 -
Spring Boot应用上下文启动前后代码执行插入点
Spring Boot 提供了若干个代码执行点的事件和监听器,见 Application events and listeners。Spring Boot 可以使用内置的 tomcat 启动,也可以使用外部的,依据打包方式的不同,实现代码略有不同。1. 打成 jar,使用内置的 tomcat 启动:@SpringBootApplication@ServletComponentScan原创 2017-08-11 12:10:21 · 1357 阅读 · 0 评论 -
用迭代算法解决诊疗路径数据汇总
我们要就医院的数据做一个诊疗路径,也就是在某个疾病的治疗周期内或者吃了某个药的后续观察诊疗周期内,所有患者都经历了一个什么样的路径,并且每个路径上的节点都有哪些患者。这个诊疗路径有助于医生了解疾病或者药物的大概率有些路径,对治疗患者有一定的指导作用。比如,我们对于糖尿病,某个医院的诊疗路径可以说是下图的样子。也就是说患糖尿病的人有395人,但是第一步做检测的人有179,第一步是做手术的有145原创 2017-01-16 14:13:22 · 697 阅读 · 0 评论 -
用户账号不可同时两处登入系统的控制
需求是:如果账号已经在被使用,就不可再用此账号登录系统,需要等待前面那个用户主动退出或会话超时才可以登录系统。实现方案:在不考虑分布式的情况下,往ServletContext 放一个全局的变量,用来存储登录过的账号,每次用户登录,都去检查该账号是否在这个变量里,有就说明正在使用,需要等待。否则就成功登录并且把自己的SessionId 和账号用户名存放到这个全局变量里。1. 首先在 Spri原创 2017-03-16 18:32:48 · 974 阅读 · 0 评论 -
Update DB's User status when Session timeout
Recently I have a requirement to update User's online status when user's session timeout. The key point is to get User's id to update his online status.Though I had written a session listener to lis原创 2016-11-22 18:32:00 · 673 阅读 · 0 评论