我们首先写一个接口,叫login!然后对传入一个user,因为我们前端肯定是要传过来一个user,然后我们后端返回一个user,因为我们要根据这个去校验!我们还引入了一个hutool的一个东西,在pom文件里面引入,这样我们就引入hutool,这样就可以进行校验了,然后我们继续写service!我们的service里面肯定根据用户名去查询用户信息,看看账号密码能不能对上,所以我们在创建一个方法,通过username去查询数据库(因为username是唯一的),这样我们就可以直接写mapper了,mapper肯定是要返回一个User对象的,不用list,就一个user!
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>
基础的架子已经搭建出来了,我们现在还要在service里面去校验一下!我们现在要判断一下,如果我们mapper返回回来的数据是一个空!怎么办?也就是没查到这个username!这个怎么办?我们应该抛出一个自定义的异常!这个自定义异常怎么写?
(1)我们首先创建一个文件叫GlobalException,这个文件里面写一个方法,并且返回报错的信息
package com.example.demo.exception;import com.example.demo.common.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;/*** 功能:* 作者:小刘* 日期:2025/3/17 21:22*/
@ControllerAdvice
public class GlobalException {@ExceptionHandler(ServiceException.class)@ResponseBodypublic Result serviceException(ServiceException e){return Result.error("500",e.getMessage());}
}
(2)创建ServiceException
package com.example.demo.exception;/*** 功能:* 作者:小刘* 日期:2025/3/17 21:28*/
public class ServiceException extends RuntimeException {public ServiceException(String msg){super(msg);}
}
这样两个文件就写好了自定义异常!我们现在返沪service写出这返回,并且补上密码校验
然后我们前端给后端发请求,我们在全局的main.js里面引入,这样绑定好,我们就可以通过this.$request.post去发请求了,就不用在写http啥啥啥的了!哈哈哈哈
发请求了,但是报错了,为什么?因为没写跨域!我们现在要写跨域问题了!
在Springboot项目里加上这个配置文件CorsConfig.java
,重启之后即可实现跨域访问,前端无需再配置跨域。直接创建文件CorsConfig ,粘贴即可!
package com.example.demo.common;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;@Configuration
public class CorsConfig {// 当前跨域请求最大有效时长。这里默认1天private static final long MAX_AGE = 24 * 60 * 60;@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法corsConfiguration.setMaxAge(MAX_AGE);source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置return new CorsFilter(source);}
}