springboot實現(xiàn)登錄功能的完整步驟
springboot實現(xiàn)登錄功能
springboot實現(xiàn)登錄功能需完成以下步驟:
- 實現(xiàn)springboot啟動器
- 使用maven下載相應的包
- 配置resources目錄下的application.yaml文件
- 編寫數據庫entity實體層、service業(yè)務層
- 實現(xiàn)公共函數result
- 編寫controller控制層
springboot啟動類
使用idea創(chuàng)建的springboot項目,會自動生成啟動類,有 @SpringBootApplication 注解的類就是啟動類

springboot使用maven
springboot生成后在會生成pom.xml,在 pom.xml 寫對應的包名、版本、下載鏈接,點擊idea右上角的刷新按鈕就可以自動下載,但是包下載的路徑是在哪里呢?
這就需要修改一下idea的maven設置了,
File >> setting >> 搜索maven

頁面有三個設置需要修改:
- Maven home directory(maven安裝路徑)
- User setting file(maven配置文件路徑)
- Local repository(包下載路徑)
注意:包的下載路徑盡量放在repository目錄(自己手動創(chuàng)建該目錄)下,不然可能會報錯,找不到對應的包
配置resources目錄下的application.yaml文件
application.yaml 是springboot的配置文件,yaml類型需使用key: value方式, : 后面一定要跟空格分隔。使用登錄只需要設置數據庫和端口號
server:
port: 8081
spring:
datasource:
username: root
password: 123
url: jdbc:mysql://localhost:3306/exam?serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driverport是sprongboot啟動后的訪問端口
username是數據庫的登錄用戶名
password是登錄密碼
url數據庫訪問地址,jdbc:mysql://localhost:3306可直接復制,exam是我的數據庫名字,serverTimezone=Asia/Shanghai設置時區(qū),不設置有時會報錯,driver-class-name是mysql驅動,MySQL版本以上使用com.mysql.cj.jdbc.Driver,mysql5及以下使用 com.mysql.jdbc.Driver。
編寫數據庫entity實體層、service業(yè)務層
springboot在maven中配置mybatis-plus依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>entity實體層為數據庫添加字段映射service業(yè)務層包含數據庫的常用操作
實體層
實體類主要是為了方便在java代碼中使用數據庫字段,實現(xiàn)java屬性與數據庫字段的一一映射。
在springboot啟動類同級目錄下新建一個entity目錄,entity目錄下新建一個Entity類
使用lombok依賴可以減少代碼開發(fā)量,lombok會生成get、set方法
@data注解:生成所有屬性的get、set方法
@AllArgsConstructor:生成該類下全部屬性的構造方法
NoArgsConstructor:生成無參的構造方法

服務層service
服務層可以實現(xiàn)數據庫常用操作:增刪改查,這些命令都已寫好,可以直接使用,減少大家開發(fā)量。
在springboot啟動類同級目錄下新建一個service目錄,service目錄下新建一個EmployeeService接口,該接口繼承mybatisplus的IService接口
public interface EmployeeService extends IService<Employee> {
}然后在EmployeeService同級目錄下新建一個impl目錄,該目錄下新建EmployeeImplService類,@Service標記當前類是一個service類,加上該注解會將當前類自動注入到spring容器中
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {
}
EmployeeServiceImpl 繼承mybatisplus的 ServiceImpl 再實現(xiàn)剛才的 EmployeeService 接口。到現(xiàn)在為止,數據庫相關配置已經做好了
實現(xiàn)公共函數result
web應用中,后端和前端交互,返回值包含:數據、返回碼、消息
這些事每次交互都會返回的,既然每次訪問都需要返回,那這個功能可以提取出來,作為一個公共類Result
在啟動類同級目錄下創(chuàng)建common目錄,在該目錄下創(chuàng)建Result類
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {
private Integer code;
private String msg;
private T data;
private Map map = new HashMap();
public static <T> Result<T> success(T data){
Result<T> result = new Result<>();
result.data = data;
result.code = 1;
return result;
}
public static <T> Result<T> error(String msg){
Result<T> result = new Result<>();
result.msg = msg;
result.code = 0;
return result;
}
}定義了success、error兩個方法,一個是訪問成功的返回、一個是訪問失敗的返回。
編寫controller控制層
最后一步,編寫controller層,該層實現(xiàn)路由控制以及具體的功能
在啟動類同級目錄下創(chuàng)建controller目錄,該目錄下創(chuàng)建EmployeeController類
@Slf4j
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
/**
* 員工登錄
* @param request
* @param employee
* @return
*/
@PostMapping("/login")
public Result<Employee> login(HttpServletRequest request, @RequestBody Employee employee){
//1、講頁面提交的密碼進行md5加密
String password = employee.getPassword();
password = DigestUtils.md5DigestAsHex(password.getBytes());
//2、根據用戶名查數據庫
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Employee::getUsername, employee.getUsername());
Employee emp = employeeService.getOne(queryWrapper);
//3、沒有查詢到結果則返回登錄失敗
if(emp ==null){
return Result.error("登陸失敗");
}
if (!emp.getPassword().equals(password)) {
return Result.error("登錄失敗");
}
if (emp.getStatus() == 0) {
return Result.error("該用戶已被禁用");
}
//存?zhèn)€Session,只存?zhèn)€id就行了
request.getSession().setAttribute("employee",emp.getId());
return Result.success(emp);
}@Slf4j是日志注解,使用該注解之后,在類中可以直接使用log方法生成日志
@RestController注解是Spring MVC中的一個組件,用于將Java類標記為處理RESTful請求的控制器
@RequestMapping("/employee")注解使得該類所有的控制器方法映射的請求前面都加上/employee
EmployeeController 類中先聲明了employeeService,用于使用數據庫的增刪改查
@PostMapping("/login")注解代表網頁訪問/login時,會使用當前方法,且使用的是POST方式訪問。
然后就是具體的login方法,這里實現(xiàn)了
- 將頁面提交的密碼進行md5加密
- 根據用戶名查詢數據庫
- 若沒有查詢到該用戶、密碼不一致、用戶被禁用則返回
登錄失敗 - 登錄成功,在session中保存id值
到這里為止登錄的后端就已經寫好了,只需要配置好前端的代碼就可以實現(xiàn)登錄功能了。
###啟動
運行springboot啟動類,在終端顯示下列信息則成功:

在瀏覽器訪問: http://localhost:8081/employee/login
總結
到此這篇關于springboot實現(xiàn)登錄功能的文章就介紹到這了,更多相關springboot登錄功能實現(xiàn)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解
這篇文章主要介紹了Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
java編程實現(xiàn)基于UDP協(xié)議傳輸數據的方法
這篇文章主要介紹了java編程實現(xiàn)基于UDP協(xié)議傳輸數據的方法,較為詳細的分析了UDP協(xié)議的原理及Java編程實現(xiàn)數據傳輸客戶端與服務器端的相關技巧,需要的朋友可以參考下2015-11-11
JAVA 集合框架Map 接口的深度解析與實戰(zhàn)指南
文章主要介紹了Map接口及其常用實現(xiàn)類(HashMap、LinkedHashMap、TreeMap)的核心特性、底層原理和適用場景,詳細講解了HashMap的哈希表結構、鏈表和紅黑樹處理、線程不安全性及自定義Key注意事項,感興趣的朋友跟隨小編一起看看吧2026-04-04

