Spring AOP的最佳实践

  • 时间:
  • 浏览:3
  • 来源:uu快3官网app_uu快3豹子赚钱

对于unchecked exception来说,不管应用抛出何种类型的unchecked exception,最终都可不都可不还可以人进行干预,而且我unchecked exception不需要 提供足够的信息,相应人员就可不都可不还可以进行解决。

AOP应用的一些 主要业务场景是为系统透明地增加缓存支持。缓存可不都可不还可以在很大程度上提升系统的性能,但它都不 业务需求,一些 系统需求

技术文章Effective Java Exception中,作者将unchecked exception对应的情况称之为Fault,而将checked exception对应的情况称之为Contingency,而Fault Barrier要解决的一些 unchecked exception。

安全检查属于系统的三种横切关注点,按照一些 的办法进行系统开发,势必让那些安全检查逻辑散落到系统各处,解决安全检查的最好办法一些 AOP。在Spring社区,肯能有心智成熟是什么是什么是什么 图片 期期期的安全框架供开发者使用,那一些 Spring Security。

官网上的这篇文章:Caching Data with Spring,讲述了Spring Boot中提供的对Cache操作的支持,非常简单!

Spring Security是一套框架,专注于为Java应用提供验证和授权功能。跟大多数Spring项目同类,Spring Security的威力在于它具备良好的可拓展性,用于满足各种定制的需求。Spring Security具备如下社会形态:

为了解决可不都可不还可以再加的缓存实现逻辑影响业务逻辑的实现,大伙儿可不都可不还可以让缓存的实现独立于业务对象的实现之外,将系统中的缓存需求通过AOP的Aspect封装。

而且,大伙儿全部可不都可不还可以实现另另两个多对应Fault解决的Aspect,让其对系统中所有肯能的Fault情况进行统一解决,你这一Aspect就称之为Fault Barrier。基本的解决模式如下图所示:

大伙儿通常将Java中的异常类型分为以下三种类型:

exception barrier pattern.jpg

当系统富含多个地方肯能抛出unchecked exception的一些 ,在引入Fault Barrier概念一些 ,大伙儿肯能会在每个调用的最顶层,分别再加异常解决逻辑对其进行解决;不过,unchecked exception可做的事情很少,通常一些 记录日志、通知相应人员。一些,那些相同的逻辑实现可不都可不还可以归并到同去进行统一解决,对于系统的Fault来说,它实际上一些 三种横切关注点(cross-cutting concern)。

抛开业界对checked exceptionunchecked exception的论战不谈,重点看着两类异常的应用场景:

对于Spring MVC框架,可不都可不还可以通过继承SimpleMappingExceptionResolver解决RuntimeException及其子类来构建fault barrier。通过覆写resolveException()办法,在使用默认办法路由请求到另另两个多通用的错误页面一些 ,愿意再加自定义的异常解决;对于3.x一些 的版本,可不都可不还可以直接使用@ExceptionHandler注解,完成全局异常解决功能。具体细节可不都可不还可以参考Spring MVC Exception Handling Example这篇文章。

Java中的异常层次体系如下图所示:

本文为《Spring揭秘》第11章的阅读笔记,该书对Spring的基本原理进行了厚度剖析,是我目前看一遍的最好的Spring中文资料。

javax.servlet.Filter是Servlet规范为大伙儿提供的三种AOP支持,通过它,大伙儿可不都可不还可以为基于Servlet的Web应用再加对应的资源访问控制。基于Filter的Web应用的资源访问控制,仅仅是特定领域的安全检查需求,而通过AOP,大伙儿可不都可不还可以为任何类型的应用再加安全支持。

java exceptions class hierarchy