gpt4 book ai didi

java - Spring Boot,如何在启动时以编程方式再次显示横幅

转载 作者:行者123 更新时间:2023-12-02 02:03:58 25 4
gpt4 key购买 nike

如果 springboot 应用程序启动,则会显示 Logo /横幅。我在banner.txt 文件中添加了自己的彩色横幅。它在开始时显示,一切都很好。

但是我想在成功或不成功启动后重复我的横幅作为最后的启动消息。例如:横幅+“运行”或横幅+“不要运行”。

类似这样的事情:

 public static void main( String[] args )
{
try {
SpringApplication.run( ControllerUndMain.class, args );
showLogo();
System.out.println('runs')
} catch(Exception e){
showLogo();
System.out.println('not working')
}
}

这可以帮助我们的管理员和开发人员了解启动阶段是否结束以及应用程序是否运行。

问题:如何以编程方式显示横幅?

最佳答案

我找不到任何直接的方法。我深入了解了 spring 代码库并找到了这样做的方法。我已经在我的项目中进行了测试并且工作正常。

注意:我复制了 Spring 用来打印横幅的一些类。我在我们的代码库中没有看到任何关于重用的问题。

这是完整的代码......

运行 springboot 应用程序的主类,我创建了打印横幅的方法。

public class DemoApplication {

@Autowired
private Environment env;

public static void main(String[] args) {
SpringApplication app = new SpringApplication(DemoApplication.class);

ConfigurableApplicationContext test = app.run(args);

DemoApplication application = new DemoApplication();
application.printBanner(app, test);
}

public void printBanner(SpringApplication app, ConfigurableApplicationContext test) {
ResourceLoader resourceLoader = (app.getResourceLoader() != null ? app.getResourceLoader()
: new DefaultResourceLoader(app.getClassLoader()));
SpringApplicationBannerPrinter bannerPrinter = new SpringApplicationBannerPrinter(resourceLoader, null);
Banner banner = bannerPrinter.print(DemoApplication.class, test.getEnvironment());
banner.printBanner(test.getEnvironment(), DemoApplication.class, System.out);
}

}

添加上述代码库后,只需在项目中复制 SpringApplicationBannerPrinterSpringBootBanner 类(您将从 Spring 代码库中获取这些)并运行。

注意:1)我在此处提出答案之前已经进行了测试。 2)为了简单起见,我没有粘贴SpringApplicationBannerPrinterSpringBootBanner。如果您希望我将这些类(class)粘贴到答案中,请告诉我

关于java - Spring Boot,如何在启动时以编程方式再次显示横幅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113265/

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