98 lines
3.3 KiB
Java
98 lines
3.3 KiB
Java
/*
|
|
* 自然写教学资源管理与内容分发系统软件 V1.0
|
|
* WritechResourceApplication.java - Spring Boot启动类与全局配置
|
|
*/
|
|
package com.writech.resource;
|
|
|
|
import org.springframework.boot.SpringApplication;
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
import org.springframework.cache.annotation.EnableCaching;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.scheduling.annotation.EnableAsync;
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.annotation.PreDestroy;
|
|
import java.util.TimeZone;
|
|
import java.util.logging.Logger;
|
|
|
|
/**
|
|
* 自然写教学资源管理与内容分发系统启动类
|
|
*
|
|
* 功能概述:
|
|
* - 课件/字帖/试卷模板管理
|
|
* - 点阵码资源生成与管理
|
|
* - 内容审核与版本控制
|
|
* - 多终端资源分发与CDN缓存
|
|
* - 教师自定义内容上传
|
|
* - 按年级/学科/出版社分类检索
|
|
* - 资源使用统计
|
|
*/
|
|
@SpringBootApplication
|
|
@EnableCaching
|
|
@EnableAsync
|
|
@EnableScheduling
|
|
@EnableConfigurationProperties
|
|
public class WritechResourceApplication {
|
|
|
|
private static final Logger logger =
|
|
Logger.getLogger(WritechResourceApplication.class.getName());
|
|
|
|
public static void main(String[] args) {
|
|
// 设置默认时区为东八区
|
|
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
|
|
SpringApplication.run(WritechResourceApplication.class, args);
|
|
logger.info("自然写资源管理平台已启动");
|
|
}
|
|
|
|
@PostConstruct
|
|
public void init() {
|
|
logger.info("资源平台初始化: 检查OSS连接、ES索引、CDN配置...");
|
|
// 初始化OSS连接
|
|
// 检查Elasticsearch索引是否存在,不存在则创建
|
|
// 预热CDN缓存配置
|
|
}
|
|
|
|
@PreDestroy
|
|
public void cleanup() {
|
|
logger.info("资源平台关闭: 释放连接资源...");
|
|
}
|
|
|
|
/**
|
|
* Web MVC配置:CORS跨域、拦截器
|
|
*/
|
|
@Configuration
|
|
static class WebConfig implements WebMvcConfigurer {
|
|
|
|
@Override
|
|
public void addCorsMappings(CorsRegistry registry) {
|
|
registry.addMapping("/api/**")
|
|
.allowedOrigins(
|
|
"https://admin.writech.com",
|
|
"https://teacher.writech.com"
|
|
)
|
|
.allowedMethods("GET", "POST", "PUT", "DELETE")
|
|
.allowedHeaders("*")
|
|
.allowCredentials(true)
|
|
.maxAge(3600);
|
|
}
|
|
|
|
@Override
|
|
public void addInterceptors(InterceptorRegistry registry) {
|
|
// 审计日志拦截器:记录所有资源操作
|
|
// registry.addInterceptor(new AuditLogInterceptor())
|
|
// .addPathPatterns("/api/**");
|
|
|
|
// 权限校验拦截器:按学校/区域授权
|
|
// registry.addInterceptor(new PermissionInterceptor())
|
|
// .addPathPatterns("/api/**")
|
|
// .excludePathPatterns("/api/v1/health");
|
|
}
|
|
}
|
|
}
|