refactor(项目结构): 重构项目包结构和异常处理
- 将ResponseMessage和GlobalExceptionHandler移动到exceptopn包 - 重构服务接口包结构,将接口从service.imp移动到service包 - 更新所有控制器中ResponseMessage的引用路径 - 统一服务接口命名规范,去除I前缀 - 调整application.properties配置,统一服务端口 - 优化SecurityConfig权限配置,简化API访问控制 - 清理旧的日志文件 - 更新开发环境配置,添加前端开发端口支持
This commit is contained in:
@@ -63,25 +63,21 @@ public class SecurityConfig {
|
||||
// 允许公开访问的路径
|
||||
// 登录和认证相关端点应该全部公开
|
||||
.antMatchers("/api/auth/**").permitAll()
|
||||
// 公开get请求
|
||||
.antMatchers(HttpMethod.GET,"/api/help/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/category-attributes/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/markdowns/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/articles/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/messages/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/categories/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/category-attributes/**").permitAll()
|
||||
.antMatchers(HttpMethod.GET,"/api/nonsense/**").permitAll()
|
||||
// 公开post请求
|
||||
.antMatchers(HttpMethod.POST,"/api/messages/**").permitAll()
|
||||
.antMatchers(HttpMethod.POST,"/api/users/**").permitAll()
|
||||
// 文章浏览量增加接口公开
|
||||
.antMatchers(HttpMethod.POST,"/api/articles/view/**").permitAll()
|
||||
// 所有GET请求公开
|
||||
.antMatchers(HttpMethod.GET,"/api/**").permitAll()
|
||||
// 新增、删除、修改操作需要管理员权限
|
||||
.antMatchers(HttpMethod.POST,"/api/**").hasRole("ADMIN")
|
||||
.antMatchers(HttpMethod.PUT,"/api/**").hasRole("ADMIN")
|
||||
.antMatchers(HttpMethod.DELETE,"/api/**").hasRole("ADMIN")
|
||||
// 管理员才能访问的路径
|
||||
.antMatchers("/api/admin/**").hasRole("ADMIN")
|
||||
// 其他所有请求都需要认证
|
||||
.anyRequest().authenticated()
|
||||
.and()
|
||||
// 配置会话管理,使用无状态会话
|
||||
// 配置会话管理,使用无状态会话策略
|
||||
// 这意味着每个请求都需要包含认证信息(如JWT)
|
||||
.sessionManagement()
|
||||
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
||||
.and()
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Article;
|
||||
import com.qf.myafterprojecy.pojo.dto.ArticleDto;
|
||||
import com.qf.myafterprojecy.pojo.dto.PageDto;
|
||||
import com.qf.myafterprojecy.service.imp.IArticleService;
|
||||
import com.qf.myafterprojecy.service.IArticleService;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.utils.JwtUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Category_attribute;
|
||||
import com.qf.myafterprojecy.pojo.dto.CategoryAttributeDto;
|
||||
import com.qf.myafterprojecy.service.imp.ICategoryAttributeService;
|
||||
import com.qf.myafterprojecy.service.ICategoryAttributeService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Category;
|
||||
import com.qf.myafterprojecy.pojo.dto.CategoryDto;
|
||||
import com.qf.myafterprojecy.service.imp.ICategoryService;
|
||||
import com.qf.myafterprojecy.service.ICategoryService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Message;
|
||||
import com.qf.myafterprojecy.pojo.dto.MessageDto;
|
||||
import com.qf.myafterprojecy.service.imp.IMessageService;
|
||||
import com.qf.myafterprojecy.service.IMessageService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Nonsense;
|
||||
import com.qf.myafterprojecy.pojo.dto.NonsenseDto;
|
||||
import com.qf.myafterprojecy.service.imp.INonsenseService;
|
||||
import com.qf.myafterprojecy.service.INonsenseService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.qf.myafterprojecy.controller;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Users;
|
||||
import com.qf.myafterprojecy.pojo.dto.UserDto;
|
||||
import com.qf.myafterprojecy.service.imp.IUserService;
|
||||
import com.qf.myafterprojecy.service.IUserService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.qf.myafterprojecy;
|
||||
package com.qf.myafterprojecy.exceptopn;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@@ -7,8 +7,6 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
|
||||
@RestControllerAdvice
|
||||
public class GlobalExceptionHandler {
|
||||
Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.qf.myafterprojecy.config;
|
||||
package com.qf.myafterprojecy.exceptopn;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.service.imp;
|
||||
package com.qf.myafterprojecy.service;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Article;
|
||||
import com.qf.myafterprojecy.pojo.dto.ArticleDto;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.service.imp;
|
||||
package com.qf.myafterprojecy.service;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Category_attribute;
|
||||
import com.qf.myafterprojecy.pojo.dto.CategoryAttributeDto;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.service.imp;
|
||||
package com.qf.myafterprojecy.service;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Category;
|
||||
import com.qf.myafterprojecy.pojo.dto.CategoryDto;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.service.imp;
|
||||
package com.qf.myafterprojecy.service;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Message;
|
||||
import com.qf.myafterprojecy.pojo.dto.MessageDto;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.service.imp;
|
||||
package com.qf.myafterprojecy.service;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Nonsense;
|
||||
import com.qf.myafterprojecy.pojo.dto.NonsenseDto;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.qf.myafterprojecy.service.imp;
|
||||
package com.qf.myafterprojecy.service;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Users;
|
||||
import com.qf.myafterprojecy.pojo.dto.UserDto;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.qf.myafterprojecy.service;
|
||||
package com.qf.myafterprojecy.service.impl;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Article;
|
||||
import com.qf.myafterprojecy.pojo.dto.ArticleDto;
|
||||
import com.qf.myafterprojecy.repository.ArticleRepository;
|
||||
import com.qf.myafterprojecy.repository.CategoryAttributeRepository;
|
||||
import com.qf.myafterprojecy.service.imp.IArticleService;
|
||||
import com.qf.myafterprojecy.service.IArticleService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.qf.myafterprojecy.service;
|
||||
package com.qf.myafterprojecy.service.impl;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Category_attribute;
|
||||
import com.qf.myafterprojecy.pojo.dto.CategoryAttributeDto;
|
||||
import com.qf.myafterprojecy.repository.CategoryAttributeRepository;
|
||||
import com.qf.myafterprojecy.service.imp.ICategoryAttributeService;
|
||||
import com.qf.myafterprojecy.service.ICategoryAttributeService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.qf.myafterprojecy.service;
|
||||
package com.qf.myafterprojecy.service.impl;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Category;
|
||||
import com.qf.myafterprojecy.pojo.dto.CategoryDto;
|
||||
import com.qf.myafterprojecy.repository.CategoryRepository;
|
||||
import com.qf.myafterprojecy.service.imp.ICategoryService;
|
||||
import com.qf.myafterprojecy.service.ICategoryService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.qf.myafterprojecy.service;
|
||||
package com.qf.myafterprojecy.service.impl;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Message;
|
||||
import com.qf.myafterprojecy.pojo.dto.MessageDto;
|
||||
import com.qf.myafterprojecy.repository.MessageRepository;
|
||||
import com.qf.myafterprojecy.service.imp.IMessageService;
|
||||
import com.qf.myafterprojecy.service.IMessageService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.qf.myafterprojecy.service;
|
||||
package com.qf.myafterprojecy.service.impl;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Nonsense;
|
||||
import com.qf.myafterprojecy.pojo.dto.NonsenseDto;
|
||||
import com.qf.myafterprojecy.repository.NonsenseRepository;
|
||||
import com.qf.myafterprojecy.service.imp.INonsenseService;
|
||||
import com.qf.myafterprojecy.service.INonsenseService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.qf.myafterprojecy.service;
|
||||
package com.qf.myafterprojecy.service.impl;
|
||||
|
||||
import com.qf.myafterprojecy.config.ResponseMessage;
|
||||
import com.qf.myafterprojecy.exceptopn.ResponseMessage;
|
||||
import com.qf.myafterprojecy.pojo.Users;
|
||||
import com.qf.myafterprojecy.pojo.dto.UserDto;
|
||||
import com.qf.myafterprojecy.repository.UsersRepository;
|
||||
import com.qf.myafterprojecy.service.imp.IUserService;
|
||||
import com.qf.myafterprojecy.service.IUserService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -5,7 +5,7 @@
|
||||
# ====================================================================
|
||||
|
||||
# 应用基本配置 - 开发特定
|
||||
server.port=7070
|
||||
server.port=7071
|
||||
|
||||
# ====================================================================
|
||||
# 数据库与JPA配置 - 开发用
|
||||
@@ -38,7 +38,7 @@ jwt.token-prefix=Bearer
|
||||
# 安全与CORS配置 - 开发用
|
||||
# ====================================================================
|
||||
# CORS配置(开发环境允许所有本地前端访问)
|
||||
cors.allowed-origins=http://localhost:3000,http://localhost:8080
|
||||
cors.allowed-origins=http://localhost:3000,http://localhost:8080,http://localhost:5173
|
||||
cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
|
||||
cors.allowed-headers=*
|
||||
cors.allow-credentials=true
|
||||
@@ -58,6 +58,10 @@ logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||||
# 热部署配置
|
||||
spring.devtools.restart.enabled=true
|
||||
spring.devtools.restart.additional-paths=src/main/java
|
||||
# 解决DevTools重启时丢失profile配置的问题
|
||||
spring.devtools.restart.poll-interval=2s
|
||||
spring.devtools.restart.quiet-period=1s
|
||||
spring.devtools.restart.exclude=static/**,public/**
|
||||
|
||||
# Actuator配置(开发环境开放更多端点便于调试)
|
||||
management.endpoints.web.exposure.include=*
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# ====================================================================
|
||||
|
||||
# 应用基本配置 - 生产特定
|
||||
server.port=8080
|
||||
server.port=7070
|
||||
|
||||
# ====================================================================
|
||||
# 数据库与JPA配置 - 生产用
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# 环境激活配置
|
||||
# 说明:默认激活开发环境,生产环境部署时应通过命令行参数或环境变量覆盖
|
||||
spring.profiles.active=dev
|
||||
|
||||
server.port=7070
|
||||
# 应用名称(通用配置)
|
||||
spring.application.name=web_project
|
||||
|
||||
|
||||
Reference in New Issue
Block a user