我們首先寫一個接口,叫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);}
}