<<上篇 | 首页 | 下篇>>

配置Tomcat和Eclipse集成调试来代替hot deploy热部署

JVM有一个 Java 平台调试架构( Java Platform Debugger Architecture , JPDA )支持Java程序调试,也就是说DEBUG调试与IDE开发工具无关,可以在eclipse, Intelli-J IDEA,netbeans进行DEBUG调试,JPDA也和应用服务器无关,可以在Weblogic,Jboss,Tomcat里进行DEBUG调试。

DEBUG支持实时代码修正,JPDA 实现了在运行中的应用程序中用经过修改的代码进行替换的能力,允许在调试器会话过程中更改源代码,要使用该功能,只需在编辑器中更改代码并恢复调试。所以,只要在eclipse等IDE里改了源代码并编译,马上就可以应用到运行中环境。在一定程度上,完全可以用eclipse等IDE的debug调试功能来代替应用服务器的hot deploy热部署。当然在某种情况下,hot deploy热部署还是需要的。

阅读全文……

Spring transaction事务的roll back回滚机制

之前的Domain Service Owner Transaction Design Pattern已经提到了Spring的事务机制和Spring事务设计, Spring的transaction事务管理应该是Spring应用广泛的最大原因,但是我们中国的Java开发者好像并不知道Spring的事务到底是怎么回事。所以,我转载一段Spring官方参考文档说明Spring的事务回滚机制。

Spring框架的事务基础架构代码将默认地 在抛出运行时和unchecked exceptions时才标识事务回滚。 也就是说,当抛出一个 RuntimeException 或其子类例的实例时。(Errors 也一样 - 默认地 - 标识事务回滚。)从事务方法中抛出的Checked exceptions将 被标识进行事务回滚。

阅读全文……

标签 : , ,

配置Spring+hibernate使用ehcache作为second-level cache

        大量数据流动是web应用性能问题常见的原因,而缓存被广泛的用于优化数据库应用。cache被设计为通过保存从数据库里load的数据来减少应用和数据库之间的数据流动。数据库访问只有当检索的数据不在cache里可用时才必要。hibernate可以用两种不同的对象缓存:first-level cache 和 second-level cache。first-level cache和Session对象关联,而second-level cache是和Session Factory对象关联。

        缺省地,hibernate已经使用基于每个事务的first-level cache。Hibernate用first-level cache主要是减少在一个事务内的sql查询数量。例如,如果一个对象在同一个事务内被修改多次,hibernate将只生成一个包括所有修改的UPDATE SQL语句。为了减少数据流动,second-level cache在Session Factory级的不同事务之间保持load的对象,这些对象对整个应用可用,不只是对当前用户正在运行的查询。这样,每次查询将返回已经load在缓存里的对象,避免一个或更多潜在的数据库事务。

阅读全文……