- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第十章SpringAOP本章目标了解SpringAOP机制的基本原理掌握SpringAOP的配置了解SpringAOP中的通知类型掌握SpringAOP的应用为什么需要AOP什么是AOPAOP是Aspect-OrientedProgrmming的简称,意思是面向方面编程。在业务系统中,总有一些散落、渗透到系统各处而且不得不处理的事情,比如安全验证。我们需要在页面上判断用户是否登录、当前登录用户是否有权限访问该页面,在action代码里还要限制用户是否通过直接在URL输入路径中绕过了页面的权限控制代码,甚至在业务层代码里,还要限制不同用户访问的不同数据。如何使用AOP假设,我们要给一个购书系统的业务逻辑方法添加业务日志功能,要求在其业务方法调用前记录日志,记录方法调用的时间,调用的业务方法名和调用的参数。分析本需求:我们先给出业务方法的实现,这里的业务代码仅是单纯的业务逻辑,没有日志记录。因为在AOP的思想里,日志代码是单独实现的,不能加在业务方法代码中。我们可以在运行逻辑代码之前做“织入”工作,将“方面代码”织入到业务系统中。实现模拟业务系统仅模拟业务逻辑层的两个方法:buy(购书)和comment(添加书评)。在使用Sping的时候,业务逻辑层也常被称作“服务层”。对应地,BookBiz也可命名为BookService。这仅是命名方式的不同,二者皆可,这里我们使用Biz的命名方式。编写方面代码这个分类是根据通知织入到业务代码时执行的时间划分的。前置通知是在方法执行前自动执行的通知,后置通知是在方法执行后自动执行的通知,环绕通知能力最强,它可以在方法调用前执行通知代码,可以决定是否还调用目标方法将方面代码织入到业务对象中如果直接访问原来的Bean,通知代码肯定不会被执行。Spring采用“代理”的方式将通知织入到原Bean中。Spring将原Bean和通知都封装到org.springframework.aop.framework.proxyfactory代理类别中。用户通过访问代理类访问原Bean,这样就能保证在目标方法调用前先执行前置通知的代码了。无需一行程序代码,只需要通过配置完成织入的过程即可,配置工作仍然是在Spring配置文件中完成的。AOP中的概念Aspect(切面):切面指横切性关注点的抽象,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面是对横切性关注点的抽象。JoinPoint(连接点):所谓连接点是指那些被拦截到的点。在Spring中,这些点指的是方法,因为Spring只支持方法类型的连接点(实际上连接点还可以是Field或类构造器)。Pointcut(切入点):所谓切入点是指我们要对哪些连接点进行拦截的定义。Advice(通知):所谓通知是指拦截到连接点之后所要做的事情。通知分为前置通知,后置通知,异常通知,最终通知和环绕通知。Target(目标对象):代理的目标对象。Weave(织入):织入是指将切面应用到目标对象并导致代理对象创建的过程。Introduction(引入):在不修改类代码的前提下,Introduction可以在运行期为类动态地添加一些方法或Field。使用Spring进行面向切面编程基于注解方式声明切面首先,启动对@Aspect注解的支持;接着,基于注解方式声明切面;最后,编写测试代码。基于XML配置方式声明切面首先,在Spring的配置文件中引入aop命名空间;接着,基于XML配置方式声明切面;然后,定义接口OrderService,再来定义该接口的实现类;最后在Spring配置文件Spring+JDBC组合开发JdbcTemplate是core包的核心类。它替我们完成了资源的创建以及释放工作,从而简化了JDBC的使用,通过传递一个DataSource引用来完成JdbcTemplate的实例化。JdbcTemplate的常用方法包括:update()方法:可以执行insert、update和delete语句。queryForXXX()方法:可以执行select语句。使用Spring+JDBC集成步骤使用Spring+JDBC集成步骤如下第一步,配置数据源第二步,配置事务配置事务时,需要在XML配置文件中引入用于声明事务的tx命名空间,事务的配置方式有两种:注解方式和基于XML配置方式。在Spring配置文件中引入用于声明事务的tx命名空间:事务传播属性
REQUIRED:业务方法需要在一个事务中运行。如果方法运行时,已经处在一个事务中,那么加入到该事务,否则为自己创建一个新的事务。NOT_SUPPORTED:声明方法不需要事务。如果方法
文档评论(0)