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指令式事务的中央接口,通常使用这个或者注解式方式来完成事务
I'm a fucKing fake coder!