Java Spring Boot 后端服务,提供 REST API 接口。
vulsystem-backend/
├── src/
│ ├── main/
│ │ ├── java/ # Java 源代码
│ │ │ └── com/example/vulsystem/
│ │ │ ├── controller/ # REST 控制器
│ │ │ ├── service/ # 业务逻辑层
│ │ │ ├── dao/ # 数据访问层
│ │ │ ├── entity/ # 数据实体
│ │ │ ├── config/ # 配置类
│ │ │ └── util/ # 工具类
│ │ └── resources/ # 资源文件
│ │ ├── application.yml # Spring Boot 配置
│ │ ├── application-prod.yml
│ │ └── application-dev.yml
│ └── test/ # 单元测试
├── pom.xml # Maven 配置
├── Dockerfile # Docker 镜像定义
└── README.md
- JDK 11+
- Maven 3.6+
- MySQL 8.0+
cd /root/vulsystem-backend
mvn clean install编辑 src/main/resources/application-dev.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/kulin
username: root
password: your_password
jpa:
hibernate:
ddl-auto: updatemvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=dev"应用将在 http://localhost:8081 启动。
cd /root/vulsystem-orchestration
docker compose build vulsystem-backenddocker compose up -d vulsystem-backenddocker compose logs -f vulsystem-backendGET /api/user/info- 获取用户信息POST /api/user/login- 用户登录POST /api/user/logout- 用户登出
GET /api/project/list- 获取项目列表GET /api/project/{id}- 获取项目详情POST /api/project- 创建项目PUT /api/project/{id}- 更新项目DELETE /api/project/{id}- 删除项目
GET /vulnerabilityReport/list- 获取漏洞列表GET /vulnerabilityReport/{id}- 获取漏洞详情
GET /company/getStrategy- 获取公司策略
spring:
application:
name: vulsystem-backend
datasource:
url: jdbc:mysql://vulsystem-mysql:3306/kulin
username: root
password: ${MYSQL_ROOT_PASSWORD}
jpa:
hibernate:
ddl-auto: validate
show-sql: false
mvc:
servlet:
path: /api
server:
port: 8081
servlet:
context-path: /kulin
user- 用户表project- 项目表vulnerability- 漏洞表scan_report- 扫描报告表company- 公司表company_strategy- 公司策略表
# 进入 MySQL 容器
docker compose exec vulsystem-mysql mysql -u root -p${MYSQL_ROOT_PASSWORD}
# 创建数据库
CREATE DATABASE IF NOT EXISTS kulin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 使用数据库
USE kulin;
# 导入 SQL 脚本(如果有)
source /path/to/init.sql;mvn testmvn verifymvn jacoco:report编辑 config/CorsConfig.java:
@Configuration
public class CorsConfig {
@Bean
public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("http://localhost", "http://localhost:80"));
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
// ...
}
}后端使用 JWT 进行身份验证。Token 需要在请求头中携带:
Authorization: Bearer <token>curl http://localhost:8081/actuator/healthcurl http://localhost:8081/actuator/metrics错误信息: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
解决方案:
# 检查 MySQL 容器状态
docker compose ps | grep mysql
# 检查数据库连接
docker compose exec vulsystem-mysql mysql -u root -p${MYSQL_ROOT_PASSWORD} -e "SELECT 1;"错误信息: Address already in use (:8081)
解决方案:
# 查找占用 8081 端口的进程
lsof -i :8081
# 或者修改端口
# 编辑 docker-compose.yml,修改 ports 配置错误信息: java.lang.OutOfMemoryError
解决方案:
# 修改 docker-compose.yml 中的内存限制
environment:
- JAVA_OPTS=-Xms512m -Xmx2g主要依赖项:
- Spring Boot 2.x
- Spring Data JPA
- MySQL Connector/J
- Lombok
- Jackson
- Commons Lang3
- Log4j2
查看完整依赖:pom.xml
mvn clean package -DskipTestsdocker build -t vulsystem-backend:latest .- 使用生产数据库: 修改
application-prod.yml - 启用 HTTPS: 在 nginx/ingress 层处理
- 配置日志级别:
logging.level.root=WARN - 调整 JVM 参数:
-Xms1g -Xmx4g - 启用缓存: 配置 Redis 缓存
- 遵循 Google Java Style Guide
- 使用 Lombok 减少样板代码
- API 返回统一的 Response 对象
- 异常统一处理
最后更新: 2025-11-07 技术栈: Java 11+, Spring Boot 2.x, MySQL 8.0