下午Jerry问如何写一段代码让JVM堆溢出,栈溢出和永久内存溢出。研究下,觉得蛮有意思的,一些有两篇文章,可以作为参考。http://blog.163.com/kesic2004_com/blog/static/16552947920116132450431/
JAVA中的指针,引用及对象的clone:
http://www.ibm.com/developerworks/cn/java/l-jpointer/index.html
FilterDispatcher can be replaced by StrutsPrepareAndExecuteFilter.
Struts2 Architecture
IBATIS3.X中的autoMappingBehavior的值可以被设置为三个定义在AutoMappingBehavior里的常量:NONE,PARTIAL,FULL。用来指定IBatis是否以及如何自动将列映射到字段/属性。
PARTIAL:只是自动映射简单、非嵌套的结果集。
FULL: 将会自动映射任何复杂的(嵌套或非嵌套)的结果集。默认情况下为PARTIAL。
我们在定义一个resultType="Map"的时候, 那么Ibatis将返回两个Key,一个是数据库里定义原始字段名称,另外一个是将该字段uppercase后的新字段名称,就是为了满足上面的匹配,该处理是在FastResultSetHandler.getRowValue()里完成的。
例如数据库定义的字段为"userId",Ibatis将返回"userId"和"USERID",所以如果你想返回一个Map类型,最好定义一个resultMap并且resultType为Map,将要返回的字段在此map一下就ok了。
在Struts2和Spring都提供了管理资源的类,到底如何取舍苦恼啦好几天。经过最终研究还是决定用Spring的ReloadableResourceBundleMessageSource来管理系统资源文件。
我们知道Java提供的ResourceBundle是用来管理解析资源文件的,根据Locale来解决所谓资源国际化的问题。所以在很多框架在解决资源国际化的问题都用到他。
这包括Struts2的LocalizedTextUtil类和Spring的ResourceBundleMessageSource类,注意Spring的ReloadableResourceBundleMessageSource使用Properties而不是ResourceBundle来处理的。
Struts2的ActionSupport所提供一些方便管理message的方法都是缘于implements TextProvider and LocaleProvider,在内部定义TextProvider textProvider = new TextProviderFactory().createInstance(getClass(), this),并用textProvider来实现TextProvider接口所提供的方法。TextProviderSupport提供一些实现,包括定义ResourceBundle和L
[More...]