Spring AOP的最佳实践

  • 时间:
  • 浏览:1
  • 来源:uu快3下载网址_uu快3IOS下载_电脑版

对于unchecked exception来说,不管应用抛出何种类型的unchecked exception,最终都需用人进行干预,很久unchecked exception利于提供足够的信息,相应人员就可利于够进行处置。

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

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

当系统含有多个地方很久抛出unchecked exception的很久,在引入Fault Barrier概念很久,亲戚亲戚大伙 很久能 在每个调用的最顶层,分别去掉 异常处置逻辑对其进行处置;不过,unchecked exception可做的事情很少,通常或多或少记录日志、通知相应人员。或多或少,那此相同的逻辑实现可利于够归并到同时进行统一处置,对于系统的Fault来说,它实际上或多或少并是否是 横切关注点(cross-cutting concern)。

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

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

很久,亲戚亲戚大伙 完正可利于够实现很久对应Fault处置的Aspect,让其对系统中所有很久的Fault情况表进行统一处置,并是否是 Aspect就称之为Fault Barrier。基本的处置模式如下图所示:

亲戚亲戚大伙 通常将Java中的异常类型分为以下并是否是 类型:

javax.servlet.Filter是Servlet规范为亲戚亲戚大伙 提供的并是否是 AOP支持,通过它,亲戚亲戚大伙 可利于够为基于Servlet的Web应用去掉 对应的资源访问控制。基于Filter的Web应用的资源访问控制,仅仅是特定领域的安全检查需求,而通过AOP,亲戚亲戚大伙 可利于够为任何类型的应用去掉 安全支持。

exception barrier pattern.jpg

对于Spring MVC框架,可利于够通过继承SimpleMappingExceptionResolver处置RuntimeException及其子类来构建fault barrier。通过覆写resolveException()土方式,在使用默认土方式路由请求到很久通用的错误页面很久,让他去掉 自定义的异常处置;对于3.x很久的版本,可利于够直接使用@ExceptionHandler注解,完成全局异常处置功能。具体细节可利于够参考Spring MVC Exception Handling Example这篇文章。

技术文章Effective Java Exception中,作者将unchecked exception对应的情况表称之为Fault,而将checked exception对应的情况表称之为Contingency,而Fault Barrier要处置的或多或少unchecked exception。

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

安全检查属于系统的并是否是 横切关注点,按照很久的土方式进行系统开发,势必让那此安全检查逻辑散落到系统各处,处置安全检查的最好土方式或多或少AOP。在Spring社区,很久有性性性性心智心智性性早熟图片 图片 期的句子的安全框架供开发者使用,那或多或少Spring Security。

AOP应用的很久主要业务场景是为系统透明地增加缓存支持。缓存可利于够在很大程度上提升系统的性能,但它都在业务需求,或多或少系统需求

为了处置需用去掉 的缓存实现逻辑影响业务逻辑的实现,亲戚亲戚大伙 可利于够让缓存的实现独立于业务对象的实现之外,将系统中的缓存需求通过AOP的Aspect封装。

java exceptions class hierarchy