Fork me on GitHub


在Quartz中动态设置定时任务的执行时间

Quartz是软件开发中常用的任务调度框架,实际中通常结合 Spring 一起使用,并在 Spring 的配置文件中利用 0 0 12 ? * WED 这种方式以硬编码的方式配置定时任务的执行时间。有时候需要动态的设置定时任务的执行时间,如让用户自己选择何时备份数据,此时就需要采用动态设置其执行时间。

利用dom4j修改含有回车换行符的XML文件

这几天工作中遇到一个利用 dom4j 更新XML文件的任务,由于XML文件中部分属性包含有换行符,利用 dom4j(1.6.1) 默认的方法更新XML文件后换行符会丢失。 各种Google、StackOverflow折腾好久后终于解决该问题,简单记录下。

将基于Github Pages的自定义域名博客迁移到HTTPS

越来越多的网站和个人博客都变成 HTTPS ,而自己的博客一直都是用的是 HTTP 协议,作为一个具有强迫症的人,每次用 Chrome 浏览器打开个人博客时看见浏览器地址栏显示的"Chrome HTTP标识" 都感觉很不舒服。趁着前段时间不太忙,将个人博客从 HTTP 迁移到了 HTTPS ,先记录下。

从复杂代码中找出Bug的几种方法

工作中有时候会遇到某些大段复杂代码出现Bug的情况,不同于一般行数较小或逻辑较简单的代码,对于大段复杂的代码进行分析可能会很耗时,本文介绍几种个人在工作中用到的方法,供大家参考。

在不同版本的MyBatis中通过Log4j打印实际执行的SQL

项目中ORM框架用的是 MyBatis,最近由于业务上的需求将 MyBatis 从3.1.1升级到3.4.5,发现升级后通过 Log4j 显示SQL的配置方式发生了变化,由于变化较大,故先记录下。

在不重新编译的情况下直接修改Java Class文件中的内容

Java程序实际上执行的是Java文件编译后的Class文件,这是任何一个Java开发人员都了解的基本知识。若Java程序执行的结果不符合要求,通常的解决方法是先修改Java文件,重新编译成Class文件后再次执行。但有时候我们不能直接修改Java文件(如只有包含class文件的jar包),此时我们就只能直接修改Class文件,本文将展示在基于不同的需求通过可视化工具和Javassist库来直接对Class文件进行修改的方法。

解决EasyUI DataGrid中的行在列冻结时无法对齐的问题

相对于传统的用HTML中TABLE实现的表格,利用 EasyUI 中的 DataGrid 实现的表格具有很多优点,如可以 对列宽进行拖动调整、列冻结、行冻结、自定义格式化 等功能,故而在Web开发中得到了广泛的应用。最近自己在使用DataGrid的列冻结功能时遇到了由于某些单元格中的内容较多导致该行无法对齐的问题,由于当前在EasyUI官网中无法找到该问题的解决方案,自己研究DataGrid的实现原理后,找到了变通的解决方案,故先记录下。

4. [译]并发的模型

本文翻译自Java Concurrency / Concurrency Models

并发系统可以使用不同的并发模型来实现,并发模型是指线程在系统中如何写作来完成给定的任务。不同的并发模型以不同的方式拆分任务,线程间以不同的方式协作和通信,本文将深入研究在撰写本文时最流行并发模型(2015年)。

在MyEclipse项目中不能打开birt报表的解决方法

由于业务要求,需要在利用MyEclipse中开发的Web项目中添加Birt报表统计功能,新建完一个 report.rptdesign 文件后双击该文件出现如下错误:

3. [译]多线程的成本

本文翻译自Java Concurrency / Multithreading Costs

从一个单线程程序切换为多线程程序在给我们带来好处的同时也会产生一些额外的成本,不要因为会使用多线程就将一个程序变为多线程实现。在准备使用多线程时,我们应该有一个清楚的认识:使用多线程带来的好处大于其成本,当有不确定时,我们应该尝试度量应用程序的性能和响应性来决定是否采用多线程,而不是靠猜来决定。