Spring (二) OOP V.S AOP

  1. 介绍
    1. 这是两种不一样的编程思想就比如初中数学中学习的横纵坐标,一种是横向的一种是纵向,OOP是表明X轴而AOP表明Y轴,以下图:
    1. 数学几乎能够解释生活中全部的现象,不管是物体运动仍是静止,也能够经过数学总结计算出不少规律推进社会发展,数学里面的思想发放已经渗透到了各行各业,也包括软件计算机更离不开数学做为支撑。
  1. 各有千秋
    1. 爱因斯坦之因此是一个伟大的人在于它为人类作出了重大贡献,提出了著名的相对论:认为任何事物都不是独立的都会相互做用,某一个事物在不一样环境下结论和用途等都是不一样的,一样这个理论也适用于OOPAOP
    1. OOP是面向对象编程是静态的,而AOP为面向切面动态的,在程序运行时不须要改变程序代码,只须要配置一下便可实现增长删除功能,使得编程变成的简单化了,代码更加独立,耦合性下降,说的更严格一些AOP遵循OOP原则,它是OOP的扩展、补充。
  1. 原理
    1. 每一种技术它的原理都是重中之重,了解了原理了解了产生、发展、消亡的过程才会真正理解本质,用AOP这么一个的词来表明面向切面编程,也许和我同样你对AOP仍是有些陌生,可你是否对代理模式也陌生呢,其实,AOP没有什么只不过呢用设计模式用的很巧妙,经过代理为目标对象或类增长新的功能,看起来咱们并无对目标对象写任何代码。
    2. Java中最经常使用的两种实现代理方式是JDKCGLIB,分别是JavaSpring提供给咱们的,SpringIOC容器管理AOP类实现可配置的切向服务。
    3. AOP主要用于处理切向性质的服务,好比日志记录、事务管理、权限管理、缓存、安全检查等等,AOP已经成为了解决这类问题的一种经常使用解决方案。
    4. 学是为了用上, 让咱们来看一下如何用Spring IOC/AOP管理事务。
  1. 应用
    1. 下面这段代码是物料维护中对事务的配置,每一个系统中配置都是很相似的,会了这种方法在别的系统中也是这样配置。
    1. 代码事务配置*.xml
      1. <!-- 配置sessionFactory -->
        		<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        			<property name="configLocation">
        				<value>classpath:hibernate.cfg.xml</value>
        			</property>
        		</bean>
        		<!-- 配置事务管理器 -->
        		<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        			<property name="sessionFactory">
        				<ref bean="sessionFactory"/>
        			</property>
        		</bean>
        		<!-- 哪些类哪些方法使用事务-->
        		<aop:config>
        			<aop:pointcut id="allManagerMethod" expression="execution(* com.bjpowernode.drp.service.*.*(..))"/>
        			<aop:advisor advice-ref="txAdive" pointcut-ref="allManagerMethod"/>
        		</aop:config>
        		
        		<tx:advice id="txAdive" transaction-manager="transactionManager">
        			<tx:attributes>
        				<tx:method name="add*" propagation="REQUIRED"/>
        				<tx:method name="delete*" propagation="REQUIRED"/>
        				<tx:method name="modify*" propagation="REQUIRED"/>
        				<tx:method name="*" propagation="REQUIRED" read-only="true"/>
        			</tx:attributes>
        		</tx:advice>
        

    1. 另外一种实现方式是经过Annotation注解形式,这种方式不用写配置文件,感兴趣的人们能够试试。
  1. AOP正愈来愈普遍和受到不少编程人员的青睐,可见编程向着简单方向发展的趋势。
相关文章
相关标签/搜索