Spring体系结构

Spring是一个开源的轻量级JavaEE应用框架。主要特点:分层架构、方便解耦、简化开发、AOP编程支持、声明式事务、基于JavaEE的远程调用等。 Spring体系结构分为:根容器、Web容器、BeanFactory等。

根容器

Spring应用程序中存在一个或多个子容器(也称为WebApplicationContext),用于处理不同层次的组件,例如Web层、Service层、数据访问层等。"根容器Root ApplicationContext"是Spring应用程序上下文的主要容器。其他子容器都是从根容器继承而来的,根容器是整个应用程序的根基,负责加载和管理所有Bean的生命周期。

Web容器

"Web容器"通常指的是Servlet容器或Web服务器。Servlet容器是用于运行Java Servlet和JavaServer Pages(JSP)等Web组件的容器,它负责接收来自客户端的HTTP请求,处理这些请求,并将响应返回给客户端。

Spring应用程序通常在Web容器中运行,Web容器负责将Spring应用程序部署为一个Web应用,使得应用可以通过HTTP协议与客户端进行交互。Web容器提供了一个运行时环境,可以处理HTTP请求和响应,同时也提供了一些特定于Web的功能,例如会话管理、安全性、请求拦截等。

常见的Web容器包括Apache Tomcat、Jetty、Undertow等,它们都是支持Servlet规范的容器,因此可以运行Spring应用程序。这些Web容器提供了高度可靠的Web服务器功能,并能够处理大量并发请求,使得Spring应用程序能够在Web环境中稳定运行。

容器的作用

  1. Bean实例化:容器负责实例化应用程序中定义的Bean,将其转化为可用的对象。

  2. Bean配置:容器负责对Bean进行配置,例如设置属性值、注入依赖等。

  3. Bean生命周期管理:容器负责管理Bean的生命周期,包括初始化、使用和销毁。

  4. 依赖注入:容器负责将Bean之间的依赖关系注入到相应的对象中,解决了对象之间的耦合问题。

  5. AOP(面向切面编程):容器支持AOP功能,可以通过配置将切面织入到Bean的方法中,实现横切关注点的功能。

BeanFactory

BeanFactory是Spring IOC容器的最顶层接口。在Spring IOC容器中,BeanDefinition是存储所有Bean信息的载体,Spring IOC容器在启动时会将BeanDefinition载入容器中,根据BeanDefinition创建Bean实例,并将Bean实例注入到对应的Bean的属性中。

DefaultListableBeanFactory

DefaultListableBeanFactory是BeanFactory的默认实现类,它实现了BeanFactory和BeanDefinitionRegistry两个接口。在DefaultListableBeanFactory中,Spring IOC容器在初始化时会遍历所有注册的BeanDefinition,根据BeanDefinition信息创建Bean实例,并将Bean实例注入到对应的Bean的属性中。其中,BeanDefinition的信息是通过XmlBeanDefinitionReader、AnnotatedBeanDefinitionReader、ClassPathScanningCandidateComponentProvider等类来读取的,它们会将BeanDefinition的信息存储到BeanDefinitionRegistry的实现类中,供Spring IOC容器读取。在Bean实例创建完毕后,Spring IOC容器会将Bean实例存储到缓存中,供后续的Bean依赖注入使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值