Spring 架构

Spring可能成为您的所有企业应用程序的一站式商店。但是,Spring是模块化的,允许您挑选适用于您的模块,而无需引入其他模块。下面的部分提供了Spring Framework中所有可用模块的详细信息。

Spring Framework提供了大约20个模块,可以根据应用程序要求使用。

核心容器

核心容器由Core、Beans、Context和Expression Language模块组成,其详细信息如下:

  • Core模块提供了框架的基本部分,包括IoC和依赖注入功能。
  • Bean模块提供了BeanFactory,它是工厂模式的复杂实现。
  • Context模块建立在Core和Beans模块提供的坚实基础之上,它是访问定义和配置的任何对象的媒介。ApplicationContext接口是Context模块的焦点。
  • SpEL模块为在运行时查询和操作对象图提供了强大的表达式语言。

数据访问/集成

数据访问/集成层由JDBC、ORM、OXM、JMS和Transaction模块组成,其详细信息如下:

  • JDBC模块提供了一个JDBC抽象层,消除了繁琐的JDBC相关编码。
  • ORM模块为流行的对象关系映射API(包括JPA、JDO、Hibernate和iBatis)提供了集成层。
  • OXM模块提供了一个支持JAXB、Castor、XMLBeans、JiBX和XStream的Object/XML映射实现的抽象层。
  • Java消息服务JMS模块包含用于生成和消费消息的特性。
  • Transaction模块支持实现特殊接口的类和所有POJO的编程和声明性事务管理。

Web

Web层由Web、Web-MVC、Web-Socket和Web-Portlet模块组成,其详细信息如下:

  • Web模块提供基本的面向Web的集成功能,如多部分文件上传功能以及使用servlet监听器和面向Web的应用程序上下文初始化IoC容器。
  • Web-MVC模块包含Spring用于Web应用程序的Model-View-Controller(MVC)实现。
  • Web-Socket模块提供了在Web应用程序中客户端和服务器之间进行基于WebSocket的双向通信的支持。
  • Web-Portlet模块提供了用于在Portlet环境中使用的MVC实现,并反映了Web-Servlet模块的功能。

其他

还有其他一些重要的模块,如AOP、Aspects、Instrumentation、Web和Test模块,其详细信息如下:

  • AOP模块提供了一种面向方面的编程实现,允许您定义方法拦截器和切入点,以清晰地解耦实现应该分离的功能的代码。
  • Aspects模块提供了与AspectJ的集成,这又是一个强大而成熟的AOP框架。
  • Instrumentation模块提供了类仪器支持和类装入器实现,可用于某些应用程序服务器。
  • Messaging模块提供了支持STOMP作为用于应用程序的WebSocket子协议的功能。它还支持一种注释编程模型,用于从WebSocket客户端路由和处理STOMP消息。
  • Test模块支持使用JUnit或TestNG框架测试Spring组件。

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

热门相关:总裁别再玩了   共享办公室   空即是色   肮脏的故事ASMR   不科学御兽