SpringFramework核心技术一(IOC容器:IOC容器和Bean介绍)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 题记:做技术还是得一步步慢慢来,先搞懂核心原理,一味的只会用,是没有未来的啊。在现在的区块链公司当带着大家做项目的时候,我就经常说作为一名工程师,一定不能浮于表面,如果想在技术这条路上走下去,懂原理才是根本。

题记:

  • 做技术还是得一步步慢慢来,先搞懂核心原理,一味的只会用,是没有未来的啊。在现在的区块链公司当带着大家做项目的时候,我就经常说作为一名工程师,一定不能浮于表面,如果想在技术这条路上走下去,懂原理才是根本。
    现在框架太多,但是Spring依然是主流,很多工程师都说自己熟悉精通Spring、看过Spring源码,暂且不说有多少收获,咱还是从官方文档一步步慢慢来吧。

  • 一、Spring的核心技术

    • 首先看一下Spring官方的介绍:
      Foremost amongst these is the Spring Framework’s Inversion of Control (IoC) container. A thorough treatment of the Spring Framework’s IoC container is closely followed by comprehensive coverage of Spring’s Aspect-Oriented Programming (AOP) technologies. The Spring Framework has its own AOP framework, which is conceptually easy to understand, and which successfully addresses the 80% sweet spot of AOP requirements in Java enterprise programming.
      译:Spring框架中最重要的部分就是控制反转(ICO)容器。面向切面编程的(AOP)技术紧随其后。
      Spring框架拥有自己的AOP框架,这个框架在概念上是很容易理解的,并且成功解决了Java企业级编程中80%对AOP的需要。
  • 二、IOC容器

    • 2.1 SpringIOC容器和Bean的介绍
      IoC也被称为依赖注入(DI)。它是一个过程,对象通过构造函数参数,工厂方法的参数或在工厂方法构造或返回后在对象实例上设置的属性来定义它们的依赖关系,即它们使用的其他对象。容器 在创建bean时会注入这些依赖关系。这个过程基本上是相反的,因此名为Inversion of Control(IoC),通过使用类的直接构造或诸如Service Locator模式之类的机制来控制其依赖关系的实例化或位置的bean本身。
    • 2.2
      在org.springframework.beans和org.springframework.context包是Spring框架的IoC容器的基础。
      这里写图片描述
    • 2.3
      在org.springframework.beans中,有一个beans.factory的包
      这里写图片描述
      该 BeanFactory 接口提供了一种能够管理任何类型对象的高级配置机制。
    • 2.4
      ApplicationContext 是一个子接口BeanFactory。它增加了与Spring的AOP功能更容易的集成; 消息资源处理(用于国际化),事件发布; 和特定于应用层的上下文(例如,WebApplicationContext 用于Web应用程序中)。
      ApplicationContext位于spring-context包中,是一个接口。
      这里写图片描述
      WebApplicationContext也是一个接口,位于spring-web包中,继承了ApplicationContext
      这里写图片描述
  • 三、那么BeanFactory和ApplicationContext有什么联系呢?

    • 简而言之,它BeanFactory提供了配置框架和基本功能,并ApplicationContext增加了更多的企业特定功能。
    • 在Spring中,构成应用程序主干和由Spring IoC 容器管理的对象称为bean。bean是一个实例化,组装并由Spring IoC容器管理的对象。否则,bean只是应用程序中众多对象中的一个。Bean和 它们之间的依赖关系反映在容器使用的配置元数据中。
  • 四、容器的概览

    • 4.1
      该接口org.springframework.context.ApplicationContext表示Spring IoC容器,并负责实例化,配置和组装上述bean。容器通过读取配置元数据获取有关要实例化,配置和组装的对象的指示信息。配置元数据用XML,Java注释或Java代码表示。它允许您表示组成应用程序的对象以及这些对象之间丰富的相互依赖关系。
      这里写图片描述
    • 4.2
      ApplicationContextSpring提供了几个接口的实现。在独立应用程序中,通常会创建一个ClassPathXmlApplicationContext or 的实例 FileSystemXmlApplicationContext。虽然XML是用于定义配置元数据的传统格式,但您可以通过提供少量的XML配置来指示容器使用Java注释或代码作为元数据格式,以声明方式支持这些其他元数据格式。
      这里写图片描述
      这里写图片描述
    • 4.3
      下图是Spring如何工作的高级视图。您的应用程序类与配置元数据相结合,以便在ApplicationContext创建并初始化之后,您拥有完全配置且可执行的系统或应用程序。
      这里写图片描述

    • 4.4
      如上图所示,Spring IoC容器使用一种形式的 配置元数据 ; 此配置元数据表示作为应用程序开发人员如何告诉Spring容器在您的应用程序中实例化,配置和组装对象。
      传统上,配置元数据是以简单直观的XML格式提供的,这是本章的大部分内容用来传达Spring IoC容器的关键概念和功能。
      注意:基于XML的元数据不是唯一允许的配置元数据形式。Spring IoC容器本身与配置元数据实际写入的格式完全分离。现在很多开发人员为他们的Spring应用程序选择 基于Java的配置。

    • 4.5:配置元数据
      Spring容器中使用其他形式的元数据的信息:
      基于注释的配置:Spring 2.5引入了对基于注释的配置元数据的支持。
      基于Java的配置:从Spring 3.0开始,Spring JavaConfig项目提供的许多功能成为核心Spring框架的一部分。因此,您可以使用Java而不是XML文件来定义应用程序类外部的Bean。要使用这些新功能,请参阅@Configuration,@Bean,@Import 和@DependsOn注释。
      Spring配置由容器必须管理的至少一个,通常是多个bean定义组成。基于XML的配置元数据将这些bean配置为顶层元素内的元素。Java配置通常@Bean在@Configuration类中使用注释方法。
    • 4.6
      这些bean定义对应于组成应用程序的实际对象。通常,您可以定义服务层对象,数据访问对象(DAO),Struts Action实例等表示对象,Hibernate SessionFactories,JMS 等基础结构对象 Queues。通常,不会在容器中配置细粒度的域对象,因为创建和加载域对象通常是DAO和业务逻辑的责任。但是,您可以使用Spring与AspectJ的集成来配置在IoC容器控制之外创建的对象。
    • 4.7
      以下示例显示了基于XML的配置元数据的基本结构:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <!-- more bean definitions go here -->

</beans>

未完待续~~~~

目录
相关文章
|
4天前
|
弹性计算 运维 Kubernetes
探索后端开发的未来:微服务架构与容器化技术
在数字化时代的浪潮中,后端开发正经历着前所未有的变革。微服务架构的兴起和容器化技术的普及,不仅重新定义了软件的开发、部署和管理方式,还为后端开发带来了新的挑战和机遇。本文将深入探讨微服务架构和容器化技术如何影响后端开发的未来,通过数据支撑和逻辑推理,揭示这些技术趋势背后的科学原理和实际应用价值。
|
3天前
|
运维 Kubernetes Docker
容器化技术在微服务架构中的应用
【7月更文挑战第3天】容器化技术在微服务架构中的应用,为现代应用的开发、部署和运维带来了革命性的变化。通过容器化,我们可以实现服务的快速部署、独立运行和高效扩展,同时提高资源的利用率和系统的可维护性。随着容器技术的不断发展和完善,相信它将在未来的软件开发中发挥更加重要的作用。
|
4天前
|
XML Java 数据库连接
Spring6(二):IoC容器(2)
Spring6(二):IoC容器
12 2
|
4天前
|
Kubernetes 负载均衡 调度
Kubernetes等容器化技术
【7月更文挑战第2天】Kubernetes等容器化技术
8 2
|
4天前
|
XML Java 数据格式
Spring6(二):IoC容器(3)
Spring6(二):IoC容器(3)
10 1
|
4天前
|
XML Java 数据格式
Spring6(二):IoC容器(1)
Spring6(二):IoC容器(1)
13 1
|
6天前
|
Prometheus 监控 Cloud Native
容器化技术的性能调优与监控
【6月更文挑战第29天】本文探讨了容器(如Docker)的性能优化与监控,强调了其在云和微服务中的重要性。调优涉及资源限制设定、代码优化,通过性能测试、瓶颈分析进行迭代优化。监控目标是确保稳定性和可用性,使用工具如Portainer、CAdvisor、Prometheus来跟踪状态、性能指标和日志。监控内容涵盖容器状态、资源使用、日志和限制,策略包括设定阈值和告警机制。调优监控的优化有助于提升应用性能和企业价值。
|
7天前
|
运维 Kubernetes 安全
《阿里云产品四月刊》—享道出行:容器弹性技术驱动下的智慧出行稳定性实践(1)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
4天前
|
Java Spring 容器
Spring6(二):IoC容器(4)
Spring6(二):IoC容器(4)
6 0
|
6天前
|
Kubernetes Cloud Native Docker
云原生技术演进之路:从微服务到容器化
在数字化浪潮的推动下,云原生技术不断演进,为现代软件开发带来革命性变化。本文将深入探讨云原生技术的核心要素—微服务和容器化,揭示它们如何促进软件的快速迭代、可扩展性和可靠性提升。通过分析相关数据和案例研究,我们旨在阐明云原生技术在加速企业数字化转型中的关键作用。