gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:42:53 57 4
gpt4 key购买 nike

我正在尝试根据Scanning Java annotations at runtime中的答案编写一个用于自定义注释的扫描仪。 .

但是,为了加快进程,我只想扫描主包(包含主类及其子包的包)下的类。认为确定包名称的最简单方法是从主类中。

我正在编写的代码最终会出现在一个库中,该库将由 Spring Boot 应用程序使用。所以我无法知道主类的名称。有没有办法在 Spring Boot 应用程序运行时确定主类的名称?

问候,

阿努普

最佳答案

假设您的主类使用@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();
}
}

关于java - Spring Boot 在运行时获取主类的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806176/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com