Spring Data Jpa 希望在我的Spring Boot 应用程序完成执行后自动终止localhost8080

4dc9hkyq  于 2022-11-29  发布在  Spring
关注(0)|答案(2)|浏览(135)

我已经写了一个用于文件上传的spring boot应用程序。我希望我的spring boot应用程序在localhost 8080执行完成后关闭它。
是否有任何可能的方法可以在 Spring 启动执行完成后终止服务器
有人能帮我一下吗
我想以编程方式终止本地主机。

l3zydbqr

l3zydbqr1#

可以通过创建Bean以下列方式执行此操作:

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

}
您可以在任何位置自动连接此bean,并使用initiateShutdown函数关闭应用程序上下文和服务器,如下所示:

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

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

7nbnzgx9

7nbnzgx92#

只需将以下代码放在上传代码末尾:

@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);

       }    

     }

我已经亲自检查过了,它是工作的。

相关问题