谁能解释一下java面向切面编程的思想 以及具体的使用方式

Python027

谁能解释一下java面向切面编程的思想 以及具体的使用方式,第1张

面向切面编程(AOP),就是关注程序运行的过程,切面就是要把方法切开,分别执行前,执行中,执行后(可能更细化)等多个步骤,分别针对这三个阶段进行处理。以获得逻辑过程中各部分之间低耦合性的隔离效果。

具体使用场景:

事务管理:我们在操作数据库的时候需要在操作前打开事务,结束后提交事务(或回滚事务),按往常的编码方式,我们会在每个方法前、后都添加一些事务操作的重复的代码,使得每个类都与事务操作相耦合;而使用了AOP,代码上看上去就是直接操作的数据库,而我们通过某种机制,可让代码在你不察觉的情况下进行了事务开启和提交(或回滚),事实上Spring就提供了这种事务机制。

差不多的场景还有日志的记录

面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。

可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。