提问者:小点点

想在我的Spring启动应用程序完成执行后自动杀死我的localhost8080


我已经编写了一个用于文件上传的Spring启动应用程序。我希望我的Spring启动应用程序在执行完成后关闭正在运行的localhost8080。

在Spring启动执行完成后,是否有任何可能的方法来终止服务器

有人可以帮助我吗

想以编程方式杀死本地主机。


共2个答案

匿名用户

您可以通过创建bean以以下方式执行此操作:

@Component
class ShutdownManager {
@Autowired
private ApplicationContext appContext;
public void initiateShutdown(int returnCode){
    SpringApplication.exit(appContext, () -> returnCode);
}

}

您可以在任何地方自动装配此bean并使用startateShutdown函数关闭应用程序上下文和服务器,如下所示:

@Component
public class Controller{
@Autowired
private final ShutdownManager shutdownManager;
  @GetMapping("/")
public void Shutdown(){
   shutdownManager.initiateShutdown(0);
}
}

或者,您可以简单地在任何控制器上自动连接此bean,并使用返回码在任何您想要的地方调用此方法。

匿名用户

只需将此代码放在上传代码的末尾:

@Controller
public class Upload {

    @Autowired
    private ApplicationContext context;

    @PostMapping("/upload")
    public void uploadFile(){

    // do upload the file here.
    //after uploading shutdown the spring boot application.

    SpringApplication.exit(context, (ExitCodeGenerator) () -> 0);

       }    

     }

我亲自检查过了,它正在工作。