spring源码解析-开篇

spring源码解析-开篇

做javaweb接触最多的框架莫过于spring了,随着对框架使用的逐渐熟练要再上一层的话,必须了解框架底层的实现原理,乃至自己做一个框架

spring的两大核心支柱:IOC和AOP

我们先从IOC开始入手

基于spring4.3.2源码分析

什么是IOC

IOC即”控制反转”,不是什么技术,而是一种设计思想.ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制.

简单的用代码表示就是

//原来方式
User user=new User();
//IOC获取实例
User user = (User) factory.getBean("user");

IOC容器设计图

来自spring技术内幕

从图上可以看到BeanFactory是最顶层的接口,在spring中所有的Bean都由BeanFactory管理,BeanFactory里面包括的IOC最基本的方法比如getBean,其子接口在其基础上细化了更多的功能,比如AutowireCapableBeanFactory这个容器中就添加了创建Bean和初始化Bean等方法

编程式使用IOC

开始分析源码前先使用编程式使用IOC用于调试,使用编程式而没有采用常用的注解,是因为编程式可以很清晰的看出IOC其关键类和基本的流程

        //定位resource
        ClassPathResource res = new ClassPathResource("spring-mvc.xml");
        //创建工厂
        DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
        //选择资源读取器
        XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
        //读取资源,并将结果放入工厂
        reader.loadBeanDefinitions(res);
        //获取对象
        User user = factory.getBean("user", User.class);

IOC基本流程

IOC基本流程

后面的文章将会对这几个步骤分别分析,了解spring是如何实现IOC的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,941评论 6 342
  • Spring容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相...
    Theriseof阅读 2,838评论 1 24
  • 笑声盈耳, 似若银铃, 化了山雪, 绿了清泉。 她在何方? 三千青丝绕肩舞, 纤腰细步漫云间。 玉领蓝衫扫冬雪, ...
    四月你的谎言阅读 80评论 0 0
  • 青葱烈马阅读 397评论 0 0