AOP和IOC个人理解
14:18 2014/5/5
IOC inversion of control 控制反转 将new对象的权力由调用者转移到spring容器(即xml文件),Struts2与Spring整合(scope="prototype")由spring来维护struts 的生命周期,在启动web容器时spring容器创建action实例对象,又分两种方式: 第一种xml方式 需要set方法为被调用的属性赋值,xml中需要ref注入被调要的对象。 第二种注解方式 不需要set方法为被调用属性赋值,但需要在action层service层dao层的类上对应写上 @Controller,@Service,@Repository通过在属性上加上@Resource(name="")来为属性赋值,这一步相当于xml方式的ref。
事务管理器<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> 相当于切面需要注入sessionFactory
AOP Aspect Oriented Programming 面向切面编程 通过代理的方式在需要的时候通过切入点给指定位置的程序添加逻辑代码或功能。声明事务处理分为两种方式: 第一种xml方式 需要在xml中配置事务的通知(<tx:advice>里面放增删改查等方法的isolation="DEFAULT" propagation="REQUIRED" read-only="false"</tx:advice>) 用切面关联通知,然后再用通知关联切入点<aop:config>(即事务操作业务层)切入地点是所有service 包及其子包下类的所有方法。 第二种注解方式 使用注解的方式配置声明式事务处理,在Service层类中,@Transcational(事务处理的) <tx:annotation-driven transaction-manager="txManager"/> 不需要关联通知也不需要通知关联切入点