为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot 在运行时获取主类的名称

Spring Boot 在运行时获取主类的名称

一只斗牛犬 2021-11-17 15:46:10
我正在尝试根据在运行时扫描 Java 注释中的答案为自定义注释编写扫描器。但是,为了加快进程,我只想扫描主包(包含主类及其子包的包)下的类。认为确定包名称的最简单方法是从主类。我正在编写的代码最终会出现在 Spring Boot 应用程序将使用的库中。所以我无法知道主类的名称。有没有办法在 Spring Boot 应用程序中在运行时确定主类的名称?
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

假设你的主类用 注释@SpringBootApplication,它可以使用ApplicationContext::getBeansWithAnnotation():


@Service

public class MainClassFinder {


    @Autowired

    private ApplicationContext context;


    public String findBootClass() {

        Map<String, Object> annotatedBeans = context.getBeansWithAnnotation(SpringBootApplication.class);

        return annotatedBeans.isEmpty() ? null : annotatedBeans.values().toArray()[0].getClass().getName();

    }

}


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 433 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信