移动到 Spring 引导。从旧 main class 迁移逻辑

Moving to the Spring Boot. Migration of logic from the old main class

我对 Spring 启动和开发还很陌生,所以,我遇到了一个问题。我有一个旧项目需要迁移到 Spring Boot.原始的 main 方法具有超酷的多线程逻辑。在我的理解中,public static void main(String[] args) 是程序的入口点,现在在创建 Spring Boot 项目之后,@springbootapplication 是入口点。如何访问方法的原始逻辑?它应该以某种方式进行转换吗?我花了几个小时寻找合适的解决方案,但没有运气。你能指点我吗?感谢您的帮助:)

你必须使用@SpringBootApplication,而且还需要修改主要方法,如:

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

这将启动您的应用程序。

然后将您的 main 方法的原始代码移动到一个新的 class,它带有注释 @Component。实施 CommandLineRunner,并覆盖 运行 方法。所以像:

@Component 
public class YourOldMainClass implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        //Your code here
    } 
}

当您的应用程序启动时,spring 会将带注释的 'near everything' 加载到其容器中,因此您的带注释的 @Component class 也应该被加载。具有覆盖 运行 方法的 CommandLineRunner 将在启动时自动调用您的方法。

此外,不要忘记在您的项目旁边或您的构建自动化工具(如 Maven)旁边包含必要的 spring 引导 jar。