QAUP_Management/qaup-admin/src/main/java/com/qaup/QuapApplication.java

63 lines
2.4 KiB
Java

package com.qaup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
import org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.core.task.support.TaskExecutorAdapter;
import org.springframework.scheduling.annotation.EnableScheduling;
import java.util.concurrent.Executors;
/**
* 启动程序
*
* @author qaup
*/
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@EnableScheduling
public class QuapApplication
{
private static final Logger logger = LoggerFactory.getLogger(QuapApplication.class);
public static void main(String[] args)
{
logger.info("🚀 青岛机场无人车管理系统正在启动...");
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(QuapApplication.class, args);
logger.info("✅ 后台管理系统启动成功!");
logger.info("🌐 访问地址: http://localhost:8080");
logger.info("🔗 WebSocket端点: ws://localhost:8080/collision");
logger.info("🧵 使用JDK21虚拟线程处理请求");
System.out.println("(♥) 后台管理系统启动成功\n");
}
/**
* 配置Spring MVC使用虚拟线程处理请求
* JDK21虚拟线程可以显著提高并发性能
*/
@SuppressWarnings("null")
@Bean(TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME)
public AsyncTaskExecutor asyncTaskExecutor() {
return new TaskExecutorAdapter(Executors.newVirtualThreadPerTaskExecutor());
}
/**
* 配置Tomcat使用虚拟线程处理请求
*/
@Bean
public TomcatProtocolHandlerCustomizer<?> protocolHandlerVirtualThreadExecutorCustomizer() {
return protocolHandler -> {
logger.info("配置Tomcat使用虚拟线程池");
protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
};
}
}