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

有条件地不加载bean时显示消息

柴坚诚
2023-03-14

我有一个服务类,用

@Service
@ConditionalOnProperty(...)

我想在启动服务时显示一条自定义消息,内容如下

xxx Service is not being loaded

有办法做到这一点吗?由于bean没有加载,我不能使用@PostConstruct或类似的东西

共有1个答案

傅朗
2023-03-14

您可以在init spring应用程序之前检查ApplicationContext中的所有bean,如果缺少或发现任何实例,可以处理您的逻辑

Eg.


@SpringBootApplication
public class YourApplication implements CommandLineRunner {


    @Autowired private ApplicationContext applicationContext;

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

    @Override
    public void run(String... args) throws Exception {
       System.out.println("Listing all beans");
       Arrays.asList(applicationContext.getBeanDefinitionNames()).stream().forEach(System.out::println);

       System.out.println("Listing all beans by type");
       Arrays.asList(applicationContext.getBeanNamesForType(YourTypeBean.class)).stream().forEach(System.out::println);
        
    }

}
 类似资料:
  • 问题内容: 我一直在研究CRUD应用程序,我需要将数据从数据库导出到csv文件。为了导出,我不得不以以下代码所示的方式禁用ajax: 在调用的方法中,我创建文件并通过OmniFaces实用程序方法下载该文件: 使用相同的方法,我检查实际上是否有任何数据,并且如果没有任何数据,则显示警告对话框: 现在,尽管所有这些操作都能按预期工作,但是问题在于,由于禁用了ajax,因此无法动态显示对话框,并且需要

  • 如果该行没有详细信息怎么办?我使用WPF来显示带有行详细信息模板的数据。如果用户没有地址详细信息,我不需要行详细信息。我只需要那些有地址详细信息的用户的行详细信息。

  • 但我会重复两次几乎相同的比较,这看起来更糟糕。你们怎么处理?

  • 我有一些代码使用聚合物属性e <代码> polymer的工作方式是,我不能简单地说<code>force-shorrow=“false”,如果我想禁用该属性,必须将其完全删除。在Angular2中是否有方法有条件地删除整个属性?我似乎找不到关于这个话题的任何信息。我可以使用并重复整个元素,包括属性和不包括属性,但如果可能的话,我宁愿不这样做。谢谢 编辑 - 为什么将此问题标记为重复并关闭?我在有问

  • 本文向大家介绍aurelia 有条件地显示和隐藏HTML元素,包括了aurelia 有条件地显示和隐藏HTML元素的使用技巧和注意事项,需要的朋友参考一下 示例 使用时show.bind,元素保留在页面中,并且通过使用场景display:none或display:block在场景后隐藏或可见。            

  • 发送附件时,我看不到正文消息(message.setText(this.getEmailBody());)在电子邮件中。如果没有附件,电子邮件将显示正文消息。电子邮件被发送到gmail账户。你知道为什么会这样吗?