乐趣区

关于后端:Spring-源码学习-03创建-IoC-容器的几种方式

前言

在上一篇文章开端画了一幅简图,当初从简图这动手,先来看看如何创立容器!

创立容器

在搭建 Spring 源码浏览环境 时,最初举了一个例子,其实就是创立容器,并从容器中获取 Bean,来测试环境是否 OK。

依据元数据的不同,创立容器的形式也不同,上面参考官网文档,简略介绍下创立容器的几种形式:

Java 配置获取元数据

public class AnnotationConfigApplicationTest {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();

        context.register(JavaConfig.class);
        context.refresh();

        System.out.println(context.getBean(UserComponent.class));
        
    }
}

Xml 获取元数据

public class XmlConfigApplicationTest {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("SpringConfig.xml");

        System.out.println(context.getBean("bookService"));

    }

}

Groovy 获取元数据

public class GroovyConfigApplicationTest {public static void main(String[] args) {GenericGroovyApplicationContext context = new GenericGroovyApplicationContext("SpringConfig.groovy");

        System.out.println(context.getBean(NotesServiceImpl.class));

    }
}

GenericApplicationContext

也能够间接创立 GenericApplicationContext 而后在加载元数据配置文件。

public class GenericApplicationTest {public static void main(String[] args) {GenericApplicationContext context = new GenericApplicationContext();

        new XmlBeanDefinitionReader(context).loadBeanDefinitions("SpringConfig.xml");
        new GroovyBeanDefinitionReader(context).loadBeanDefinitions("SpringConfig.groovy");

        context.refresh();

        System.out.println(context.getBean("bookService"));
        System.out.println(context.getBean(NotesServiceImpl.class));

    }
}

总结

本文次要介绍了罕用的几种容器的创立,配置文件局部就没有在文章中体现了,如果想理解这部分,能够参考官网文档。

相干举荐

  • Spring 源码学习 01:源码浏览环境的搭建
  • Spring 源码学习 02:对于 Spring IoC 和 Bean 的概念
  • Spring 自调用事务生效,你是怎么解决的?
退出移动版