zoukankan      html  css  js  c++  java
  • 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));
    
    	}
    }
    

    总结

    本文主要介绍了常用的几种容器的创建,配置文件部分就没有在文章中体现了,如果想了解这部分,可以参考官方文档。

    相关推荐

    作者: 刘志航

    公众号:『 程序员小航 』

    版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Notes

  • 相关阅读:
    C++中的explicitkeyword
    Stream使用教程
    Java实现最长回文串
    Java实现最长回文串
    Java实现最长回文串
    Java实现选择问题
    Java实现选择问题
    Java实现选择问题
    Java实现选择问题
    Java实现选择问题
  • 原文地址:https://www.cnblogs.com/liuzhihang/p/spring-03.html
Copyright © 2011-2022 走看看