35互联做的网站,无证做音频网站违法吗,企业网站推广的重要性,澄迈网站新闻建设1.在resources里面新建一个mappers包#xff0c;包里面放xml文件
2.在application.properties里面配置数据库和knif4j的链接spring.application.name工程名字
server.port8080spring.datasource.url数据库链接
spring.datasource.username数据库用户名
spring.datasource.pass…1.在resources里面新建一个mappers包包里面放xml文件
2.在application.properties里面配置数据库和knif4j的链接spring.application.name工程名字
server.port8080spring.datasource.url数据库链接
spring.datasource.username数据库用户名
spring.datasource.password数据库密码mybatis.mapper-locationsclasspath:在resources里面新建的包的名字/*.xmlmybatis.configuration.nullable-on-for-eachtrue#让数据库的字段和idea里的字段一一映射logging.level.rootinfo
logging.level.cn.tedu._04weibodebug# 启用Knife4j增强功能
knife4j.enabletrue# # 分组配置
# 定义 API 分组的名称组标识符
springdoc.group-configs[0].groupdefault
# 指定该分组包含哪些路径的接口
springdoc.group-configs[0].paths-to-match/**
# 明确扫描的控制器包路径
springdoc.group-configs[0].packages-to-scan工程中的controller包的路径 3.创建一个base的包包里创建一个config的包在里面创建一个类名为MybatisConfig
package cn.tedu._04weibo.base.config;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;Configuration
MapperScan(cn.tedu._04weibo.mapper)
public class MybatisConfig {
}4.在base包里创建一个response的包包里创建两个类分别是JsonResult和StatusCode
package cn.tedu._04weibo.base.response;import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;Setter
Getter
AllArgsConstructor
NoArgsConstructor
public class JsonResult {private Integer status;private String message;private Object data;public JsonResult(StatusCode statusCode) {this.statusstatusCode.getStatus();this.messagestatusCode.getMessage();}public JsonResult(StatusCode statusCode, Object data) {this.statusstatusCode.getStatus();this.messagestatusCode.getMessage();this.data data;}public static JsonResult ok(Object data){return new JsonResult(StatusCode.OPERATION_SUCCESS,data);}public static JsonResult ok(){return ok(null);}
}package cn.tedu._04weibo.base.response;import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;Getter
AllArgsConstructor
NoArgsConstructor
public enum StatusCode {OPERATION_SUCCESS(2001,操作成功),OPERATION_FAILED(2002,操作失败),USERNAME_EXIST(1002,用户名被占用),USERNAME_PASSWORD_ERROR(1001,用户名或密码错误),NOT_LOGIN(1000,未登录),VALIDATED_ERROR(6000,参数校验失败);private Integer status;private String message;
}5.在base包里建一个exception的包里面建一个GlobalExceptionHandler类用来装非封装和封装参数处理异常package cn.tedu._05article.base.exception;import cn.tedu._05article.base.response.JsonResult;
import cn.tedu._05article.base.response.StatusCode;
import jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;import javax.swing.text.Style;Slf4j
RestControllerAdvice
public class GlobalExceptionHandler {//非封装参数异常处理ExceptionHandlerpublic JsonResult doHandlerConstraintViolationException(ConstraintViolationException ex){String dataex.getMessage().split(:)[1].trim();log.error(ConstraintViolationException data);return new JsonResult(StatusCode.VALIDATED_ERROR,data);}//封装参数异常处理ExceptionHandlerpublic JsonResult doHandlerMethodArgumentNotValidException(MethodArgumentNotValidException ex){String dataex.getFieldError().getDefaultMessage();log.error(MethodArgumentNotValidException data);return new JsonResult(StatusCode.VALIDATED_ERROR,data);}
}6.在工程里新建controller 、 mapper 、 pojo的包pojo里面有三个包dto、entity、vo