
java技术
文章平均质量分 59
FoxMale007
让操作体验技术。所有文章均为纯原创。
鄙视是一种人权,你没办法剥夺他人,只能用结果重重的回应它 ------ 那个啥
展开
-
简化mybatis @Select IN条件的编写
最近从JPA切换到Mybatis,使用无XML配置,@Select注解直接写到interface上,发现IN条件的编写相当麻烦。实现简化的处理原创 2024-07-24 16:33:29 · 1107 阅读 · 0 评论 -
更改java jar时,It has been compressed and nested jar files must be stored without compression问题的解决
It has been compressed and nested jar files must be stored without compression问题的解决原创 2024-05-21 17:21:29 · 1402 阅读 · 1 评论 -
AutoTable, Hibernate自动建立表替代方案
之前一直使用JPA为主要ORM技术栈,主要是因为Mybatis没有实体逆向建表功能。虽然Mybatis有从数据库建立实体,但是实际应用却没那么美好:当实体变更时,往往不会单独再建立一个数据库重新生成表,然后把表再逆向为实体。最终的结果往往是维护一份数据库SQL,再同时维护一份实体对象,两者没有自动建立关联。AutoTable方案解决了这个问题原创 2024-05-05 22:47:18 · 1060 阅读 · 2 评论 -
Activiti7 开发快速入门【2024版】
记录开发最核心的部分,理论结合业务实操减少废话,从未接触工作流快速带入开发。假设你是后端的同学学过JAVA和流程图,则可以继续向后看,否则先把基础课程书准备好先翻翻。原创 2024-04-28 23:55:38 · 1255 阅读 · 0 评论 -
UUID转25位SN
分享一个自己写的UUID转25位SN编码的算法原创 2024-04-20 15:51:08 · 236 阅读 · 0 评论 -
DBUnit增强:填充随机数据和相对时间数据
测试环境验证时,遇到与当前相对时间相关的测试吗?准备一份SQL?隔一段时间就不能用了。每过一段时间去更新脚本或重置系统时间?看上去也不是很合适的解决方案。如果你遇到和我一样的问题,可以看下本人使用的这个解决方案原创 2024-04-18 16:55:02 · 527 阅读 · 0 评论 -
ccframe系统的链路追踪,用户ID追踪的实现
之前ccframe cloud V1用的是springcloud微服务,只需要在header将jwttoken一直传下去就没事,最近弄V2转dubbo发现用户id没有自动保存进数据库表。于是开始研究dubbo如何追踪,顺便把链路追踪ID的问题给一并解决掉原创 2024-04-13 09:06:15 · 846 阅读 · 0 评论 -
springboot整合Dubbo异常和多语言处理
Ccframe采用标准的spring data i18n方案。在处理多语言异常时,做了一些针对性的处理。包括以下几个方面:原创 2024-03-15 23:47:20 · 799 阅读 · 0 评论 -
JustAuth扩展:支持自动获得回调域名、使用redission作为Cache
JustAuth两个功能扩展:1)JustAuth默认使用sping-data-redis作为缓存接口,当前系统没有使用该redis驱动,由于已经使用了redission,不希望引入更多的架构。故需要扩展JustAuthCache接口2)JustAuth配置的登录回调地址必须写完整的域名。本着从哪里来,回哪里去的原则,回调的域名地址,95%需求都会跟请求的域名地址一致。这样只需要在请求时获得请求的域名地址即可,不用在配置文件里额外配置。让配置文件的redirect-uri真正成为URI而不是URL原创 2024-03-10 13:10:03 · 699 阅读 · 0 评论 -
Gradle多模块实践:dependencies的模组化导入
虽然maven和gradle能够自动处理依赖,但是觉得还不够。当java引入一个新组件时。如果全部引入,则会导致引入过多的jar;如果指定组件的各个模块,又需要逐条引入,尤其当需要其它模块支持时,当子模块多了后维护困难。我希望像POM那样,指定一个文件则引入了需要的一组组件。而且不用单独书写一个pom,因为一来每个模块要单独文件管理,二来不方便统一管理。于是寻找gradle脚本grovvy的实现方式。通过数小时的折腾,终于解决该问题。这样我们可以把多个组件引入的包定义为一个列表,需要时按列表名引入原创 2024-03-07 19:40:55 · 738 阅读 · 0 评论 -
因implements Interface书写顺序导致的Dubbo翻车实录
因implements Interface书写顺序导致的Dubbo翻车实录原创 2024-03-06 03:39:55 · 352 阅读 · 0 评论 -
MINIO自动创建bucket【Java】
刚整合完x-file-storage,发现之前写了一个自动创建minio bucket的代码。放到博客文章,以免以后找不到了。原创 2024-03-03 21:49:09 · 550 阅读 · 0 评论 -
OPENWRT本地局域网模拟域名多IP
本地配置MINIO服务时,会遇到域名多IP的需求。当某一个节点失效时,可以通过域名访问平滑过渡到其它的节点继续服务原创 2024-03-03 18:56:09 · 717 阅读 · 0 评论 -
zxing包引入后的编译错 dependencyManagement.dependencies.dependency.systemPath
springboot引入zxing后'dependencyManagement.dependencies.dependency.systemPath' for com.google.android:android:jar must specify an absolute path编译提示解决原创 2024-02-28 12:43:58 · 537 阅读 · 0 评论 -
为什么SpringBoot中Class.forName的类与引入组件(Jar包)用Class.forName得出的class不同
为什么SpringBoot中Class.forName的类与引入组件(Jar包)用Class.forName得出的class不同原创 2024-02-29 14:43:17 · 443 阅读 · 0 评论 -
JExcelWriter 基于模板填充的EXCEL导出,远离用代码调整样式的噩梦
JExcelWriter介绍基于EXCEL模板填充和XPATH数据规则的EXCEL导出工具使用模板导出的好处输出方便 能够灵活的组织对象结构基于XPATH语法 使用方便,简单易懂,W3C规范 查阅文档调整格式简单 设置行宽、设置行高、背景色、加粗加深,这些代码噩梦统统解决。您只需要拖拖拽拽,把格式定好即可。表头、统计行、表尾,一切都SO SEAY~使用步骤STEP1建立好你自己的EXCEL模板,各种格式,样式,间距STEP2将你要动态输出的部分,使用{=<原创 2021-04-22 22:45:06 · 612 阅读 · 0 评论 -
ES value source config is invalid 错误解决
今天写ES的聚合查询,遇到的value source config is invalid; must have either a field context or a script or marked as unwrapped的问题,记录一下,是因为忘记指定返回字段的别名了builder.addAggregation(AggregationBuilders.terms(Order.PLATFORM_ID).subAggregation(AggregationBuilders.sum(Or..原创 2021-04-20 11:54:33 · 2954 阅读 · 0 评论 -
quartz @DisallowConcurrentExecution无法禁止多机并发的解决方法
本次遇到这个问题是这样一个场景,某些计算需要较长的时间,并且监控的周期会比较短。每3S监控一次,且执行周期最长已经达到5S,由于定时任务执行逻辑下一次依赖上一次的结果,因此如果并发的情况下,会导致计算错误。在开发单个节点的时候,没有问题,当部署了多个执行阶段的时候,任务被并发的执行了。好了,现在的问题是。DisallowConcurrentExecution没有做到真正的多机非并发执行!解决方案是,增加分布式锁。为了不增加架构复杂度,直接引入了redisson红锁来进行处理。增加了BaseQuart原创 2020-12-30 12:15:19 · 6524 阅读 · 12 评论 -
SpringData Elasticsearch 方法名查询默认查询10条的问题
使用方法名来构建查询,曾经一直使用的好好的,突然有发现查询出来的记录不符合了。怎么查询也只有10条匹配,突然想到可能ES查询引擎本身的限制,一查果然是。https://knowledgebase.progress.com/articles/Article/ElasticSearch-returns-only-the-first-10-resultshttps://www.elastic.co/guide/en/elasticsearch/reference/6.3/search-request-fr原创 2020-10-11 14:35:28 · 3068 阅读 · 0 评论 -
Spring Scheduled业务向quartz无缝迁移
场景对于单机模式,spring Scheduled能够很方便的解决我们定时任务的问题。但是在集群(微服务)模式下,就不能使用单机的模式了,因为某些任务,是不可重复执行的。例如每月一次的月报统计,又例如定时向日志分析系统推送今天的本地日志,等等。功能目标我们希望按照以下的标准完成我们的迁移能够尽量不要调整业务代码,最好只需要Ctrl+CV即可完成调整 能够适配集群的工作模式分析问题根据以上目标,下一步会遇到一些问题:你需要几台服务器来运行你的定时任务 如何实现quartz的自动配原创 2020-09-22 11:54:20 · 481 阅读 · 0 评论 -
危险的Hibernate映射共用class及其解决
使用hibernate对于有交集字段结构或结构一样的表,有时候会很“正常”的想到一种“偷懒”的办法,就是让一个hbm映射定义映射到多个TABLE。例如表维表(或代码表)有结构: false 那么可能对该结构进行扩充出几个同样的hbm定义: name="my.model.LabelValueCode" extends="LabelValueCodeBase"原创 2008-08-05 10:07:00 · 877 阅读 · 0 评论 -
GXT3.X的CheckBoxListView
最新处理项目需要使用带勾选的列表,但是GXT3已经去掉了这个类,一看Sencha的官方论坛,尼玛居然要收费。于是自己DIY了一个,简单几行代码,方便好用。STEP1.定义一个用于列表的类,由于我的选择一般是以ID为关键选择数据的,因此定义了一个LabelValue类:import com.flipthebird.gwthashcodeequals.EqualsBuilder;/**...原创 2018-09-06 09:33:23 · 281 阅读 · 0 评论 -
[杂记]Weixin4j-server处理模式
maven上比较老牌的JAVA微信组件。com.foxinmy.weixin4j版本(gradle): api 'com.foxinmy:weixin4j-base:1.8.2' api 'com.foxinmy:weixin4j-mp:1.8.2' api 'com.foxinmy:weixin4j-server:1.1.9' 最近使用它的服务组件,顺便大概过了...原创 2018-08-13 16:32:47 · 357 阅读 · 0 评论 -
JAVA 操作防抖(非RxJava方案)
JAVA 操作防抖,在手机网络状态变化时发生了重复调用,因此需要进行防抖。本打算用RxJava方案的,发现没必要那么麻烦,就找了个现成的类修改了下,发现确实还比较好用,代码如下。package com.xxx.xxx;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.Executors;imp...原创 2018-07-14 11:02:26 · 2109 阅读 · 0 评论 -
Eclipse的CodeMix是个好东西,可惜现在的版本有个严重的BUG
安装完codemix后,vue也可以编写了。但是我的项目的编译永远不会停止,MYGOD。。。我的机器看了下网上的文章,说可能和maven什么的冲突,可我用的是gradle啊https://www.genuitec.com/forums/topic/myeclipse-professional-stackoverflow-building-workspace/将自动编译关掉后,貌似正常了,鱼与熊掌不...原创 2018-04-26 17:20:17 · 22781 阅读 · 2 评论 -
subclipse插件无法比较javascript文件的解决方案
subclipse插件比较javascript文件版本信息时,在部分机器会出现无法比较的情况,解决方案如下:把这个勾选去掉,就可以了。去掉勾选* Window > Preferences > Compare/Patch > General Tab* uncheck "Open structure compare automatically"被这个问题坑了一...原创 2018-12-20 23:22:35 · 356 阅读 · 2 评论 -
Eros开发框架自动路由配置的实现
弄过两个EROS项目,每次配置路由上总是有多多少少的差错,这次又要上一个页面较多的项目,下决心要把自动路由整一下,解放手动配置,“懒”出点新的高度。EROS项目配置甚是麻烦,vue-router每添加个页面配置一次就罢了。EROS框架得要配置两次,分别是:webpack打包配置——该配置在项目的confing/eros.dev.js,指定了哪些文件打包入bundle,如果没打包成功,您会得...原创 2019-01-03 20:21:26 · 744 阅读 · 0 评论 -
Spring 5.X WEB-MVC支持JSON忽略NULL属性的配置
最近研究EROS两端统一(WEB+Android),发现WEB端axios和bmAxios的处理方式不一致。这个将导致迁移后所有的null逻辑和undefined逻辑互换,为了避免这个业务问题,必须都统一起来。由于bmAxios包括WEEX底层都是使用fastjson做的JSON序列化,而fastjson默认的JSONObject又是忽略null属性的,导致和WEB的axios处理不一致。权衡...原创 2019-01-10 21:58:11 · 478 阅读 · 0 评论 -
WEEX 0.18 版本 input输入框组件 在安卓下input事件BUG原理及分析
最近捣鼓EROS框架,使用的是WEEX 0.18版本sdk。WEEX 0.18 版本的 input 尚存在BUG,表现为当使用v-model绑定值时,还原到绑定值原始状态时,无法触发input事件,此时还影响到v-model的绑定。 拿官方的例子:<input type="text" placeholder="Input Text" class="input" :autof...原创 2019-01-25 21:41:29 · 1701 阅读 · 0 评论 -
EROS/Weex WEBVIEW 在APP和WEB下字体大小不一致问题
Weex webview模块解决了html公告一类的问题,如果纯APP问题还不大。当多端统一开发时,会发现在不同的终端下,布局不一致了。尤其是使用rem的自适应大小。前端向朔的文章指出了这个问题。https://blog.youkuaiyun.com/u013778905/article/details/77972841我们采用方法3来处理。对应WEEX的模块是修改WXWebView.jav...原创 2019-03-13 18:13:14 · 559 阅读 · 0 评论 -
一句话解决Thumbnails缩略图工具PNG透明背景缩放后变黑问题
注意加红色的部分: Builder<BufferedImage> builder = Thumbnails.of(sourceImage).imageType(BufferedImage.TYPE_INT_ARGB).forceSize(width, height); builder.outputFormat("png").toFile...原创 2019-03-22 10:30:52 · 4503 阅读 · 0 评论 -
lmax.disruptor高效内存消息队列spring整合
一种基于spring的lmax.disruptor快速开发模板原创 2017-12-13 11:18:38 · 3576 阅读 · 8 评论 -
Spring-data +elasticsearch 2.4.4 整合搭建指南
博客被黑,天杀的把我置顶的精华文章给干掉了。幸好有人复制了此文,以得部分恢复。现在Spring-data 2.0.1已经release了,等有空升级至spring-data 2.0版本。Spring-data +elasticsearch 2.4.4 整合搭建指南最后更新: 17-3-241. 简介spring data是一个统一包括数据库系统和NoSQL数据存原创 2017-11-17 22:20:37 · 1751 阅读 · 0 评论 -
Hibernate 索引的缺陷
使用Hibernate schema反向自动建立数据表,发现索引部分还是很有缺陷1)无法建立聚集索引clusteredIndex2)无法指定索引列的先后顺序不知道后续的版本会不会解决这个问题更新12.01.30:找到解决办法了,使用hibernate-jpa-2.0-api即可,注意不要和geronimo-jpa_3.0_spec-1.1.1.jar原创 2011-10-24 11:14:55 · 3723 阅读 · 0 评论 -
spring mvc导致的已配置placeholder但是placeholder却无法注入的问题(使用annotation)
最近碰到一个很奇怪问题,spring controller注入对象可以,但是用@Value注入placehoder转换却死活不行,而其它的@Value却正常。查到最后突然发现是这样一个奇怪问题:在WEB-INF/springmvc-servlet.xml用了而其它的package scan却不在这个文件,于是把配置移动到resource下,一切正常了因此spring的base-package不要在springmvc-servlet里配置,否则可能导致placeholder无法转换原创 2011-05-25 15:43:00 · 3809 阅读 · 0 评论 -
Proxool 0.9.1 srping配置的BUG修正
Proxool 0.9.1 spring配置BUG修正原创 2011-01-03 14:56:00 · 3219 阅读 · 1 评论 -
给gwt项目添加了dynamic web project模块
给gwt项目添加了dynamic web project模块原创 2010-12-31 00:38:00 · 1464 阅读 · 0 评论 -
Delphi时间和Java时间的转换类。
这样一来,Delphi使用Webservice和JAVA通讯时,可以将DELPHI的时间直接传给JAVA。从而免去了时间字符串parse之间的消耗,提高的程序效率。Delphi时间实质就是double类型,整数部分表示天,小数部分表示当天时间,每毫秒为1/86400000。考虑到时区的转换后,JAVA和DELPHI时间之间的转换类如下:import java.util.Calendar;impor原创 2010-01-26 11:28:00 · 2558 阅读 · 0 评论 -
[转贴]spring中最强大的Advisor-DefaultPointcutAdvisor
Spring2中除了NameMatchMethodPointcutAdvisor和RegexMethodPointcutAdvisor提供了对一定命名规则和正则表达式切入点的封装,defaultPointcutAdvisor则提供了一切切入点的支持,Spring提供了4种用来定义切入的类,分别为:org.springframework.aop.support.NameMatchMethodPo转载 2008-08-05 12:20:00 · 2871 阅读 · 0 评论 -
自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象[修订081217]
最后更新:09-02-08bug fix:支持了Hibernate one-to-many映射到List的处理由于Json自己的String转换有问题,无法正确的转换中文为uxxxx的字符,因此改用DWR包内的JavascriptUtil处理String类型。可以直接引用,还可以拆离出来,因为仅是一个转换工具类,跟DWR的没有依赖关系。这样就可以采用ISO-8859-1编码来传递所有UNICODE原创 2008-01-07 17:21:00 · 6438 阅读 · 0 评论