Spring IOC源码笔记(一)

Spring中最核心的4个jar

Spring-beans

Spring-core

Spring-contex

Spring-expression

一个最简单的spring工程,理论上只需要一个jar就够了

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>${spring.version}</version>

</dependency>

Spring中XSD引入

XSD是编写xml文件的一种规范,有了这个规范才能校验xml是否写错,在spring中同样有XSD规范。

<context:component-scanbase-package="com.包名"/>

就必须引入这个标签对应的XSD文件

Spring容器加载方式

  1)类路径获取配置文件

ApplicationContext

applicationContext=new ClassPathXmlApplicationContext("spring.xml");

   2)文件系统路径获取配置文件(绝对路径)

ApplicationContext

applicationContext=new FileSystemXmlApplicationContext("项目文件所在的根路径");

   3)无配置文件加载容器

ApplicationContext

applicationContext=new AnnotationConfigApplicationContext("要扫描的类");

    4)Springboot加载容器

Spring容器加载和新方法

AbstractApplicationContext.refresh()方法;refresh()方法是spring容器启动过程中的核心方法,spring加载必须要执行该方法,SpringBoot内置tomcat启动时是通过refreshContext()加载的spring容器;

IOC容器的初始化流程

主要分三步:

  • Bean的创建
  • Bean的赋值
  • Bean的初始化,放到IOC容器中,即Map,ioc底层就是一个大Map

Ioc是怎么加载的

Public class OrderController{

@aotowired

OrderServicelmpl orderServicelmpl;

}

根据配置文件,创建容器相关的对象;“orderServicelmpl”注入到ioc,首字母小写作为key;底层实现

Map<String, Object> map = New HashMap()<>;

map.put("orderServicelmpl", new OrderServicelmpl());

跟进refresh()

重点看截图上的注释:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值