1.介绍Aop:
- AOP(Aspect Oriented Programming,面向切面编程),通过提供另一种思考程序的方式来补充OOP(Object Oriented Programming,面向对象编程)。AOP是横向抽取,OOP是纵向抽象。切面可以用于事务管理、日志等方面的模块化
2.定义AOP术语
- Aspect(切面)
- Join Point(连接点)
- Advice(通知/增强)
- Pointcut(切点)
- In- troduction(引入)
- Target Object(目标对象)
- AOP Proxy(AOP代理)
- Weaving(织入)
Spring切面可以应用5中通知: - 前置通知(Before):在目标方法或者说连接点被调用前执行的通知;
- 后置通知(After):指在某个连接点完成后执行的通知;
- 返回通知(After-returning):指在某个连接点成功执行之后执行的通知;
- 异常通知(After-throwing):指在方法抛出异常后执行的通知;
- 环绕通知(Around):指包围一个连接点通知,在被通知的方法调用之前和之后执行自定义的方法。
切入点和连接点的匹配,是AOP的关键
3.Spring AOP
- Spring AOP用纯Java实现,目前仅支持方法调用作为连接点。
- Spring AOP通常和Spring IoC容器一起使用
4.Hello的前置增强练习
-
pom.xml中添加AOP相关依赖
pom.xml.png
pom1.xml.png
pomxml2.png -
Hello接口和实现类
Hello.png
HelloImpl.png -
MyBeforeAdvice类
MyBeforeAdvice.png -
配置文件
application.xml.png -
应用主类
HelloApp.png -
运行结果
结果.png
5.实战:模仿连接数据库的操作
-
UserDao接口
UserDao.png -
UserDaoImpl类
UserDaoImpl.png -
MyBeforeAdvice前置增强类
MyBeforeAdvice.png -
配置文件
sql.xml.png -
UserDao单元测试类
UserDaoTest.png -
运行结果
User结果.png
网友评论