美文网首页spring源码解析
spring源码解析-开篇

spring源码解析-开篇

作者: lialzm | 来源:发表于2018-03-06 17:07 被阅读134次

    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源码解析-开篇

        本文链接:https://www.haomeiwen.com/subject/tvdrfftx.html