crpm-proj-code-set/sbewmxjxt/src/main/java/cn/com/tenlion/AimzProjectApplication.java

55 lines
1.9 KiB
Java
Raw Normal View History

2025-06-30 09:30:01 +08:00
package cn.com.tenlion;
import cn.com.tenlion.startup.AppStart;
import cn.com.tenlion.util.AppUtil;
import cn.com.tenlion.util.PortChecker;
import org.h2.tools.Server;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
@SpringBootApplication(scanBasePackages = {"cn.com.tenlion"})
@MapperScan("cn.com.tenlion.mapper")
public class AimzProjectApplication {
public static void main(String[] args) {
for (; ; ) {
boolean isPortInUse = PortChecker.isPortInUse(AppStart.SERVER_PORT);
if (!isPortInUse) {
break;
}
AppStart.SERVER_PORT += 10;
}
System.out.println(AppStart.SERVER_PORT);
startH2Server();
Map<String, Object> defaultProp = new HashMap<>();
defaultProp.put("server.port", AppStart.SERVER_PORT);
defaultProp.put("spring.datasource.url", "jdbc:h2:tcp://localhost:" + (AppStart.SERVER_PORT + 1) + "/aimzdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
SpringApplication app = new SpringApplication(AimzProjectApplication.class);
app.setDefaultProperties(defaultProp);
app.run(args);
}
private static void startH2Server() {
String dbBaseDir = AppUtil.getAppPath() + File.separator + "db";
try {
Server h2Server = Server.createTcpServer(
"-tcp",
"-tcpPort", String.valueOf(AppStart.SERVER_PORT + 1),
"-tcpAllowOthers",
"-ifNotExists",
"-baseDir", dbBaseDir.replace(" ", "\\ ")
).start();
System.out.println("H2 Server started on port " + h2Server.getPort() + ", path: " + dbBaseDir);
} catch (Exception e) {
e.printStackTrace();
}
}
}