在上一篇中,说明了对于非匹配的Tx2类,Spring仍然会创建Tx2的代理类(前提是它的父类是pointcut匹配的),那么aop中如何来判断Tx2的方法是否应该被拦截呢。这得归结于spring在创建代理过程中对于每个方法的匹配问题,如果匹配断言,那么就会被拦截,否则不会被拦截。
分类:编程开发
Spring中对于代理类子类实例化时的代理创建问题
在spring中,通常在进行事务处理时,我们都会写如一段事务配置文件来保证相应的service类被代理成受事务控制的。那么对于那些没有配置成事务的Service,spring是否也会创建相应的代理类,并且在某些方法上也会追加相应的事务呢。
(转)Servlet 工作原理解析(以tomcat7为基础)
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是如何启动的? Servlet 容器如何解析你在 web.xml 中定义的 Servlet ?用户的请求是如何被分配给指定的 Servlet 的? Servlet 容器如何管理 Servlet 生命周期?你还将了解到最新的 Servlet 的 API 的类层次结构,以及 Servlet 中一些难点问题的分析。
本文转自 许令波(来自淘宝),原文为 Servlet 工作原理解析
BeanFactory与ApplicationContext对事务等的支持的不同
beanFactory与ApplicationContext在具体使用时,它们在使用以及对j2ee开发上,支持是不一样的。具体就表现在spring对两者的具体实现上。
增强jpda以进行java程序的调试开发(转自taobao开发博客)
在平常的开发过程中,我们经常需要在项目已经运行的情况下,修改java代码,并在不重新启动web容器(如tomcat)的情况下,进行hotswap调试开发。这是由java的jpda功能来提供的。然而,默认的jpda只允许方法内部实现的修改,对于增加方法,删除方法等操作,是不支持的,这种情况下必须重新启动web容器再进行调试开发。而通过修改jvm,来增加java的调试,就可以达到默认的jvm所不能达到的效果。dcevm就是这么一个组件,它通过替换jvm来实现增加的jpda。
本文转自taobao中间件开发博客,原文地址为:hotswap 用户手册.
使用spring aspect ltw和tomcat进行web开发的aspect加载问题
使用spring aspect ltw与tomcat整合开发时,需要ltw一般有两种方法。一种是通过aspectj本身的classload机制,在tomcat启动脚本中,加载相应的java agent数据信息;另一种就是通过修改上下文的classLoader,而使用spring提供的tomcatInstrmentClassLoader来进行aspect的编织工作。
然而,在笔者的开发环境中,却发生了aspect无法被再次编织的问题。经过反复的检查,确认了是由于classLoader加载类的先后顺序以及spring对instrment的注入顺序发生了混乱,而导致aspect类并没有正确的被编织。
使用spring aspect ltw与tomcat整合开发时,需要ltw一般有两种方法。一种是通过aspectj本身的classload机制,在tomcat启动脚本中,加载相应的java agent数据信息;另一种就是通过修改上下文的classLoader,而使用spring提供的tomcatInstrmentClassLoader来进行aspect的编织工作。
然而,在笔者的开发环境中,却发生了aspect无法被再次编织的问题。经过反复的检查,确认了是由于classLoader加载类的先后顺序以及spring对instrment的注入顺序发生了混乱,而导致aspect类并没有正确的被编织。