`
gdfloyd
  • 浏览: 74032 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论
文章列表
最近研究了一下Logback这个日志框架,有个功能我是看重的,应用程序能够根据自己的领域配置属性来加载配置Logback, 实现根据运行时信息,把不同日志的输出的目标地点。在Log4j下,要实现这个复杂功能需要自己扩展代码实现,而在logback下现在只需要简单扩展和配置一下便可以了。另外,Logback可以自动清理过期的归档的日志,而Log4j仅仅支持滚动,需要应用或者系统层面来进行额外清理工作。我自己做了一个还算复杂的demo, 实现如下的功能: 如果存在应用程序业务领域或者运行模块的的日志文件路径,则日志记录到这个独立的文件,否则日志记录默认日志路径。 默认日志文件根据配置,来划分 ...
最近研究了一下Log4j这个被广发使用的日志组件,缘于三个问题:日志水平调整问题,日志运行时配置修改和日志模块化问题。Log4j不是一天两天的了,相信早就会有相应的解决方法。    先来看第一个问题。生产运行中考虑到日常资源消耗和运行性能是不宜开启低水平日志记录的。然而,一旦生产运行环境出现异常,没有相当详细程度的日志信息的话,要进行快速的定位分析准确的排查判断几乎是不可能的。这个矛盾令人十分纠结,是应该提高日志水平减少不必要的日志输出消耗呢,降低日志水平还是管它有理无理尽量详细记录呢。我的想法是两者都要兼顾,如果要做一个折衷的话,日志组件能够根据运行的记录水平,对日志内容进行细粒度输出 ...
Trac 安装过程记录   最近拿下载Trac1.0来安装到自己RedHat9 Linux VM上玩玩,有种找虐的感觉:不像MS的风格给你一个庞大的东东,让你一路只要点下一步便可,Trac毕竟是个免费的东西,安装起来依赖比较多,依赖又来自不同的Open Source Party,安装的时候,不是缺胳膊就是少腿,要把这些依赖分别一一安装。整个安装过程有点繁琐,决定把自己在Linux VM下整个折腾过程记录下来,供那些不熟悉Linux OS和不熟悉Linux 下软件安装的人,包括我自己以后参考。本文主要参考:   Trac官方安装指引文档 http://trac.edgewall.org ...
指定完整类名在各类开发配置中经常用到,特别在基于框架的开发中非常频繁,一般在Eclipse IDE中的操作就是:在PackageExplorer或者Project Explorer中展开类结构树->Right Click->Context Menu->Copy Qualified Name。我在想能不能偷懒一步呢?如果不展开类结构树,默认的Copy Qualified Name命令复制得到的是相对于workspace的absolute path (以/作为起始)。并且,对于classpath下的资源执行Copy Qualified Name命令得到的也是相对于workspace ...
  不知是不是Eclipse的生态策略和用户考虑,没有把MyEclipse那个Open in Explorer的小功能到整合到IDE。很多时候,是需要直接操作文件系统的。没有这个小功能,就只能:文件选中->右键快捷菜单Properties (Alt+Enter)->复制文件路径->Win+R->粘贴回车。这个是在Windows下的。如果经常打开命令行,以当前目录作为命令行的工作目录,还要手动输入CD命令,相当繁琐。于是就有了需求啦。在网上参考资料,最终效果图。为了简化操作,快捷键的必需的。这里我设了Ctrl +`和Ctril+1       代码和设 ...
  Hibernate使用不好就很容易出现性能问题。在这里总结一些方法以供参考。       1.按需加载 多对一的情况下一方的加载,一对多的情况多方的加载,默认都是延迟加载,为避免产生多条语句而导致多次DB往返,可以改变抓取策略,让Hibernate采用表连接来一次获取。例如,Item和History是一对多。 使用Hsql   From Item item join fetch item.historys 使用Crerteria   session. createCriteria(History.class).setFetchMode("item&quo ...
使用Maven + Hibernate + SpringTest框架进行单元测试Demo   之前有同事研究内嵌DB以便提供单元测试所需的数据环境,无果,毕竟难以完全实现各种类型DB的独有特性了。我们采用Mock的方式,进行依赖对象构建。由于系统没有基于依赖注入的进行建构,编写UnitTest很容易成了搭建复杂繁琐的系统环境,背离了“单元”的初衷。我在考虑,采用SpingTest框架为单元测试提供了便利的依赖注入管理设施,使我们从冗余复杂中解放出来。而使用Hibernate对底层持久化进行了屏蔽,很好实现了高层次API单元测试的DB独立性。Maven天生对UnitTest的内建支持, ...
最近学习SpringMVC,做了一个小Demo, 发现一个问题:无法绑定command对象List Field中的元素的属性。   Command Object 类似如下: public class CommandObject { private List<ListElement> mylist = new ArrayList<ListElement>(); // getter and setter } 这里list属性必须先行实例化,否则会错误。这个与Hibernate要求PO的一对多Set必须实例化一样。    页面大致如下:   ...
最近使用CI Server, 像hudson, cruisecontrol, luntbuild. 三者Luntbuild功能最全面, 当然crusecontrol,hudson也有丰富的plugin得到增强.   下载luntbuild1.6.2, 发现Luntbuild没有直接支持从版本管理工具中获取Revision来生成Build Version. Build Version可以使用OGNL来生成, 翻阅用户手册得知, 其OGNL的Root Object为Schedule, 决定改源码达到此功能.   学习了Ognl后并仔细阅读源码发现, com.luntsys.luntbuild ...
JMS Session和线程简析 与JMS API打交道主要是Session对象. 与Hibernate的Session设计思路一样, JMS Session是为单线程运行在单线程之下. 有了这点认识, 在并发控制线程同步方面就游刃有余得多了. 查阅官方文档, 总结如下, 下文主要翻译自JavaTM Message Service Specification V1.1  
最近遇到Connection Leak问题, 于是翻看了JMS Specification的关于Connection的章节, 并作一个简单总结. 对于JMS的概念, 文档如是说: 写道 JMS provides a common way for Java programs to create, send, receive and read an enterprise messaging system’s messages. ...... JM ...
background: 动手写一个去掉js comment的Maven Plugin, 用英文写练习练习,哈哈 steps: 1. New a maven project, the pom is like below. At the beginning I do not add the maven project api to the project, it is exhausting to find the project strutcture, build path etc and filter the resources that i want. It is better to inc ...
尝试使用Maven YUICompressor Plugin来处理, 痛苦的是多个js文件代码风格被yui认为错误, 决定自己手动处理. 不知何解,写入build目录的js文件, 在war打包时候重新拷贝webapp资源, 把去掉comment的js又重新覆盖了, 很是抓狂~~ 终于在官网查到相关参数,^_^ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> ...
Global site tag (gtag.js) - Google Analytics