mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-05 15:57:32 +00:00
86 lines
3.1 KiB
Java
86 lines
3.1 KiB
Java
package com.example.demo;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.SpringApplication;
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
|
import org.springframework.context.event.EventListener;
|
|
import org.springframework.core.env.Environment;
|
|
|
|
import com.example.demo.config.AppProperties;
|
|
import com.example.demo.util.BrowserUtil;
|
|
|
|
/**
|
|
* 主要功能:
|
|
* 1. 文件读取、写入、编辑
|
|
* 2. 目录列表和结构查看
|
|
* 4. 连续性文件操作
|
|
*/
|
|
@SpringBootApplication
|
|
@EnableConfigurationProperties(AppProperties.class)
|
|
@EnableAspectJAutoProxy
|
|
public class CopilotApplication {
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(CopilotApplication.class);
|
|
|
|
@Autowired
|
|
private AppProperties appProperties;
|
|
|
|
@Autowired
|
|
private Environment environment;
|
|
|
|
public static void main(String[] args) {
|
|
SpringApplication.run(CopilotApplication.class, args);
|
|
}
|
|
|
|
/**
|
|
* 应用启动完成后的事件监听器
|
|
* 自动打开浏览器访问应用首页
|
|
*/
|
|
@EventListener(ApplicationReadyEvent.class)
|
|
public void onApplicationReady() {
|
|
AppProperties.Browser browserConfig = appProperties.getBrowser();
|
|
|
|
if (!browserConfig.isAutoOpen()) {
|
|
logger.info("Browser auto-open is disabled");
|
|
return;
|
|
}
|
|
|
|
// 获取实际的服务器端口
|
|
String port = environment.getProperty("server.port", "8080");
|
|
String actualUrl = browserConfig.getUrl().replace("${server.port:8080}", port);
|
|
|
|
logger.info("Application started successfully!");
|
|
logger.info("Preparing to open browser in {} seconds...", browserConfig.getDelaySeconds());
|
|
|
|
// 在新线程中延迟打开浏览器,避免阻塞主线程
|
|
new Thread(() -> {
|
|
try {
|
|
Thread.sleep(browserConfig.getDelaySeconds() * 1000L);
|
|
|
|
if (BrowserUtil.isValidUrl(actualUrl)) {
|
|
boolean success = BrowserUtil.openBrowser(actualUrl);
|
|
if (success) {
|
|
logger.info("✅ Browser opened successfully: {}", actualUrl);
|
|
System.out.println("🌐 Web interface opened: " + actualUrl);
|
|
} else {
|
|
logger.warn("❌ Failed to open browser automatically");
|
|
System.out.println("⚠️ Please manually open: " + actualUrl);
|
|
}
|
|
} else {
|
|
logger.error("❌ Invalid URL: {}", actualUrl);
|
|
System.out.println("⚠️ Invalid URL configured: " + actualUrl);
|
|
}
|
|
|
|
} catch (InterruptedException e) {
|
|
logger.warn("Browser opening was interrupted", e);
|
|
Thread.currentThread().interrupt();
|
|
}
|
|
}).start();
|
|
}
|
|
}
|