SpringMVC类图关系
关系有点多,可能没法看,不过还算比较全。
@startuml
package org.springframework.web.servlet {
abstract HttpServletBean
abstract FrameworkServlet
class DispatcherServlet
interface HandlerMapping
interface HandlerAdapter
interface ViewResolver
interface HandlerExceptionResolver
interface HandlerInterceptor
interface AsyncHandlerInterceptor
interface View
class HandlerExecutionChain
HttpServletBean <|-- FrameworkServlet
FrameworkServlet <|-- DispatcherServlet
DispatcherServlet "1" *--> "N" HandlerMapping
DispatcherServlet "1" *--> "N" HandlerAdapter
DispatcherServlet "1" *--> "N" ViewResolver
DispatcherServlet "1" *--> "N" HandlerExceptionResolver
HandlerExecutionChain "1" *--> "N" HandlerInterceptor
AsyncHandlerInterceptor <|-- HandlerInterceptor
}
package org.springframework.web.servlet.handler {
abstract AbstractHandlerMapping
abstract AbstractHandlerMethodMapping
abstract AbstractUrlHandlerMapping
class SimpleUrlHandlerMapping
abstract AbstractDetectingUrlHandlerMapping
class BeanNameUrlHandlerMapping
class SimpleServletHandlerAdapter
abstract AbstractHandlerExceptionResolver
abstract AbstractHandlerMethodExceptionResolver
class SimpleMappingExceptionResolver
class MappedInterceptor
abstract HandlerInterceptorAdapter
class ConversionServiceExposingInterceptor
class UserRoleAuthorizationInterceptor
class WebRequestHandlerInterceptorAdapter
HandlerMapping <|-- AbstractHandlerMapping
AbstractHandlerMapping <|-- AbstractHandlerMethodMapping
AbstractHandlerMapping <|-- AbstractUrlHandlerMapping
AbstractUrlHandlerMapping <|-- SimpleUrlHandlerMapping
AbstractUrlHandlerMapping <|-- AbstractDetectingUrlHandlerMapping
AbstractDetectingUrlHandlerMapping <|-- BeanNameUrlHandlerMapping
HandlerAdapter <|-- SimpleServletHandlerAdapter
HandlerExceptionResolver <|-- AbstractHandlerExceptionResolver
AbstractHandlerExceptionResolver <|-- AbstractHandlerMethodExceptionResolver
AbstractHandlerExceptionResolver <|-- SimpleMappingExceptionResolver
AbstractHandlerMapping "1" *--> "N" HandlerInterceptor
HandlerInterceptor <|-- MappedInterceptor
AsyncHandlerInterceptor <|-- HandlerInterceptorAdapter
HandlerInterceptorAdapter <|-- ConversionServiceExposingInterceptor
HandlerInterceptorAdapter <|-- UserRoleAuthorizationInterceptor
AsyncHandlerInterceptor <|-- WebRequestHandlerInterceptorAdapter
}
package org.springframework.web.servlet.mvc.method {
abstract RequestMappingInfoHandlerMapping
abstract AbstractHandlerMethodAdapter
AbstractHandlerMethodMapping <|-- RequestMappingInfoHandlerMapping
HandlerAdapter <|-- AbstractHandlerMethodAdapter
}
package org.springframework.web.servlet.mvc.method.annotation {
class RequestMappingHandlerMapping
class RequestMappingHandlerAdapter
class ExceptionHandlerExceptionResolver
class ResponseStatusExceptionResolver
class ModelAndViewMethodReturnValueHandler
class ViewMethodReturnValueHandler
class ResponseBodyEmitterReturnValueHandler
class StreamingResponseBodyReturnValueHandler
abstract AbstractMessageConverterMethodProcessor
class HttpHeadersReturnValueHandler
class CallableMethodReturnValueHandler
class DeferredResultMethodReturnValueHandler
class AsyncTaskMethodReturnValueHandler
class RequestResponseBodyMethodProcessor
class ViewNameMethodReturnValueHandler
class ModelAndViewResolverMethodReturnValueHandler
class PathVariableMethodArgumentResolver
class PathVariableMapMethodArgumentResolver
class ServletModelAttributeMethodProcessor
class MatrixVariableMapMethodArgumentResolver
class MatrixVariableMethodArgumentResolver
class RequestPartMethodArgumentResolver
class ServletCookieValueMethodArgumentResolver
class SessionAttributeMethodArgumentResolver
class RequestAttributeMethodArgumentResolver
class ServletRequestMethodArgumentResolver
class ServletResponseMethodArgumentResolver
class HttpEntityMethodProcessor
class RedirectAttributesMethodArgumentResolver
class UriComponentsBuilderMethodArgumentResolver
RequestMappingInfoHandlerMapping <|-- RequestMappingHandlerMapping
AbstractHandlerMethodAdapter <|-- RequestMappingHandlerAdapter
AbstractHandlerMethodExceptionResolver <|-- ExceptionHandlerExceptionResolver
AbstractHandlerExceptionResolver <|-- ResponseStatusExceptionResolver
HandlerMethodReturnValueHandler <|-- ModelAndViewMethodReturnValueHandler
HandlerMethodReturnValueHandler <|-- ViewMethodReturnValueHandler
AsyncHandlerMethodReturnValueHandler <|-- ResponseBodyEmitterReturnValueHandler
HandlerMethodReturnValueHandler <|-- StreamingResponseBodyReturnValueHandler
AbstractMessageConverterMethodArgumentResolver <|-- AbstractMessageConverterMethodProcessor
HandlerMethodReturnValueHandler <|-- AbstractMessageConverterMethodProcessor
HandlerMethodReturnValueHandler <|-- HttpHeadersReturnValueHandler
AsyncHandlerMethodReturnValueHandler <|-- CallableMethodReturnValueHandler
AsyncHandlerMethodReturnValueHandler <|-- DeferredResultMethodReturnValueHandler
AsyncHandlerMethodReturnValueHandler <|-- AsyncTaskMethodReturnValueHandler
AbstractMessageConverterMethodProcessor <|-- RequestResponseBodyMethodProcessor
HandlerMethodReturnValueHandler <|-- ViewNameMethodReturnValueHandler
HandlerMethodReturnValueHandler <|-- ModelAndViewResolverMethodReturnValueHandler
AbstractNamedValueMethodArgumentResolver <|-- PathVariableMethodArgumentResolver
HandlerMethodArgumentResolver <|-- PathVariableMapMethodArgumentResolver
ModelAttributeMethodProcessor <|-- ServletModelAttributeMethodProcessor
HandlerMethodArgumentResolver <|-- MatrixVariableMapMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- MatrixVariableMethodArgumentResolver
AbstractMessageConverterMethodArgumentResolver <|-- RequestPartMethodArgumentResolver
AbstractCookieValueMethodArgumentResolver <|-- ServletCookieValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- SessionAttributeMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- RequestAttributeMethodArgumentResolver
HandlerMethodArgumentResolver <|-- ServletRequestMethodArgumentResolver
HandlerMethodArgumentResolver <|-- ServletResponseMethodArgumentResolver
AbstractMessageConverterMethodProcessor <|-- HttpEntityMethodProcessor
HandlerMethodArgumentResolver <|-- RedirectAttributesMethodArgumentResolver
HandlerMethodArgumentResolver <|-- UriComponentsBuilderMethodArgumentResolver
}
package org.springframework.web.servlet.mvc {
class HttpRequestHandlerAdapter
class SimpleControllerHandlerAdapter
class WebContentInterceptor
HandlerAdapter <|-- HttpRequestHandlerAdapter
HandlerAdapter <|-- SimpleControllerHandlerAdapter
HandlerInterceptor <|-- WebContentInterceptor
}
package org.springframework.web.servlet.view {
class BeanNameViewResolver
class ContentNegotiatingViewResolver
class ViewResolverComposite
abstract AbstractCachingViewResolver
class XmlViewResolver
class UrlBasedViewResolver
class AbstractTemplateViewResolver
class InternalResourceViewResolver
class ResourceBundleViewResolver
abstract AbstractView
abstract AbstractUrlBasedView
abstract AbstractTemplateView
class InternalResourceView
class JstlView
class RedirectView
ViewResolver <|-- BeanNameViewResolver
ViewResolver <|-- ContentNegotiatingViewResolver
ViewResolver <|-- ViewResolverComposite
ViewResolver <|-- AbstractCachingViewResolver
AbstractCachingViewResolver <|-- UrlBasedViewResolver
AbstractCachingViewResolver <|-- XmlViewResolver
AbstractCachingViewResolver <|-- ResourceBundleViewResolver
UrlBasedViewResolver <|-- AbstractTemplateViewResolver
UrlBasedViewResolver <|-- InternalResourceViewResolver
View <|-- AbstractView
AbstractView <|-- AbstractUrlBasedView
AbstractUrlBasedView <|-- AbstractTemplateView
AbstractUrlBasedView <|-- InternalResourceView
AbstractUrlBasedView <|-- RedirectView
InternalResourceView <|-- JstlView
}
package org.springframework.web.servlet.view.freemarker {
class FreeMarkerViewResolver
class FreeMarkerView
AbstractTemplateViewResolver <|-- FreeMarkerViewResolver
AbstractTemplateView <|-- FreeMarkerView
}
package org.springframework.web.servlet.view.velocity {
class VelocityViewResolver
class VelocityLayoutViewResolver
AbstractTemplateViewResolver <|-- VelocityViewResolver
VelocityViewResolver <|-- VelocityLayoutViewResolver
}
package org.springframework.web.servlet.mvc.support {
class DefaultHandlerExceptionResolver
AbstractHandlerExceptionResolver <|-- DefaultHandlerExceptionResolver
}
package org.springframework.web.servlet.view.groovy {
class GroovyMarkupViewResolver
AbstractTemplateViewResolver <|-- GroovyMarkupViewResolver
}
package org.springframework.web.servlet.view.jasperreports {
class JasperReportsViewResolver
UrlBasedViewResolver <|-- JasperReportsViewResolver
}
package org.springframework.web.servlet.view.script {
class ScriptTemplateViewResolver
UrlBasedViewResolver <|-- ScriptTemplateViewResolver
}
package org.springframework.web.servlet.view.tiles3 {
class TilesViewResolver
UrlBasedViewResolver <|-- TilesViewResolver
}
package org.springframework.web.servlet.view.xslt {
class XsltViewResolver
UrlBasedViewResolver <|-- XsltViewResolver
}
package org.springframework.web.method {
class HandlerMethod
AbstractHandlerMethodMapping "1" *--> "N" HandlerMethod
}
package org.springframework.web.method.support {
interface HandlerMethodArgumentResolver
interface HandlerMethodReturnValueHandler
interface AsyncHandlerMethodReturnValueHandler
RequestMappingHandlerAdapter "1" *--> "N" HandlerMethodArgumentResolver
RequestMappingHandlerAdapter "1" *--> "N" HandlerMethodReturnValueHandler
HandlerMethodReturnValueHandler <|-- AsyncHandlerMethodReturnValueHandler
}
package org.springframework.web.servlet.mvc.annotation {
interface ModelAndViewResolver
RequestMappingHandlerAdapter "1" *--> "N" ModelAndViewResolver
}
package org.springframework.http.converter {
interface HttpMessageConverter<T>
RequestMappingHandlerAdapter "1" *--> "N" HttpMessageConverter
}
package org.springframework.web.method.annotation {
abstract AbstractNamedValueMethodArgumentResolver
class RequestParamMapMethodArgumentResolver
class ModelAttributeMethodProcessor
abstract AbstractMessageConverterMethodArgumentResolver
class RequestHeaderMethodArgumentResolver
class RequestHeaderMapMethodArgumentResolver
abstract AbstractCookieValueMethodArgumentResolver
class ExpressionValueMethodArgumentResolver
class ModelMethodProcessor
class MapMethodProcessor
class ErrorsMethodArgumentResolver
class SessionStatusMethodArgumentResolver
class RequestParamMethodArgumentResolver
HandlerMethodArgumentResolver <|-- AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- RequestHeaderMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- AbstractCookieValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- ExpressionValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver <|-- RequestParamMethodArgumentResolver
HandlerMethodArgumentResolver <|-- RequestParamMapMethodArgumentResolver
HandlerMethodArgumentResolver <|-- ModelAttributeMethodProcessor
HandlerMethodReturnValueHandler <|-- ModelAttributeMethodProcessor
HandlerMethodArgumentResolver <|-- AbstractMessageConverterMethodArgumentResolver
HandlerMethodArgumentResolver <|-- RequestHeaderMapMethodArgumentResolver
HandlerMethodArgumentResolver <|-- ModelMethodProcessor
HandlerMethodReturnValueHandler <|-- ModelMethodProcessor
HandlerMethodArgumentResolver <|-- MapMethodProcessor
HandlerMethodReturnValueHandler <|-- MapMethodProcessor
HandlerMethodArgumentResolver <|-- ErrorsMethodArgumentResolver
HandlerMethodArgumentResolver <|-- SessionStatusMethodArgumentResolver
}
package org.springframework.web.servlet.i18n {
class LocaleChangeInterceptor
HandlerInterceptorAdapter <|-- LocaleChangeInterceptor
}
package org.springframework.web.servlet.resource {
class ResourceUrlProviderExposingInterceptor
HandlerInterceptorAdapter <|-- ResourceUrlProviderExposingInterceptor
}
package org.springframework.web.servlet.theme {
class ThemeChangeInterceptor
HandlerInterceptorAdapter <|-- ThemeChangeInterceptor
}
@enduml