我已经编写了一个用于文件上传的Spring启动应用程序。我希望我的Spring启动应用程序在执行完成后关闭正在运行的localhost8080。
在Spring启动执行完成后,是否有任何可能的方法来终止服务器
有人可以帮助我吗
想以编程方式杀死本地主机。
您可以通过创建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);
}
}
我亲自检查过了,它正在工作。