我使用 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 行,然后添加我其他类中的主要方法来运行。除了这个快速的 jerry-rig,我可以使用 Maven 构建它并且它作为 Spring 应用程序运行,有点。
但是,我宁愿不必注释掉该行,而是使用完整的 Spring 框架。我怎样才能做到这一点?
原文由 Alexander Mills 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要运行
SpringApplication.run()
因为此方法会启动整个 Spring Framework。下面的代码将您的main()
与 Spring Boot 集成。Application.java
ReconTool.java
为什么不
SpringApplication.run(ReconTool.class, args)
因为这种方式 spring 没有完全配置(没有组件扫描等)。只创建在 run() 中定义的 bean (ReconTool)。
示例项目: https ://github.com/mariuszs/spring-run-magic