代码生成(springboot提示退出返回登录页面)
时间: 2023-07-25 17:38:51 浏览: 66
以下是一个简单的 Spring Boot 应用程序,在关闭应用程序时会提示用户确认是否退出,并返回登录页面。
首先,你需要在 `pom.xml` 文件中添加以下依赖项:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
```
然后,在应用程序的主类中,添加以下代码:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@SpringBootApplication
@Controller
public class Application {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class, args);
// 添加一个关闭钩子
context.registerShutdownHook();
// 监听关闭事件
context.addApplicationListener(new ApplicationListener<ContextClosedEvent>() {
@Override
public void onApplicationEvent(ContextClosedEvent event) {
// 提示用户确认是否退出
System.out.print("确定要退出吗?(Y/N) ");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine().trim();
if (input.equalsIgnoreCase("y")) {
// 退出应用程序并返回登录页面
System.exit(SpringApplication.exit(context, () -> 0));
} else {
// 取消退出
context.getApplicationName();
}
}
});
}
@GetMapping("/")
public String index() {
return "login";
}
@Bean
public ExitCodeGenerator exitCodeGenerator() {
return () -> 0; // 自定义退出码
}
}
```
这里我们添加了一个事件监听器,用于监听应用程序关闭事件。在事件发生时,会提示用户确认是否退出。如果用户输入 `Y`,则调用 `System.exit()` 方法退出应用程序并返回登录页面,否则取消退出。
此外,我们还添加了一个 `index()` 方法,用于返回登录页面。
你也可以根据需要修改提示信息和判断条件。
现在,当你使用 `Ctrl + C` 或其他方式关闭应用程序时,会输出以下消息:
```
2021-07-02 09:10:59.048 INFO 4288 --- [ Thread-2] o.s.b.a.ApplicationShutdownListeners : Closing application...
确定要退出吗?(Y/N) y
```