Spring (二) OOP V.S AOP
- 介绍
- 这是两种不同的编程思想就好比初中数学中学习的横纵坐标,一种是横向的一种是纵向,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的更多相关文章
- spring(二) AOP之AspectJ框架的使用
前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以 ...
- Spring的第三天AOP之xml版
Spring的第三天AOP之xml版 ssm框架 spring AOP介绍 AOP(Aspect Oriented Programming),面向切面编程.它出来的目的并不是去取代oop,而是对它的 ...
- Spring (五):AOP
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...
- 如何快速理解Spring中的DI和AOP
前言 Spring框架通过POJO最小侵入性编程.DI.AOP.模板代码手段来简化了Java 开发,简化了企业应用的开发.POJO和模板代码相对来说好理解,本篇重点解读下DI和AOP. 一 DI DI ...
- Spring全家桶——SpringBoot之AOP详解
Spring全家桶--SpringBoot之AOP详解 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方 ...
- Spring框架IOC容器和AOP解析
主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置 一.S ...
- spring 基本操作总结主要是aop以及依赖注入的基本配置
一所需架包 spring commom-logging.jar spring.jar 注解 common-annotation.jar aop面向切面 aspectjrt.jar aspect ...
- Spring入门(9)-AOP初探
Spring入门(9)-AOP初探 0. 目录 什么是面向切面编程 AOP常见术语 AOP实例 参考资料 1. 什么是面向切面编程 Aspect Oriented Programming(AOP),即 ...
- spring 纯注解方式 与AOP
spring注解方式 以前我也使用过纯注解方式.现在在这里做个记录 我们先认识几个我们都耳熟能详的注解 @configuration :从spring3.0这个注解就可以用于定义配置类,可以替换xml ...
随机推荐
- java web实现img读取盘符下的图像
最近做了一个项目,用户上传图片后通过img控件显示出来.大家都知道img通过src属性就可以显示图片.如<img src="http://127.0.0.1/a/b/abc.jpg&q ...
- win8 安装myeclipse 失败 MyEclipse ForSpring 安装失败
好像是main方法.jar无法载入之类的.. 可能是权限的问题哦.. 使用管理员权限试一下..
- Java并发编程之ConcurrentHashMap
原文地址:http://www.iteye.com/topic/1103980 ConcurrentHashMap 是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功 ...
- MYSQLI DEMO
1.Select // DEMO mysqli连接方式参考 $db = new mysqli("localhost:3306", "root", "& ...
- No2_3.接口继承多态_Java学习笔记_多态
***多态***1.多态性:通常使用方法的重载(Overloading)和重写(Overriding)实现类的多态:2.重写之所以具有多态性,是因为父类的方法在子类中被重写,方法名相同,实现功能不同. ...
- Python基础第五天
双层装饰器 字符串格式化 Python字符串格式有2种方式:百分号方式.format方式:建议使用format方式 1.百分号方式 格式:%[(name)][flags][width].[precis ...
- pyqt5模块
- windows安装配置mysql-5.7.13-winx64方法
1.mysql-5.7.13-winx64.zip下载 官方下载地址:http://dev.mysql.com/downloads/mysql/ 2.解压到D:\mysql\mysql-5.7.13- ...
- Linux中重命名文件
linux下重命名文件有两种方式: 1.较简单的处理命令:mv mv 原文件名 新文件名 如:mv myFile newName 将MyFile重命名为newName. 2.linux提供了一个重命名 ...
- [TYVJ] P1423 GF和猫咪的玩具
GF和猫咪的玩具 描述 Description GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1---n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同.GF左手拿起金 ...