gpt4 book ai didi

java - SpringApplication.run 主方法

转载 作者:IT老高 更新时间:2023-10-28 13:45:04 24 4
gpt4 key购买 nike

我使用 Spring Starter 项目模板在 Eclipse 中创建了一个项目。

它自动创建了一个 Application 类文件,并且该路径与 POM.xml 文件中的路径匹配,所以一切正常。这是应用程序类:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

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

这是我正在构建的命令行应用程序,为了让它运行,我必须注释掉 SpringApplication.run 行,然后从我的其他类中添加 main 方法来运行。除了这个快速的 jerry-rig 之外,我还可以使用 Maven 构建它,它可以作为 Spring 应用程序运行。

不过,我宁愿不必注释掉该行,而是使用完整的 Spring 框架。我该怎么做?

最佳答案

你需要运行 SpringApplication.run() 因为这个方法会启动整个 Spring 框架。下面的代码将您的 main() 与 Spring Boot 集成。

Application.java

@SpringBootApplication
public class Application {

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

ReconTool.java

@Component
public class ReconTool implements CommandLineRunner {

@Override
public void run(String... args) throws Exception {
main(args);
}

public static void main(String[] args) {
// Recon Logic
}
}

为什么不 SpringApplication.run(ReconTool.class, args)

因为这种方式 spring 没有完全配置(没有组件扫描等)。仅创建 run() 中定义的 bean (ReconTool)。

示例项目:https://github.com/mariuszs/spring-run-magic

关于java - SpringApplication.run 主方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271705/

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