随笔分类 - Java
Java
摘要:前言 在分布式系统中经常会遇到某个业务仅需要单个节点执行的场景,通常这样做是为了解决并发引起的状态不一致问题。 但是为了防止出现单点故障,又需要为这些节点做故障转移的实现。 简单的方案是同时起多个节点,但是只有一个节点作为主节点执行业务,其他的作为备份节点需要实时跟踪主节点运行状态, 一旦发现主节点
阅读全文
摘要:BTrace简介 BTrace是一种安全,动态的Java跟踪工具。BTrace通过动态(字节码)检测正在运行的Java程序的类来工作。BTrace将跟踪操作插入到正在运行的Java程序的类中,并对跟踪的程序类进行热交换。 相关信息参考 https://github.com/btraceio/btra
阅读全文
摘要:工作中需要用到一个支持变量替换和自定义函数的模板表达式,发现现有的开源项目不能满足,于是自己造了个轮子。 该模板表达式核心就三个文件: ExpressionNode.java -- 表达式节点 public class ExpressionNode { /** 模板 **/ public stati
阅读全文
摘要:背景介绍 在某些项目中会使用插件化技术实现一些动态“插拔”或热更新的功能。一般的做法是,定义一个标准接口,然后将实现分离进行独立部署或更新。 现在有个场景,系统希望引入一些特殊的业务“函数”,并支持热更新。来看看我们是怎么实现的。 业务函数接口:IFunction.java /** 业务函数接口 *
阅读全文
摘要:最近项目上用到了Kafka(作为数据源接入),这里将自己的实践分享出来,供大家参考或针砭。 从网上查阅资料发现,基本上有2中与Kafka对接的方式: 1.Spring-Kafka 2.调用Kafka API自己实现ConsumerClient Spring-Kafka的基本原理就是Spring自动轮
阅读全文
摘要:上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远。其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点。 废话少说,直接进入正题。 首先拉取mysql镜像: 创建本地mysql目录: 在mysql/conf目录下创建配置文
阅读全文
摘要:今天收到一份代码,拖到IDE中发现乱码,看来下编码是GBK的(😓)。只能手写个小工具批量转换下。代码在这里分享下,需要的可自取。 核心文件就两个: ConverterUtil.java public class ConverterUtil { private static String lineS
阅读全文
摘要:工作中经常会遇到将行数据转换成Java(POJO)对象的场景,其中关于字段校验和类型转换的处理繁琐而冗余,对于有代码洁癖的人着实不能忍。这里分享下自己封装的工具代码,也许能够帮助你更简单地完成此类任务。 先将以下五个文件加入你豪华午餐(项目😄)中 FieldItem: /** * * @autho
阅读全文
摘要:在项目迭代开发中经常会遇到对已有功能的改造需求,尽管我们可能已经预留了扩展点,并且尝试通过接口或扩展类完成此类任务。可是,仍然有很多难以预料的场景无法通过上述方式解决。修改原有代码当然能够做到,但是这会增加许多附加成本,回归测试带来大量工作和一些潜在的未知风险。特别是一些极其重要的公共模块,可谓牵一
阅读全文
摘要:最近在做老项目改造,分享一个之前写的ibatis(这里特指ibatis2.x的版本)分页插件。 大致原理就是通过重写SqlExecutor的executeQuery方法,实现分页查询,支持mysql和oracle。 项目地址:https://git.coding.net/lichmama/ibati
阅读全文
摘要:使用Swagger自动生成API文档,不仅增加了项目的可维护性,还提高了API的透明度更利于快速测试等工作,便于更快地发现和解决问题。 本篇文章只记录整合过程,关于Security Configuration等其他特性这里就不展开讲了,感兴趣的可以通过以下链接了解更多。 参考文档: 项目中各组件的版
阅读全文
摘要:可将配置与工程分离,并减少一些分布式工程中关于配置的重复劳动。 至于,如果使用redis是不是一个更好的选择这就仁者见仁了。 配置样例: ConfigUtil: package com.lichmama.demo.common.util; import java.io.BufferedReader;
阅读全文
摘要:关于事件监听我们需要知道的一些基础知识。 a)事件三要素(who when what): b)事件模型的构成: c)事件流转过程: 那么基于以上背景知识,我们来是实现一个简单的监听器,并测试一下事件监听的完整流程。 根据事件三要素设计出一个简单合理的事件载体:Event 事件实现:MyEvent p
阅读全文
摘要:唠叨两句 需求背景 开始动手 编写服务代码(示例代码) 鉴权拦截器 编写配置类 修改CXF默认发布路径(application.properties) 启动项目后访问http://localhost:8000/soap/userService?wsdl 使用SoapUI测试一下,看上去没什么问题 客
阅读全文
摘要:*本例程序使用Jackson2.9.0,jackson1.x的处理方式稍稍有些不同。 在基于Spring&SpringMVC的Web项目中,我们常使用Jackson(1.x/2.x)来增加程序对Json格式的数据的支持。 因此,在实际应用中有个常见的需求:日期的格式化。 假设,User对象有个Dat
阅读全文
摘要:原文链接: DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等待时间等,基本功能都有,此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性有所下降,此外不提供连接池监控 co.u
阅读全文
摘要:项目上有个小需求,要限制访问者的IP,屏蔽未授权的请求。该场景使用过滤器来做再合适不过了。 SecurityFilter.java: web.xml增加配置: 尝试访问,结果如下: *如何在Filter中获取Response的内容?这个问题之前还真没思考过,搜索了下得知如下方法可行: 1.实现一个P
阅读全文
摘要:HttpsUtil.java 下载个文件(bing今日美图)测试下: 在weblogic中使用如上代码时,可能会出现ClassCastException,详情及解决方案可查看以下链接:
阅读全文
摘要:项目中最近用到这个东西,做下记录。 如下图,先准备好一个(office2003)word文档当做模板。文档中图片、姓名、性别和生日已经使用占位符代替,生成过程中将会根据实际情况进行替换。 然后将word文档另存为“Word XML文档” 使用xml编辑器打开test.xml,将下图中的BASE64字
阅读全文
摘要:漏洞描述 修复方式: 1.删除server/lib/uddiexplorer.war下的相应jsp文件。 2.配置访问权限,取消对外开放。 参考文档: http://blog.csdn.net/anhuixiaozi/article/details/51133356 http://blog.csdn
阅读全文

浙公网安备 33010602011771号