我们首先写一个接口,叫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)
@ResponseBody
public 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;
@Bean
public 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);
}
}