• 1.2浅谈Spring-Spring结构


    时隔很多天的我又回来....最近发展了一下自己的爱好,所以拖了很长时间。

    前面我们从概念性上分析了spring的特性

    这里我们附上Spring框架的结构图

    我们简单的来说一些这个框架图

    我们从下往上看

    1.测试部分Test

    Spring提供的测试部分非常重要,这个SpringTest可以帮助我们在服务器上完成测试(即不用每次都重启服务器去测试),跟Junit的测试一样。而且这个SpringTest是可以配合Junit使用的。

    2.Spring的核心部分

    这里有4个部分 Beans Core Context ExpressionLanguage

    Beans 是关于创建Bean和管理Bean的一些类

    Core 部分就不多说了,一般核心部分都是最底层的东西

    Context 负责上下文的一些类

    ExpressionLanguage EL表达式。跟Struts2的OGNL表达式类似

    3.AOP,Aspects

    这个部分的Instrumentation我没用过,看到的也很少,所以这里就不提了。欢迎评论区补充。这层是切面层。关于AOP,Aspects这里不再做过多的解释了

    4.WEB层

    主要是关联一些其他的框架,如Struts,SpringMVC,还有一些远程调用。

    5.Data Access层

    这部分是事务管理和数据源部分。spring有自己的jdbc模版,jdbcTemplate。同样Spring也为其他ORM框架提供了交互层,如:Hibernate,Mybatis,JPA等

    IOC是如何工作的呢?

    这就是本章我们要研究的问题

    1.spring容器

    前面我们讲了SpringIOC容器的概念。现在我们通过源码来看一下,SpringIOC容器是什么。

    Spring的容器并不是只有一个,Spring自带了多个容器实现,大致可以分为两类

    ①BeanFactory,提供最基本的DI功能

    图1.1 beanFactory的方法

    再看一下它的基本实现类

    ②应用上下文ApplicationContext,它是基于BeanFactory。除了支持基本的DI功能,还支持从属性文件解析文本,以及发布事件给事件监听者,该接口继承多个其他的接口。

     

    图1.2-1 Application接口

    我们常用的几个Spring容器的具体实现有:

    1.ClassPathXmlApplicationContext

    2.FileSystemXmlApplicationContext

    这两个是我们在本地引用xml配置文件时用的IOC容器,web的IOC容器我们在后面讨论。这个小节我们讨论IOC容器的具体工作。

    Spring加载bean通常称为装配,以下是其中一种模式(XML显示装配)

    ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");
    Car car =app.getBean(Car.class);
    System.out.println(car.getBrand()+","+car.getDesc());
    

    以上一段代码包含以下几点:

    1.读取配置文件beans.xml

    2.根据beans.xml中的配置,找到对应的类的配置并实例化

    3.调用实例化后的实例。

    实际这3步里执行了多少逻辑对我们是透明的,这几步也许就是它的原理了..

    蓝色颜色标注的为相同的(因为线确实扯不过来....),红色的为基本的常用的Spring容器

    这是spring的IOC容器的体系结构,了解一下。下一节,来了解IOC容器是如何初始化的。

  • 相关阅读:
    Python变量、标识符
    PyCharm中设置作者信息
    去中心化
    复杂逻辑---取数
    行政机构处理
    2020.11案例分析
    中间表
    软考--项目管理名词
    软考--近6次上午考点分析
    软考--学习方法、做题方法
  • 原文地址:https://www.cnblogs.com/Qiansion/p/9780660.html
Copyright © 2020-2023  润新知