移动到 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。
我对 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。