前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring 源码学习 03:创建 IoC 容器的几种方式

Spring 源码学习 03:创建 IoC 容器的几种方式

作者头像
程序员小航
发布2020-12-03 11:02:35
2740
发布2020-12-03 11:02:35
举报
文章被收录于专栏:程序员小航程序员小航

前言

创建容器

在上一篇文章末尾画了一幅简图,现在从简图这入手,先来看看如何创建容器!

1

创建容器

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

根据元数据的不同,创建容器的方式也不同,下面参考官方文档,简单介绍下创建容器的几种方式:

Java 配置获取元数据

代码语言:javascript
复制
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 获取元数据

代码语言:javascript
复制
public class XmlConfigApplicationTest {

 public static void main(String[] args) {

  ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("SpringConfig.xml");

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

 }

}

Groovy 获取元数据

代码语言:javascript
复制
public class GroovyConfigApplicationTest {

 public static void main(String[] args) {

  GenericGroovyApplicationContext context = new GenericGroovyApplicationContext("SpringConfig.groovy");

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

 }
}

GenericApplicationContext

也可以直接创建 GenericApplicationContext 然后在加载元数据配置文件。

代码语言:javascript
复制
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));

 }
}

2

总结

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

- <End /> -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小航 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档