前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一、为何我决定写Spring Cloud专栏

一、为何我决定写Spring Cloud专栏

作者头像
YourBatman
发布2020-05-09 17:01:25
9291
发布2020-05-09 17:01:25
举报
文章被收录于专栏:BAT的乌托邦BAT的乌托邦
  1. 当然喽,SB容器也可以访问

Spring Boot容器 vs Spring Cloud容器

我们知道,Spring Cloud容器是Spring Boot容器的父容器。为了让你更直观的看到父子容器内的Bean情况(个数 + 详情),了解其区别,此处A哥写个最简案例比较一波:

代码语言:javascript
复制
public static void main(String[] args) {
    ConfigurableApplicationContext bootContext = SpringApplication.run(Application.class, args);
    System.out.println("boot容器类型" + bootContext.getClass());
    System.out.println("boot容器Bean定义总数:" + bootContext.getBeanFactory().getBeanDefinitionCount());
    System.out.println("boot容器Bean实例总数:" + bootContext.getBeanFactory().getSingletonCount());

    ConfigurableApplicationContext cloudContext = (ConfigurableApplicationContext) bootContext.getParent();
    System.out.println("cloud容器类型" + cloudContext.getClass());
    System.out.println("cloud容器Bean定义总数:" + cloudContext.getBeanFactory().getBeanDefinitionCount());
    System.out.println("cloud容器Bean实例总数:" + cloudContext.getBeanFactory().getSingletonCount());
}

控制台输出:

代码语言:javascript
复制
boot容器类型class org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext
boot容器Bean定义总数:272
boot容器Bean实例总数:283

cloud容器类型class org.springframework.context.annotation.AnnotationConfigApplicationContext
cloud容器Bean定义总数:22
cloud容器Bean实例总数:34

SC容器(父容器)里的“内容”是远远少于SB容器(子容器的)。由于父容器里内容较少,可以详细看看。A哥这里帮你截图让你更直观的感受一把喽:

context.getBeanFactory().getBeanDefinitionNames()(共22个):

context.getBeanFactory().getSingletonNames()(共34个):

看完了这个结果,相信你有个感官的认识了。那么A哥给小伙伴们提3个小问题哈,你可以自行思考:

  1. 为何一个是34,一个是22,这两个值为毛不等呢?差异在哪儿呢?
  2. SB容器为毛只是单单启动完,就有这么多Bean了呢?为何它如此重呢?
  3. SB应用有几个context上下文?SC应用呢?

总结

关于Spring Cloud系列的第一篇内容就写到这喽。本文先解释了为何我要写这个系列,以及简单的介绍了下Spring Cloud Context工程,通过本文你是能够大概清楚A哥后面将如何展开的,比如下文将是本系列的主菜之一:BootstrapApplicationListener监听器负责Spring Cloud容器的引导/启动/初始化,敬请关注。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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