spring 各模块整理

spring4 官方模块图

spring5 从接口和关键类来认识spring

测试模块 test

spring-test

|- org.springframework
  |-mock
    |-env
      |- MockEnvironment
      |- MockPropertySource
    |-http
      |- client 客户端相关实现
      |- server  服务端相关实现
      |- MockHttpInputMessage
      |- MockHttpOutputMessage
    |-jndi
      |- ExpectedLookupTemplate jdni Mock实现
    |-web web相关mock 
  |-test
    |-annotation
    |-context
    |-jdbc
    |-util
    |-web
      |- client
      |- reactive
      |- servlet 
        |- htmlunit
        |- request
        |- setup
        |- MockMvc 提供服务器MVC测试支持
        |- MockMvcBuilder
        |- MvcResult 返回结果
        |- RequestBuilder 请求构造器
        |- ResultActions 结果处理动作接口
        |- ResultHandler 结果处理的handler
        |- ResultMatcher 结果处理的matcher

核心模块 core Container

spring-beans

|-org.springframework.beans
  |- BeanWrapper 提供对JavaBeans的底层扩展
  |-factory 提供基本的容器接口
    |- Aware spring内部的用来标记需要回调的接口
    |- BeanClassLoaderAware 用于回调获取类加载器
    |- Beanfactory bean工厂,spring容器的根接口 
    |- BeanfactoryAware 用于回调获取BeanFactory
    |- BeanNameAware 用于回调获取BeanName
    |- DisposableBean 用于释放bean相关资源  org.springframework.context.ApplicationContext 关闭时会释放所有的单例资源
    |- FactoryBean 工厂bean,spring bean的原型,容器只负责管理工厂bean的生命周期而不是工厂Bean创建对象的生命周期
    |- HierarchicalBeanFactory 等级化工厂Bean,继承关系
    |- InitializingBean 用于bean的所有属性被BeanFactory设置后调用
    |- ListableBeanFactory 提供枚举当前BeanFactory中的bean实例的能力
    |- SmartFactoryBean 提供prototype和eagerInit的能力
    |- SmartInitializingSingleton 提供单例预初始化结束后触发的回调接口
    |-annotation 注解相关
      |- AutowiredAnnotationBeanPostProcessor 注解相关bean后处理器
      |- @Lookup 提供单例Bean每次获取新Prototype的能力
    |-config 配置相关
      |- AbstractFactoryBean FactoryBean的抽象实现,单例会在初始化时创建好,
      |- AutowireCapableBeanFactory 提供注解能力的BeanFactory,没有被ApplicationContext实现
      |- BeanDefinition 提供bean配置在spring容器内的描述,允许 BeanFactoryPostProcessor 进行配置
      |- BeanDefinitionHolder BeanDefinition带beanName和alias
      |- BeanFactoryPostProcessor 允许调整beanDefinition,而不是bean实例,按照PriorityOrdered or Ordered排序
      |- BeanPostProcessor 在属性填充完成后所有初始化回调前后处理
      |- ConfigurableBeanFactory 提供配置beanFacotry的能力
      |- ConfigurableListableBeanFactory 在ConfigurableBeanFactory的基础上增加了分析和调整beanDefinitions和预初始化单例的能力
      |- DestructionAwareBeanPostProcessor BeanPostProcesser子接口,增加销毁前callback
      |- InstantiationAwareBeanPostProcessor BeanPostProcesser子接口,提供初始化前后的callback
      |- Scope 为ConfigurableBeanFactory提供 Scope管理
      |- SingletonBeanRegistry  定义单例注册能力
    |-groovy 提供groovy配置bean定义读取能力
    |-parsing 提供解析能力
    |-serviceLoader 通过service配置能力
    |-support  
      |- AbstractAutowireCapableBeanFactory 
    |-wiring  提供决定植入元数据的机制
    |-xml 提供xml相关的能力

spring-core

|-org.springframework
  |-asm 字节码操作包 cglib依赖
    |- ClassReader
    |- ClassVisitor
    |- ClassWriter
  |-cglib 代理库
  |-core
    |- annotation
      |- @AliasFor 注解别名
      |- @Order 标识优先级
    |- codec
      |- Decoder 解码比特流inputStream到对象类型输入流
      |- Encoder 编码对象类型到比特流的outputStream
    |- convert
      |- convertor 转换器
        |- Converter 类型转换的描述接口,线程安全可共享
        |- ConverterFactory 类型转换器工厂
        |- ConverterRegistry 类型转换注册器
        |- GenericConverter  更复杂的类型转换接口
      |- support 各类类型转换实现
          |- ConfigurableConversionService 
      |- ConverterService 转换系统的入口
    |- env
      |- Environment 代表当前的运行环境。模型包括两个方面的运行环境 profiles和properties
      |- EnvironmentCapable 提供获取Environment的能力
      |- ConfigurableEnvironment 提供配置Environment 中profiles和properties的能力
      |- PropertyResolver 提供properties 相关的能力
      |- Profiles 提供profiles相关的能力
    |- io
      |- ContextResource Resource接口的扩展接口提供从封闭的“上下文”加载资源的能力
      |- InputStreamSource 提供获取InputStream的能力
      |- Resource 对一类底层资源的抽象描述,都具有获取InputStream的能力
      |- ResourceLoader 加载资源的接口
      |- WritableResource 可写资源
    |- log 日志工具
    |- serializer 序列化
      |- Deserializer 反序列化
      |- Serializer 序列化
    |- style
      |- ValueStyler 根据spring 转换封装style策略
    |- task 并发扩展包
      |- TaskExecutor Executor的Spring扩展接口
      |- TaskDecorator   Runnable/Callable 装饰接口,通常用于回调 设定上下文
      |- AsyncTaskExecutor 提供在其他线程执行Runnable/Callable任务的能力
    |- type 类型推断相关的内容
    |- PriorityOrdered 特权排序接口,总是优先Ordered而忽略他们的排序值
  |-lang
  |-objenesis 用来实例化 不带有无参构造函数的类
  |-util 
    |- ErrorHandler 用来在异步中收集任务异常的接口
    |- IdGenerator 提供生成UUID的接口  
    |- MultiValueMap 多值Map接口
    |- PathMatcher 基于字符串的路径匹配器接口
    |- PropertiesPersister 属性持久化接口
    |- StringValueResolver 字符串解析接口,可用来解析占位符
    |- AntPathMatcher ant风格的路径匹配器

spring-context

|-spring.framework
  |-cache
    |- Cache  提供统一的Cache模型
    |- CacheManager 提供Spring CacheManager SPI
    |-annotation
      |- @Cacheable 缓存注解的方法结果, 如果缓存中有结果会跳过方法执行
      |- @CachePut 总是触发方法执行,并且缓存结果  
      |- @CacheEvit 触发缓存删除
      |- @Caching 组合以上三种方法
      |- @CacheConfig 用来配置类级别的 缓存
    |- cocurrent 
      |- ConcurrentMapCacheManager 提供并发的缓存
    |- config 配置相关
    |- interceptor 拦截器
      |- BasicOperation 缓存基本操作接口 
      |- CacheErrorHandler 缓存错误接口
      |- CacheOperationSource 缓存操作源接口
      |- CacheOperationInvocationContext 缓存操作上下文接口
      |- CacheOperationInvoker 缓存执行接口
      |- CacheResolver 决定使用拦截方法的接口,线程安全
      |- KeyGenerator 缓存key生成器接口
      |- CacheAspectSupport 缓存切面支持,用来做拦截器或者AspectJ切面
      |- CacheInterceptor AOP方法拦截器用来进行缓存管理
    |- support 一些实现
      |- AbstractCacheManager 抽象实现基类
      |- CompositeCacheManager 提供一个CacheManager的集合
      |- NoOpCache 无操作缓存
      |- NoOpCacheManager 
  |-context
    |- annotation
      |- @Bean 指定由spring管理的Bean
      |- @ComponentScan 开启组件扫描
      |- @Conditional 组件是否有效的条件
      |- ConditionContext 条件信息上下文
      |- @Configuration 
      |- @DependsOn 指明需要保证在此bean之前完成创建的bean
      |- @Lazy 延迟加载
      |- @Primary 提供首选注入bean
      |- @Role 指定bean角色
      |- @Scope 指定生命周期
    |- config 配置读取解析器
    |- event 事件相关
      |- ApplicationContextEvent 应用上下文事件抽象类
      |- ApplicationEventMulticaster 应用事件多播器,用来管理多个监听
      |- @EventListener
    |- expression SpEL表达式相关
    |- i18n 国际化
      |- LocaleContext 国际化上下文接口
      |- LocaleContextHolder 国际化上下文持有器,提供国际化的集中管理
    |- index 提供包索引,加快应用启动速度
    |- support 
      |- AbstractApplicationContext 提供了自动注册 BeanFactoryPostProcessors, BeanPostProcessors,ApplicationListeners的能力 
      |- AbstractRefreshableApplicationContext 在AbstractApplicationContext上提供刷新容器的能力,每次刷新创建一个新的内部BeanFactory
      |- AbstractRefreshableConfigApplicationContext 在AbstractRefreshableApplicationContext基础上添加设定config位置的能力  
 
    |- weaving 织入
      |- LoadTimeWeaverAware 获取加载时织入器
    |- ApplicationEvent 应用事件 java.util.EventObject 扩展
    |- ApplicationContext 提供访问组件,加载资源,时间发布,消息解析,等级关系上下文能力
    |- ApplicationContextAware 获取ApplicationContext 的能力
    |- ApplicationEventPublisher 应用事件发布器
    |- ApplicationEventPublisherAware 获取应用事件发布器的能力
    |- ApplicationListener 应用事件监听器
    |- Lifecycle 生命周期接口
    |- LifecycleProcessor 生命周期扩展策略接口
    |- ConfigurableApplicationContext 在ApplicationContext基础上提供生命周期和关闭的能力
    |- MessageSource  为消息提供参数化和国际化的能力的接口
  |-ejb  ejb相关
  |-format 格式化
    |- annotation 
      |- @DateTimeFormat 日期格式
      |- @NumberFormat 数字
    |- dateTime 
      |- joda joda-time 时间处理类库
        |-JodaTimeContext 
      |- standard 
        |-DateTimeContext
    |- number 提供货币,百分比风格的格式化器
  |-instrument
    |- classloading 
      |-glassfishing
      |-jboss
      |-tomcat
      |-weblogic
      |-websphere
      |-LoadTimeWeaver 定义添加一个或多个 ClassFileTransformers到 ClassLoader的约定接口
  |-jmx java管理扩展相关
    |- access
    |- export
    |- support
  |-jndi 支持包括LDAP等协议的
    |- support
    |- JndiTemplate 提供通过JNDI来查找和绑定对象的方法。而且允许通过实现JndiCallback来通过JNDI上下文实现操作
    |- JndiCallback
  |-remoting 远程过程调用相关
    |- rmi 
    |- soap
    |- support
  |-scheduling
    |- annotation
      |- @Async 异步化
      |- AsyncConfigurer 配置异步化的线程池
      |- @EnableAsync 开启异步化
      |- @EnableScheduling 开启调度
      |- @Scheduled 时间调度注解
    |- cocurrent
      |- ThreadPoolTaskExecutor 异步线程池
      |- ThreadPoolTaskScheduler 时间调度线程池
    |- config
      |- Task Runnable封装
      |- TriggerTask 封装Trigger与task
    |- support
    |- Trigger 触发对象,提供决定下次执行时间的能力
    |- TriggerContext 触发上下文,封装上次执行时间及上次完成时间
    |- TaskScheduler 提供不同类型的触发抽象调度
    |- SchedulingTaskExecutor 
    |- AsyncListenableTaskExecutor 提供 ListenableFutures的支持
  |-scripting
    |- bsh beanshell脚本相关实现
    |- config 相关配置
    |- groovy groovy脚本相关实现
    |- support 相关实现
    |- ScriptEvaluator 脚本执行器
    |- ScriptSource 脚本源
    |- ScriptFactory 封装脚本配置和创建方法
  |-stereotype
    |- @Component
    |- @Controller
    |- @Indexed 生成索引
    |- @Repository for DAO
    |- @Service 
  |-ui
    |- context 
      |- Theme 主题
      |- ThemeSource 主题源
      |- HierarchicalThemeSource 登记关系主题源
      |- support 相关实现
    |- Model 模型属性持有接口
  |-validation
    |- annotation
      |- @Validated 
    |- beanvalidation
    |- support 一些实现
    |- BindingResult 绑定结果
    |- Errors 存储和暴露数据绑定和验证的错误结果
    |- Validator 数据验证逻辑接口
    |- SmartValidator 在Validator 基础上增加hints

spring-context-support

|- org.springframework
  |- cache
    |- caffeine 
    |- ehcache
    |- jcache
    |- transaction
  |- mail
    |- javamail
      |- JavaMailSender javaMail 模型接口
      |- MimeMessagePreparator mime类型邮件配置接口
    |- MailSender 邮件发送者接口
    |- MailMessage 邮件模型接口
    |- SimpleMailMessage 简单邮件实现
  |- scheduling
    |- commonj 已弃用
    |- quatz 
  |- ui.freemarker

spring-expression (spel)

|- org.springframework.expression
  |- common
  |- spel
  |

spring-logging(spring-jcl)

|- org.apache.commons.logging
  |- logging
    |-NoOpLog 无操作实现
  |- Log 提供日志API接口
  |- LogFactory 

AOP/Aspects

spring-aop

|- aopalliance
  |- aop
    |- Advice 通知
  |- intercept
    |- Interceptor 拦截器
    |- ConstructorInterceptor 构造拦截器
    |- MethodInterceptor 方法拦截
    |- Invocation 调用抽象
    |- ConstructorInvocation 构造调用
    |- MethodInvocation 方法调用
|- springframework
  |- aop
    |- aspectj
      |- AopContext AOP上下文
      |- AopProxy Aop代理,开箱即用提供jdk代理和cglib代理
      |- Advised Aop代理配置管理接口,包含拦截器,advice,advisors 及代理接口
      |- AdvisedSupport AOP配置管理基类
    |- config
    |- framework
    |- interceptor
    |- scope
    |- support
    |- target
    |- Advisor 持有Advice,并决定pointCut的抽象
    |- BeforeAdvice 标记接口
    |- AfterAdvice 标记接口
    |- AfterReturningAdvice Advice返回后的回调接口
    |- Pointcut 切点,决定什么时候执行Advice

spring-aspectj

aspectj 切面配置
|- org.springframework 
  |-beans
  |-cache
  |-contxt
  |-schedule
  |-transaction

messaging

spring-message

|- org.springframework.messaging
  |- converter
    |- MessageConverter 消息转换器
    |- SmartMessageConverter 带转换hint的SPI
  |- core
    |- DestinationResolver 目的地解析
    |- DestinationResolvingMessageReceivingOperations 消息接收操作(带目的地解析)
    |- DestinationResolvingMessageRequestReplyOperations 请求恢复操作(带目的地解析)
    |- DestinationResolvingMessageSendingOperations 消息发送操作(带目的地解析)
    |- MessagePostProcessor 消息后处理
    |- MessageReceivingOperations
    |- MessageRequestReplyOperations
    |- MessageSendingOperations
  |- handler
    |- annotation 
      |- @MessageMapping 路径注解
    |- invocation
    |- MessageCondition 消息发送条件抽象
    |- MessagingAdviceBean 消息环绕通知抽象
  |- rsocket rsocket协议相关
  |- simp 简单消息协议
    |- annotation
      |- @SubscribeMapping 订阅Mapping
    |- broker
      |- SubscriptionRegistry 订阅注册抽象
      |- AbstractBrokerMessageHandler 转换broker message到注册订阅者消息的 抽象基类处理器
      |- SimpleBrokerMessageHandler 简单broker消息处理器
    |- config
    |- stomp 流文本定向协议
      |- StompFrameHandler STOMP 框架处理器
      |- StompSession STOMP 会话
      |- StompSessionHandler STOMP 回调函数
      |- StompTcpConnectionHandler STOMP TCP连接回调
    |- SimpMessageSendingOperations 简单消息协议发送抽象接口
    |- SimpMessagingTemplate 发送抽象实现
  |- support
    |- ChannelInterceptor 频道拦截器
    |- InterceptableChannel 可拦截频道
    |- MessageBuilder 通用消息构造器
  |- tcp
    |- TcpConnection tcp连接抽象
    |- TcpConnectionHandler tcp连接处理器
    |- TcpOperations tcp连接操作
    |- ReconnectStrategy 重连策略
  |- Message 通用message模型
  |- MessageChannel 发送信息约定接口
  |- MessageHandler 处理信息约定接口
  |- PollableChannel MessageChannel基础上增加拉信息接口
  |- ReactiveMessageHandler 响应式信息处理接口
  |- SubscribableChannel MessageChannel基础上增加订阅能力接口

web

spring-web

|-org.springframework
  |- http 
    |- client
    |- codec
    |- converter
    |- server
    |- HttpMessage http消息
    |- HttpInputMessage http输入消息
    |- HttpOutputMessage http输出消息
    |- HttpStatus 状态码
    |- HttpEntity http实体
    |- ResponseEntity http实体+HttpStatus
  |- remoting
    |- caucho hessian 协议相关
      |- HessianServiceExporter hessian service endpoint
    |- httpinvoker
      |- HttpInvokerRequestExecutor http调用器执行请求抽象接口
      |- HttpInvokerClientInterceptor http调用方法拦截器
    |- jaxws webservice 协议
      |- SimpleJaxWsServiceExporter 
  |- web
    |- accept contenttype 协商
      |- ContentNegotiationStrategy  解析mediatype的策略接口
      |- ContentNegotiationManager 决定medita type的类
    |- bind
      |- annotation
      |- support
      |- WebDataBinder 数据绑定器
      |- ServletRequestDataBinder 
    |- client
      |- RestTemplate 同步的http客户端
      |- RequestCallback  ClientHttpRequest请求回调,用于处理请求头
      |- ResponseExtractor restTemplate从ClientHttpResponse分离数据的数据提取器
      |- RestOperations RestFul 操作
    |- context
      |- ServletContextAware 用于获取ServletContext的回调接口
      |- ServletConfigAware 获取ServletConfig的回调接口
      |- WebApplicationContext 在ApplicationContext基础上增加了获取ServletContext的接口
      |- ConfigurableWebApplicationContext 可配置的webApplicationContext
    |- cors
      |- CorsProcessor 跨域调用接口
      |- CorsConfiguration 跨域调用配置
    |- filter
      |- GenericFilterBean 过滤器基类
      |- OncePerRequestFilter 每次请求执行一次的过滤器基类
    |- jsf
    |- method
      |- ControllerAdviceBean 封装@ControllerAdvice需要的管理信息
    |- multiport
      |- MultipartFile 上传文件抽象
      |- MultipartRequest 上传文件请求抽象
    |- server
      |- adapter
        |- HttpWebHandlerAdapter WebHandler到HttpHandler 的适配器
      |- handler
        |- WebHandlerDecorator 装饰并将具体的处理代理给其他WebHandler的类
      |- i18n
        |- LocaleContextResolver 基于网络的兼容本地化和http协议本地化方案的接口
      |- session
        |- WebSessionIdResolver session Id 约定
        |- WebSessionManager webScession管理
        |- WebSessionStore webSession 持久化约定
      |- ServerWebExchange 描述一次请求响应约定接口
      |- WebExceptionHandler 服务器处理请求响应交换中处理异常的约定接口
      |- WebFilter 拦截器风格,链式的web请求处理接口
      |- WebFilterChain web链接口
      |- WebHandler web请求处理器
      |- WebSession 服务器通过Http请求提供会话的主要约定
    |- util
      |- pattern
        |- PathPattern 路径模式抽象
      |- CookieGenerator cookie 生成器
  |- HttpRequestHandler Http请求处理器
  |- WebApplicationInitializer 网络应用初始化器
  |- SpringServletContainerInitializer 

Data Access

spring-jdbc java.sql 扩展

|- org.springframework.jdbc
  |- config
  |- core
    |- metadata
    |- namedparam
    |- simple 简单jdbc调用通常用于测试或者桩
    |- support  
      |- JdbcDaoSupport jdbc抽象基类
    |- JdbcOperations jdbc操作抽象
    |- ConnectionCallback jdbc连接回调
    |- StatementCallback jdbcStatment操作回调
    |- ResultSetExtractor sql查询接口rs结果抽取器
    |- RowCallbackHandler sql查询接口rs结果行处理器
    |- RowMapper sql查询接口rs结果行映射器
    |- PreparedStatementCreator 预编译sql创建器
    |- PreparedStatementCallback 预编译sql回调
    |- PreparedStatementSetter 预编译参数设定器
    |- ParameterDisposer 用于关闭ps资源
    |- CallableStatementCreator
    |- CallableStatementCallback 存储过程回调
    |- ParameterMapper 参数映射器
  |- datasource
    |- embedded
      |- DataSourceFactory 数据源工厂
      |- EmbeddedDatabaseConfigurer 内置数据源配置接口
      |- ConnectionProperties 连接属性
      |- EmbeddedDatabase 内置数据库
    |- init
    |- lookup
      |- DataSourceLookup 数据源查找接口
    |- ConnectionHandle 连接操作接口
    |- ConnectionProxy 连接代理
    |- AbstractDataSource javax.sql.DataSource spring的抽象实现基类
    |- AbstractDriverBasedDataSource AbstractDataSource基础上封装了基本连接参数的抽象实现基类
    |- DriverManagerDataSource 数据源驱动管理基类
  |- object
    |- RdbmsOperation 多线程可重用数据库操作抽象基类
  |- support
    |- incrementer 自增id实现
    |- lob 大二进制或者文本内容field(blob或clob)
      |- LobCreator 创建接口
      |- LobHandler 访问接口
    |- rowset
      |- SqlRowSet RowSet的镜像接口,不抛出java.sql.SQLException
      |- SqlRowSetMetaData ResultSetMetaData镜像接口
    |- xml
      |- SqlXmlHandler 
    |- SqlValue statement参数设置接口

spring-orm

spring-oxm

spring oxm -> object/xml mapping

|- org.springframework.oxm
  |- config
  |- jaxb JAXB(Java Architecture for XML Binding) 支持xml/json与java object 之间的转换
    |- Jaxb2Marshaller 基于javax.xml.bind 提供的JAXB封装的相关配置
  |- jibx 已弃用 不同于jaxb,jibx使用字节码enhance技术,主要在编译期完成
  |- mime 相关信息MTOM, XOP, or SwA
    |- MimeContainer 附带MIME附件的容器,能够适配SOAP(简单对象访问协议)包或者email
    |- MimeMarshaller
    |- MimeUnmarshaller
  |- support
    |- AbstractMarshaller 实现了编组和解编组的抽象基类
  |- xstream 
    |- XStreamMarshaller 使用xstream 来完成o ->m 转换的,不推荐使用xstream来解编组外部xml文件,会导致安全问题
  |- Marshaller 将对象编组成xml流
  |- GenericMarshaller  
  |- Unmarshaller 将xml流解编组成Object
  |- GenericUnmarshaller
  

sprint-tx

|- org.springframework
  |- dao
    |- DaoSupport 提供Dao支持
  |- jca 貌似是ejb时代的方案,先跳过
    |- cci Common Client Interface,通用客户接口,貌似不推荐
    |- context 
    |- endpoint
    |- support
    |- work
  |- transaction
    |- TransactionManager 事务管理器
    |- TransactionStatus 事务状态接口
    |- TransactionDefinition Spring一致事务定义,类似于EJB CMT(容器管理事务)
    |- SavepointManager 检查点管理器
    |- ReactiveTransactionManager 响应式事务管理器
    |- PlatformTransactionManager Spring指令式事务的中央接口,通常使用这个或者注解式方式来完成事务
posted @ 2022-07-14 14:26  Fake_coder  阅读(113)  评论(0编辑  收藏  举报