RESTEasy当中HttpServletDispatcher,FilterDispatcher和SpringContextLoaderListener的整合方式(下)

这这篇文章中,主要分析一下上篇当中看的一些classes的关系结构图。首先是核心的SpringBeanProcessor和围绕着它一系列的classes的分析。

SpringBeanProcessor

SpringBeanProcessor的「类图」如下:

看下它的constructor:

可以看到注入了几个resteasy的核心classes。

下面是postProcessBeanFactory()的逻辑:

上面的方法调用processBean()方法,下面是processBean()方法的逻辑:

把上面的SpringBeanProcessor用起来的class是SpringContextLoaderListener

如上图所示,SpringContextLoaderListener调用SpringContextLoaderSupport。其中SpringContextLoaderSupport里面有一个customizeContext()方法。这个方法的逻辑如下:

可以看到这个方法里面会加载SpringBeanProcessor。然后看一下SpringContextLoaderListener这个class里面的具体方法。

SpringContextLoaderListener

看一下这个class的customizeContext()方法:

可以看到方法里对SpringBeanProcessor的调用。

最后看一下SpringBeanProcessorServletAware这个class。

SpringBeanProcessorServletAware

这个class的说明如下:

从上面的class可以看到这个SpringBeanProcessorServletAware实际是扩展了SpringBeanProcess,然后实现了spring的ServletContextAware接口。以下是相关的class diagram:

可以看到这个封装用于servlet的环境,并且是实现了spring的ServletContextAware接口。

以上就是对resteasy-spring模块的一个基本分析。

最后给出与resteasy-spring模块加载机制相关的jira issues:

My Github Page: https://github.com/liweinan

Powered by Jekyll and Theme by solid

If you have any question want to ask or find bugs regarding with my blog posts, please report it here:
https://github.com/liweinan/liweinan.github.io/issues