Spring中对于代理类子类实例化时的代理创建问题

     在spring中,通常在进行事务处理时,我们都会写如一段事务配置文件来保证相应的service类被代理成受事务控制的。那么对于那些没有配置成事务的Service,spring是否也会创建相应的代理类,并且在某些方法上也会追加相应的事务呢。

继续阅读“Spring中对于代理类子类实例化时的代理创建问题”

BeanFactory与ApplicationContext对事务等的支持的不同

     beanFactory与ApplicationContext在具体使用时,它们在使用以及对j2ee开发上,支持是不一样的。具体就表现在spring对两者的具体实现上。   

继续阅读“BeanFactory与ApplicationContext对事务等的支持的不同”

使用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类并没有正确的被编织。

继续阅读“使用spring aspect ltw和tomcat进行web开发的aspect加载问题”

spring和aspectj的结合inject原理(下篇)

     上篇讲解了在spring中aspectj,对普通@Transactional的事务控制支持,这篇主要了解一下spring的@Configurable对新建对象的spring属性支持,并顺带发布一个简单的rich domain的例子:)
    上篇地址:http://www.iflym.com/index.php/code/the-theory-about-spring-and-aspectj-pre.html

继续阅读“spring和aspectj的结合inject原理(下篇)”

spring和aspectj的结合inject原理(上篇)

     最近研究下aspectj,特别是对里面的代码编织和上下文控制有兴趣。后面看了下spring对aspectj的支持,以及简单了解了一下spring与aspectj结合的产品spring roo。这里主要介绍一下由aspectj支持的@transactional注释和@configurable原理,具体它们之间的关系以及由此衍生的domain静态编织等。

继续阅读“spring和aspectj的结合inject原理(上篇)”