Spring的模块化设计和Java 9 的模块化设计不是对等的,不过Spring 的模块化确实可以运用到Java 9 的模块化里面去 ,那是为什么呢,那是因为在Spring 的某个版本开始,它将它的模块划分为更细粒的Jar 包,这些Jar包可以按需应用分配的方式来依次依赖,比如它的核心模块Spring-core,或者Spring-JDBC或者Spring-context这些模块,按照完全统计目前已经有了大概有20多个模块
Spring Framework 中这些模块也是各司其职,然后各取所需的状态,我们在使用Spring Framework 的时候也不一定用到所有模块全部依赖进来,这和它以往最早的版本来说,它的状态是不一样的,最早的时候是把所有的东西放在一起,包括我们所说的interface21
下面是官网的模块截图
下面主要是针对Spring Framework 中的模块做简单的说明「白话讲解说明」
下面4个部分主要是Web部分
web 、webflux、webmvc以及websocket,为什么Web要分为四个模块来进行呈现?其实问题很简单,因为spring 还想做个统一,它想做什么呢!其实在Java EE web实现也有两个实现,一个是传统的Servlet API 实现就是基于底层API接口的实现 ,另外一个方面就是JAX-RS ,什么是JAX-RS 就是Java 标准的注解的方式来驱动开发RESTful服务,Spring也是基础它们基础来开发spring-webmvc和spring-webflux ,所以你会看到Spring-webmvc和Spring-webflux里面的注解和JAX-RS的注解特别像
上面20多个模块 19个模块可以用于我们日常开发一个可用于日常测试使用
总结
通过上面的20个模块的简单分析,我们可以看出Spring目前开始把功能精细化,就是说如果我想需要Spring的某些特性,只需要增加对某个模块的依赖,这些模块可以做到按需分配