最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot實現(xiàn)登錄功能的完整步驟

 更新時間:2023年09月17日 11:27:38   作者:大盤雞加面  
這篇文章主要給大家介紹了關于springboot實現(xiàn)登錄功能的完整步驟,在web應用程序中,用戶登錄權限驗證是非常重要的一個步驟,文中通過代碼以及圖文介紹的非常詳細,需要的朋友可以參考下

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.Driver

port是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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java 數據庫連接(JDBC)的相關總結

    Java 數據庫連接(JDBC)的相關總結

    這篇文章主要介紹了Java 數據庫連接(JDBC)的相關總結,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Java_異常類(錯誤和異常,兩者的區(qū)別介紹)

    Java_異常類(錯誤和異常,兩者的區(qū)別介紹)

    下面小編就為大家?guī)硪黄狫ava_異常類(錯誤和異常,兩者的區(qū)別介紹) 。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 深入理解mybatis的ParamNameResolver

    深入理解mybatis的ParamNameResolver

    ParamNameResolver是 MyBatis 中的一個重要組件,它為 MyBatis 提供了一種方便的方式來獲取方法參數的名稱,本文主要介紹了深入理解mybatis的ParamNameResolver,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • springboot多模塊中的共用配置文件詳解

    springboot多模塊中的共用配置文件詳解

    這篇文章主要介紹了springboot多模塊中的共用配置文件詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 使用Feign調用注解組件(實現(xiàn)字段賦值功能)

    使用Feign調用注解組件(實現(xiàn)字段賦值功能)

    這篇文章主要介紹了使用Feign調用注解組件(實現(xiàn)字段賦值功能),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解

    Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解

    這篇文章主要介紹了Springboot?配置線程池創(chuàng)建線程及配置?@Async?異步操作線程池詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • java編程實現(xiàn)基于UDP協(xié)議傳輸數據的方法

    java編程實現(xiàn)基于UDP協(xié)議傳輸數據的方法

    這篇文章主要介紹了java編程實現(xiàn)基于UDP協(xié)議傳輸數據的方法,較為詳細的分析了UDP協(xié)議的原理及Java編程實現(xiàn)數據傳輸客戶端與服務器端的相關技巧,需要的朋友可以參考下
    2015-11-11
  • Java中的權限修飾符(protected)示例詳解

    Java中的權限修飾符(protected)示例詳解

    這篇文章主要給大家介紹了關于Java中權限修飾符(protected)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • JAVA 集合框架Map 接口的深度解析與實戰(zhàn)指南

    JAVA 集合框架Map 接口的深度解析與實戰(zhàn)指南

    文章主要介紹了Map接口及其常用實現(xiàn)類(HashMap、LinkedHashMap、TreeMap)的核心特性、底層原理和適用場景,詳細講解了HashMap的哈希表結構、鏈表和紅黑樹處理、線程不安全性及自定義Key注意事項,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • Java編程實現(xiàn)的模擬行星運動示例

    Java編程實現(xiàn)的模擬行星運動示例

    這篇文章主要介紹了Java編程實現(xiàn)的模擬行星運動,涉及java基于swing組建繪制動態(tài)效果及數值運算相關操作技巧,并總結分析了java面向對象的相關特性,需要的朋友可以參考下
    2018-04-04

最新評論

隆尧县| 镶黄旗| 大姚县| 新竹县| 雷山县| 怀仁县| 陆丰市| 丰台区| 蚌埠市| 板桥市| 偏关县| 商丘市| 连州市| 长白| 台中市| 合江县| 鄯善县| 通化市| 庐江县| 年辖:市辖区| 阳泉市| 辽源市| 天峻县| 南江县| 兴宁市| 广水市| 仲巴县| 民县| 含山县| 开鲁县| 彭山县| 寿光市| 股票| 成武县| 巴彦县| 武清区| 泸溪县| 宁夏| 永济市| 海丰县| 合水县|