Spring (二) OOP V.S AOP
来源:互联网 发布:来肯云商进销存软件 编辑:程序博客网 时间:2024/05/21 11:31
- 介绍
- 这是两种不同的编程思想就好比初中数学中学习的横纵坐标,一种是横向的一种是纵向,OOP是代表X轴而AOP代表Y轴,如下图:
- 数学几乎可以解释生活中所有的现象,无论是物体运动还是静止,也可以通过数学总结计算出很多规律推动社会发展,数学里面的思想发放已经渗透到了各行各业,也包括软件计算机更离不开数学作为支撑。
- 这是两种不同的编程思想就好比初中数学中学习的横纵坐标,一种是横向的一种是纵向,OOP是代表X轴而AOP代表Y轴,如下图:
- 各有千秋
- 爱因斯坦之所以是一个伟大的人在于它为人类做出了重大贡献,提出了著名的相对论:认为任何事物都不是独立的都会相互作用,某一个事物在不同环境下结论和用途等都是不同的,同样这个理论也适用于OOP和AOP。
- OOP是面向对象编程是静态的,而AOP为面向切面动态的,在程序运行时不需要改变程序代码,只需要配置一下即可实现增加删除功能,使得编程变成的简单化了,代码更加独立,耦合性降低,说的更严格一些AOP遵循OOP原则,它是OOP的扩展、补充。
- 原理
- 每一种技术它的原理都是重中之重,了解了原理了解了产生、发展、消亡的过程才会真正理解本质,用AOP这么一个的词来代表面向切面编程,也许和我一样你对AOP还是有些陌生,可你是否对代理模式也陌生呢,其实,AOP没有什么只不过呢用设计模式用的很巧妙,通过代理为目标对象或类增加新的功能,看起来我们并没有对目标对象写任何代码。
- Java中最常用的两种实现代理方式是JDK和CGLIB,分别是Java和Spring提供给我们的,Spring用IOC容器管理AOP类实现可配置的切向服务。
- AOP主要用于处理切向性质的服务,比如日志记录、事务管理、权限管理、缓存、安全检查等等,AOP已经成为了解决这类问题的一种常用解决方案。
- 学是为了用上,让我们来看一下如何用Spring IOC/AOP管理事务。
- 应用
- 下面这段代码是物料维护中对事务的配置,每个系统中配置都是很类似的,会了这种方法在别的系统中也是这样配置。
- 代码事务配置*.xml
<!-- 配置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>
- 另一种实现方式是通过Annotation注解形式,这种方式不用写配置文件,感兴趣的人们可以试试。
- AOP正越来越广泛和受到很多编程人员的青睐,可见编程向着简单方向发展的趋势。
- Spring (二) OOP V.S AOP
- AOP/OOP
- spring aop编程(二)
- Spring AOP简介二
- Spring AOP(二)
- spring AOP之二
- Spring AOP(二)
- Spring AOP (二)
- Spring AOP (二)
- Spring Aop (二)
- Spring AOP (二)
- Spring(一)——闲扯AOP与OOP
- spring学习之AOP(二)
- Spring AOP详解(二)
- spring随笔(二) AOP
- spring初学二(AOP)
- spring aop(二)--基于CGLib
- Spring IOC AOP (二)
- 设计模式之(一)Factory模式
- python 判断进程是否存在+获取进程占用内存值
- 简单四则运算(华为2011机试题)
- C# 调用C++ dll 方法返回char* 乱码
- Windows下codeblocks+wxWidgets的安装配置
- Spring (二) OOP V.S AOP
- cocos2dx中的touch检查是否选中了控件
- 人生感悟
- Android:Camera的使用,并处理手机拍照后上传图片被旋转的问题
- Redis实战
- 长沙网络赛G,H,J
- void 指针(2013-09-23 优酷土豆笔试)
- Linux统计/监控工具SAR详细介绍
- 关于 STM32 的 IAP 概念和应用笔记