当前位置: 首页 > 知识库问答 >
问题:

打印加载的所有Spring bean-Spring Boot

华宪
2023-03-14

如何了解作为Spring启动应用程序一部分加载的所有bean的名称?我想在main方法中有一些代码来打印服务器启动后加载的bean的详细信息。

共有3个答案

张华池
2023-03-14

好吧,尽管这个问题已经得到了回答,但我仍然想提供一个答案,这是一个Java8变体:)

Arrays.asList(context.getBeanDefinitionNames()).stream().sorted().forEach(System.out::println);

让我们来做Java8!!!

华永逸
2023-03-14

我可以建议使用执行器吗?它提供了几个endpoint,包括列出应用程序中所有bean的/bean。你说“一旦服务器启动”,所以这是网络应用程序的一个选项。

设置执行器

https://spring.io/guides/gs/actuator-service/

执行器中的endpoint列表

http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

谷飞星
2023-03-14

如《Spring靴入门指南》所示:https://spring.io/guides/gs/spring-boot/

@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

  @Bean
  public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
    return args -> {

      System.out.println("Let's inspect the beans provided by Spring Boot:");

      String[] beanNames = ctx.getBeanDefinitionNames();
      Arrays.sort(beanNames);
      for (String beanName : beanNames) {
        System.out.println(beanName);
      }
    };
  }    
}

正如@Velu在评论中提到的,这不会列出手动注册的bean。

如果您想这样做,可以使用getSingletonNames()。但是要小心。此方法仅返回已实例化的bean。如果bean尚未实例化,则getSingletonNames()不会返回它。

 类似资料:
  • 问题内容: 有没有办法打印所有在启动时加载的spring bean?我正在使用Spring 2.0。 问题答案: 是的,联系并致电 您可以通过以下方式获取上下文: 实施 与注射它/ (2.5)之后 用 相关:您还可以通过注册Bean 来检测每个Bean的注册。它将为每个bean通知。

  • 我创建了一个简单的SpringBoot应用程序。有两类: 1) ManagedBean类 2) NonmangedBean:它具有ManagedBean类的依赖项 还有第三个服务类,它有Rest结束点。 首先,我调用 /processBeanendpoint,将具体对象的NonmangedBean类和自动连接它。(在这里,我知道bean将生活在Spring Container中,直到我关闭服务器。

  • 问题内容: 对于Python中的类,如何定义一个函数以函数中定义的格式打印类的每个实例? 问题答案: 在这种情况下,我看到两个选择: 垃圾收集器 这样做的缺点是,当您有很多对象时,它会非常慢,但会与您无法控制的类型一起使用。 使用mixin和weakrefs 在这种情况下,所有引用都将作为弱引用存储在列表中。如果您经常创建和删除很多实例,则应在迭代后清理弱引用列表,否则会产生很多麻烦。 这种情况下

  • 问题内容: 我有一个动物类,具有几个属性,例如: 我现在想将所有这些属性打印到文本文件中。我现在做的丑陋方式是: 有没有更好的Pythonic方式可以做到这一点? 问题答案: 在这种简单情况下,您可以使用: 如果要将Python对象存储在磁盘上,则应查看一下货架- Python对象持久性 。

  • 我们可以用这里所述的算法求有向图中的圈数。我需要理解算法。 (1)最后那句话到底有什么用处?对algo的工作原理进行简短的描述会很有帮助。由于算法基本上是统计从一个节点返回到同一节点的周期数,所以我们可以使用另一个数组,称之为v,并做以下技巧: (2)我不能实现我刚才写的算法。这是主要的问题,但我认为我需要理解上面的(1)来理解打印所有循环的代码。 我了解到互联网上有算法,我正在尝试使用这个算法。

  • 下面的函数打印所有的子路径。是否可以只显示完整的路径,即A->B->C(包含以下所需的输出)。