Java

JAVA里没法强行终止一个线程

    一个线程可能不会响应 thread.interrupt()方法。而且,如果线程不响应这个方法,也就不会响应 thread.stop()方法。 所以,这个线程就死不了。

打印小片断,免得写System.out.println()

private static void p(Object o) { System.out.println(o); } private static void p(int o) { System.out.println(o); } private static void p(long o) { System.out.println(o); } private static void p(boolean o) { System.out.println(o); } private static void pc(java.util.Collection c) { java.util.Iterator it = c.iterator(); while (it.hasNext()) { p(it.next()); } } private static void pa(Object[] c) { if …

打印小片断,免得写System.out.println() Read More »

配置文件的分类存放 — 例

6.4 配置文件的分类存放 代码中的配置文件可以分为两大类: 1. 只在开发时修改,而不能在运行时修改的配置文件,如Spring的Bean注入配置,Hibernate的字段映射等。此类文件若发生变更,则相当于JAVA源代码发生变更,必须由开发人员完成。因此此类文件适合放在classpath下。即web/WEB-INF/classes中。 2. 适于运行时修改的配置文件,它们代表着系统参数,跟着生产环境的变化而变化,如 线程池配置。为了方便部署,此类文件不应与java字节码混在一起,即不能在classpath下。此类文件必须放在non-classpath-config中。由于系统的分布式特性,non-classpath-config下又设置了两个目录:     a) process-common-config. 对所有进程来说配置相同的配置,如数据源配置;或者只为一个进程使用,不为其他进程使用的配置文件。     b) process-specific-config. 在不同进程中,有不同的配置。如不同进程就有不同的log4j文件路径。

[sitemesh]与 jsp:include 配合使用的问题

如果用了sitemesh,那么在它的decorator:body 中再次使用 jsp:include 时要注意 1.如果再次被包含的页面内容很大,而且放在最后,可能会导致浏览器中的整个页面坍塌 1.如果在decorator:body 中使用了两次 jsp:include ,也可能会导致浏览器中的整个页面坍塌 页面坍塌 就是 页面的布局混乱、而且内容残缺,有的地方会出现html源码 以上问题是在将sitemesh与tomcat一起使用时发现的

[java excel api] 写工作表的代码

WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls")); WritableSheet sheet = workbook.createSheet("First Sheet", 0); Label label = new Label(0, 2, "A label record"); sheet.addCell(label); Number number = new Number(3, 4, 3.1459); sheet.addCell(number); workbook.write(); workbook.close(); http://www.andykhan.com/jexcelapi/tutorial.html 经过研究源码发现, 如果workbook是用 WritableWorkbook createWorkbook(OutputStream output) 方法生成的,则workbook.close()后,相应的output也会被自动关闭

[EhCache] 如何在集群环境中使用Ehcache

     很遗憾,EhCache不是session中的东西,因此不能仅仅利用应用服务器的 session replication使它在各个节点间维持一致    透明性是没有了,还是要显式地弄一下这个东西的。不过还好,EhCache提供的缓存分布机制还是比较简单的。只需要配置一下,不用写代码。    具体怎么配可以去官方网站看看。这里用最简短的话介绍一下实现的方案:每个实例配一个监听进程,用来接收其他实例发来的缓存通知信息;实例之前可以用组播协议互相通知,也可以用普通的IP协议进行多播。    以下是官方的正式文档:    设计思路: http://ehcache.sourceforge.net/documentation/distributed_design.html     配置办法: http://ehcache.sourceforge.net/documentation/distributed_caching.html