spring学习笔记(三)我对AOP理解】的更多相关文章

spring 学习(三):aop 学习 aop 概念 1 aop:面向切面(方面)编程,扩展功能不修改源代码实现 2 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码 3 aop底层使用动态代理实现 (1)第一种情况,有接口情况,使用动态代理创建接口实现类代理对象 (2)第二种情况,没有接口情况,使用动态代理创建类的子类代理对象 aop 操作术语 Joinpoint(连接点):类里面可以被增强的方法,这些方法称为连接点. Pointcut(切入点):所谓切入点是指我们要对哪些Joinpo…
先了解AOP的相关术语:1.通知(Advice):通知定义了切面是什么以及何时使用.描述了切面要完成的工作和何时需要执行这个工作.2.连接点(Joinpoint):程序能够应用通知的一个"时机",这些"时机"就是连接点,例如方法被调用时.异常被抛出时等等.3.切入点(Pointcut)通知定义了切面要发生的"故事"和时间,那么切入点就定义了"故事"发生的地点,例如某个类或方法的名称,Spring中允许我们方便的用正则表达式来指…
系统中的业务可以分为核心关注点和横切关注点. 核心关注点时业务处理的主要流程,而横切关注点是与核心业务无关但更为通用的业务. 各个横切关注点离散地穿插于核心业务之中,导致系统地每一个模块都与这些业务具有很强的依赖性,当需要添加新的横切功能时,需要大幅修改已有的代码,这些都严重影响了系统的可维护性和可拓展性. AOP要解决的就是整个问题,使用AOP框架后,能够将这些影响多个类的通用性服务抽取出来(即切面),并通过配置的方法明确再哪些位置插入这些服务:系统运行后,AOP框架会在指定的时机自动运行这些…
什么是面向切面编程 先大概了解一下部分术语 横切关注点:软件开发中,散布于多出的功能称为横切关注点(cross-cutting concern),简单的可以描述为可以影响应用多处的功能,比如日志.安全. 切面:切面能帮我们模块化横切关注点,如图所示,三个不同的模块,每个模块都是为特定业务服务,但是这些模块都需要类似的辅助功能,例如安全.事务管理.面向切面,可以使我们在一个地方定义通用功能,以声明的方式定义这个功能要以何种方式在何处使用,无需修改受影响的类,横切关注点可以被模块化为一个特殊的类,这…
Spring之面向切面编程 一.理解何为面向切面编程 对于这个的理解,我觉得Spring实战中的例子讲得很明白: 假设我现在是一个小区用户,每个月小区都要收电费,这时候就会来人查看电表,算出来这个月电费是多少,然后让我去结账. 但在我很小的时候,其实电费是每个人家里有电表,要自己充电费,如果没电了就会断电,所以经常会出现在家里用着用着电,突然断电的情况,这时候就要下楼看电表,检查是没电费了还是跳闸了. 电对家庭而言十分重要,哪里都离不开用电,但是我们更关注吃饭.睡觉.游戏等等跟我们密切相关的事情…
Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hibernate等其他众多的框架. 具体描述Spring: 1.轻量级:Spring是非侵入性的,基于Spring来开发的应用中的对象可以不依赖于SpringAPI. 2.依赖注入(DI) 3.面向切面编程(AOP) 4.容器,Spring是一个容器,包含并且管理应用对象的生命周期. 下面介绍环境的搭建,首先下…
除了组件扫描与自动装配之外还有基于Java代码的装配与基于XML的装配. 有一些场景是我们不能用自动装配的,比如我们要给第三方库中的组件装配到我们的应用中,这时自动装配无效,因为自动装配只能扫描本应用中的包. 这时我们就要在基于代码代码的装配和基于XML的装配中进行选择,前面我们说到了JavaConfig相比XML更强大更安全. 一.基于Java代码的装配Bean(JavaConfig) 但是JavaConfig又与Java有所区别. 概念上  JavaConfig是配置 与应用的其他代码业务逻…
本节需要导入spring-aop包 注解 使用注解的目的是为了代替配置,在使用注解时,省略键时,则是为value赋值. 扫描某个包下的所有类中的注解 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.or…
第一步:注解配置业务类 使用@Component("Pservice")注解ProductService 类 package com.spring.service; import org.springframework.stereotype.Component; @Component("Pservice") public class ProductService { public void doSomeService() { System.out.println(&…
原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent).事务管理(Transaction Management).安全管理(Security).日志管理(L…