spring框架三层架构

这是Spring Framework Architecture的概述。 了解Spring Framework的各个组成部分如何组织以及如何相互联系。 如果您想了解什么是Spring框架及其功能,请阅读Spring框架简介 。

总览

Spring是一个模块化框架 。 它不是作为一个软件包或多个模块捆绑在一起的。 各种弹簧组件作为独立模块提供。 这使我们可以灵活地使用所需的内容,而剩下的就剩下了。 例如,如果我们要使用Spring JMS模块,则无需将Spring Web Module添加到我们的项目中。 这使我们的应用程序重量轻且集中。


Spring建筑

让我们深入了解Spring Architecture(参考图),在本教程的后续部分中,我们将深入研究每个模块。 如图所示,Core是Spring框架的基础。 其他模块,例如Web,数据访问和其他模块集。 测试模块(也基于内核)是独立的,因为它与测试应用程序的弹簧支持组件有关。

核心容器

核心容器是Spring的心脏。 它包含一些基本框架类和工具。 整个Spring框架基于Core Container的顶部


核心容器模块

小费:
如果您是一个完整的新手。 核心容器是您首先要熟悉的东西。 如果您对此有所了解,则可以轻松选择任何Spring模块。

弹簧芯

核心模块包含基本的Spring Framework类,包括依赖注入(DI)和控制反转(IOC)。 Spring Core可在Spring Core Repo中获得 。 无论您要构建哪种类型的Spring应用程序,您都将始终对Spring Core具有直接或间接的依赖性。

Spring Bean

Spring Bean模块管理bean的生命周期。 在Spring Framework中,Bean是在Spring中注册的任何Java类,并且Spring管理这些bean类。 Spring Bean模块具有一个Bean Factory ,该工厂创建Bean实例,解析Bean与Bean的依赖关系,并根据名称或类型自动装配Bean。
可以在Spring Beans Repo上找到Spring Bean模块。

春天语境

我们了解到,Spring Bean负责管理Spring Bean。 这些Spring Bean在称为Context的上下文中定义。 在Spring中,每个对象都是一个Bean,让它成为配置条目或用户定义的类(例如Employee)。 所有此类bean,它们的构造函数或工厂方法以及相关性均在Context中定义。 通过Context访问Bean。

在大多数情况下,Spring Context是在Spring Application启动时启动的,因此称为Application Context。 链接到Spring Context Repo 。

SpEL

SpEL代表Spring Expression Language ,它是功能强大的完整表达语言。 它用于在运行时将表达式解析为值。 SpEL可以在运行时查询对象图,并且可以在基于XML或基于注释的Bean定义和Bean配置中使用。 在这里,运行时一词非常重要,因为可以根据运行时配置或其他表达式的值来评估表达式。
可以在Spring Expression Language Repo中找到 。

Spring网

从名称本身就很明显, Spring Web组件用于构建Web应用程序。 使用Spring Web模块,我们可以构建完整的MVC应用程序,拦截器,Web服务,Portlet。


网络模块

让我们简要看一下Web组件。

Spring Web和Servlet

Spring Web和Servlet提供了许多用于构建Web集成的功能。 在以上部分之一中,我们看到了什么是应用程序上下文。 Spring Web提供了类似于上下文的Web应用程序上下文。 Spring Web提供了servlet的抽象以及控制反转(IOC)。
可以在Spring Web Repo上找到。

Spring Web还有另外一个组件,那就是Spring MVC。 Spring MVC提供了一种用于构建基于Model View Controller的Web应用程序的机制。 Spring MVC具有“视图和操作”的概念。 视图表示用户界面或使用者,而操作是服务于Web请求的组件。
可以在Spring Web MVC Repo中找到 。

Spring Web套接字

Spring Web Sockets支持构建Web Sockets。 Web套接字是Web应用程序中服务和使用者之间的一种隧道。 在HTTP连接中,客户端必须在服务器上轮询是否有更新。 使用Web套接字,它们之间都存在一个双向通信套接字,因此,即使服务器也可以将消息直接推送到客户端。
可以在Spring Web Sockets Repo中找到 。

Spring Web Portlet

Spring Web Portlet支持构建Web Poerlet。 Portlet是可插拔的用户界面软件组件,可以在Web门户中进行管理和显示。 换句话说,它是一种在单个用户界面上显示多个应用程序(portlet)的用户界面的机制。 通常,这些portlet是可插拔和可安排的。
可以在Spring Web Portlet Repo中找到 。

Spring数据访问

Spring Data Access是一组模块,用于访问各种格式的数据,包括数据库,消息传递和XML。 让我们简要介绍一下这些模块


资料存取模组

Spring JDBC

Spring JDBC通过Java JDBC API提供抽象。 当我们需要从数据库访问数据时,通常需要处理语句,查询,结果集,尤其是异常。 Spring JDBC抽象消除了所有这些复杂性,并提供了JdbcTemplate来轻松访问数据。 它还提供了迭代和映射结果集的方法。
可以在Spring JDBC Repo中找到。

SpringORM

Spring ORM提供了与各种ORM实现集成的支持。 ORM代表对象关系映射框架,其中数据被逐字段映射到Java Object。 使用ORM框架,可以用数据填充纯Java对象,并将其传递给ORM API,以纯Java对象的形式存储和类似地检索数据。 Spring提供了对流行的ORM框架(如Hibernate,JDO和JPA)的支持。
可以在Spring Object / Relational Mapping Repo中找到 。

SpringJMS

JMS代表Java Messaging Service,它以消息的形式定义发布者和订阅者通信的规范。 Spring JMS提供了对各种JMS实现(例如ActiveMQ和RabbitMQ)的抽象。
可以在Spring JMS Repo中找到。

SpringOXM

Spring OXM提供了Java OXM实现的抽象。 Java OXM(对象XML编组)规范定义了以XML形式传输和访问数据的方式。 OXM有各种实现,例如JAXB和XStream。
可以在Spring Object / XML Marshalling Repo上找到Cab。

Spring交易

Spring Transactions Management API提供了管理数据对象和数据库事务的统一方法。 Transaction API支持程序化和声明性事务管理。
可以在Spring Transaction Repo中找到。

杂项模块

现在我们到达了教程的最后一部分。 在本节中,我们将学习Spring重要的独立模块,可以视为杂类。


杂项模块

SpringAOP

Spring AOP是面向方面编程的实现。 方面是对象需要执行的任何辅助任务。 每个对象都是Java的专门职责,除此之外,它可能还必须做一些次要的事情,例如日志记录或异常处理。 面向方面的编程提供了一种机制,可以从对象中消除此类次要责任,并将其赋予代理对象,从而使原始对象加倍。
可以在Spring AOP Repo中找到。

春天的方面

我们已经了解了什么是面向方面的编程。 Spring Aspects提供了与其他面向方面的编程实现(如AspecJ)集成的统一方法。
可以在Spring Aspects Repo中找到。

弹簧仪表

Spring Instrumentation模块为类检测提供支持。 该工具用于监视应用程序的性能。 它监视各种对象以诊断应用程序问题并记录它们。
可以在Spring Instrument Repo找到。

Spring信息

Spring Messaging提供了与消息传递系统集成的支持。 该模块提供了与各种消息传递服务进行交互的简化且统一的方式。
可以在Spring Messaging Repo中找到。

摘要

在本文中,我们研究了Spring Framework Architecture。 Spring是一个具有多个模块的巨大框架。 核心容器是Spring一切的骨干,其他所有模块都依赖于核心。 除了核心,我们还研究了Spring Web,Spring Data Access和一些其他模块。
在接下来的部分中,我们将继续探索Spring Framework。 敬请关注!

翻译自: https://www.javacodegeeks.com/2019/02/spring-framework-architecture.html

spring框架三层架构

spring框架三层架构_Spring框架架构相关推荐

  1. spring aop实例讲解_Spring框架核心知识点

    文章内容输出来源:拉勾教育Java高薪训练营 前言: 由于工作需要提升自身技术能力,在各方比较下,报名了拉勾教育的java高薪训练营,目前已经学了半个月啦,来说说自身学习的感受吧: 课程内容有广度更有 ...

  2. spring mysql 多数据源_spring框架学习【多数据源配置】

    在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库.我们以往在spring和hibernate框架中总是配置一个数据源,因而sessi ...

  3. spring字符串判空_spring框架返回json数据null转空字符串

    spring项目中,前端获取服务器返回的json时,里面有null值,如果没做校验,就会导致js报错,但是不推荐每个返回的地方手动处理,而是应该在框架中统一配置. 前面关于json日期格式化的文章中, ...

  4. spring 测试demo乱码_spring框架的入门学习:AOP和面向切面的事务

    使用注解配置spring,需要以下几个步骤: 需要导入一个包: 步骤1:需要为主配置文件引入新的命名空间(约束),和之前介绍的一样,导入新的约束: 然后在application.xml的Design中 ...

  5. spring批处理mysql语句_Spring框架——批处理(batch)和事务(Transaction)

    批处理(batch) 批处理(batch)------------>好比快递员[不能一件一件的送快递] - 批处理指的是一次操作中执行多条SQL语句 - 批处理相比于一次一次执行效率会提高很多 ...

  6. java框架外文翻译_Spring框架-毕业论文外文文献翻译.doc

    黑龙江工程学院本科生毕业设计 外文文献翻译 SpringFramework Spring is an open source framework, and Spring was launched in ...

  7. 架构、框架和设计模式

    最近要填写项目经验,想把去年写的一个网站(Spring MVC)经验写上去装一下,刚百度了一个Spring MVC就搜出了一堆东西,然后想当然的搜了一个三层架构(这是学软件工程的时候提过的),以为就是 ...

  8. 【web-攻击应用程序框架】(12.1)分层架构:攻击与保障

    目录 攻击应用程序框架 简介: 一.分层架构 1.1.简介: 1.2.攻击分层架构 简述: 利用层之间的信任关系 破坏其他层 过程: 1.3.保障分层架构的安全 简述: 尽量减少信任关系 隔离不同的组 ...

  9. Spring boot 三层框架dao层、service层、controller层+实体model层

    Spring boot 三层框架dao层.service层.controller层+实体model层 model层 dao层 service层 controller层 首先创建一个springboot ...

最新文章

  1. linux 760权限,Linux 文件rwx权限问题 chmod 777 XXX 任何人拥有最高权限
  2. Lombok开发指南
  3. bootdefault和configuration_springboot常用注解、包引入和自动配置功能解读
  4. 物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线
  5. HBase错误:ERROR: Can't get master address from ZooKeeper; znode data == null 解决办法
  6. python web开发 CSS基础
  7. java国际化bundle_Java国际化(i18n)ResourceBundle类
  8. 分布式锁的 3 种实现方案!
  9. 苹果6系统怎么更新不了_苹果App Store登录不了怎么办_登录不了App Store的解决办法?...
  10. 加密货币交易所Coinbase在私募股票市场中估值达900亿美元
  11. CCF NOI1036 进制转换
  12. PyTorch自定义CUDA算子教程与运行时间分析
  13. FreeMarker整合Spring 3(转)
  14. mp3cutter java_开源一款超级好用的mp3剪切器app
  15. 软件企业研发人员激励机制研究
  16. 联想服务器查看raid信息,联想服务器raid信息恢复
  17. 机械手表,石英手表,智能手表怎么选最好,哪种更适合佩戴?
  18. Android下最好用的免费在线影视应用是哪个?
  19. 学生表、班级表、成绩表
  20. win2003下php环境搭建,win2003下搭建PHP环境教程(上) | 网络菜鸟学习园地

热门文章

  1. CF11D-A Simple Task【状压dp】
  2. CF438E-The Child and Binary Tree【生成函数】
  3. 牛客练习赛50-记录
  4. 【2018.3.10】模拟赛之二-ssl2575 给出字符串【字符串】
  5. OpenJudge1043 树上游戏(换根dp+细节处理)
  6. Codeforces Round #662 (Div. 2)
  7. 33、JAVA_WEB开发基础之会话机制
  8. Nacos(十)之Kubernetes Nacos
  9. 从零开始用好 Maven : 从 Hello World 到日常使用
  10. JAVA多线程和并发面试问题