無資料庫版本最簡單的登入註冊後臺系統--springboot版本
阿新 • • 發佈:2018-12-21
簡單的springboot 登入註冊版本,讓你感受springboot和註解的便利性
【準備工作】:postman--便於介面測試,idea社群版本或者旗艦版本,社群版本需要安裝plug-in搜尋spring assistant就可以。
【建立工程,搭好架構】:如圖:
- 建立User類簡單的幾個屬性
package com.zhangyiyi.chapter1.domain; public class User { private String userName; private String phoneNum; private String passWd; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPhoneNum() { return phoneNum; } public void setPhoneNum(String phoneNum) { this.phoneNum = phoneNum; } public String getPassWd() { return passWd; } public void setPassWd(String passWd) { this.passWd = passWd; } }
- 建立LoginController作為攔截使用者請求到對應的處理介面,稍後講解spring mvc的開發步驟
package com.zhangyiyi.chapter1.controller; import com.zhangyiyi.chapter1.domain.User; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController public class LoginController { private List<User> userList; public LoginController(){ super(); userList=new ArrayList<User>(); } public static Log logger=LogFactory.getLog(LoginController.class); @PostMapping(value = "/login") public String login(@RequestParam("phonenum") String phoneNum, @RequestParam("passwd") String passWd){ for(User user:userList){ if(user.getPassWd().equals(passWd)&&user.getPhoneNum().equals(phoneNum)){ logger.info("loginpost 方法訪問"); return user.getUserName()+"歡迎登陸"; } } return "登入失敗"; } @PostMapping(value = "/register") public String register(@RequestParam("phonenum") String phoneNum, @RequestParam("passwd") String passWd, @RequestParam("username") String userName){ User user=new User(); user.setPassWd(passWd); user.setUserName(userName); user.setPhoneNum(phoneNum); userList.add(user); return userName+"註冊成功"; } }
-
入口函式:
package com.zhangyiyi.chapter1; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.SpringApplication; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class Chapter1ApplicationTests { public static void main(String[] args) { SpringApplication.run(Chapter1Application.class, args); } }
刪除test的方法,建立main方法,然後開啟執行。
-
postman測試介面,首先查詢你自己的本機ipv4地址,最簡單的就是cmd裡面輸入ipconfig獲取
-
使用:
-
註冊和登入使用
-
結果:
【現在講解spring mvc開發步驟 】:
- 前段控制器DispatcherServlet來攔截使用者請求
- 定義處理使用者請求的Handle類,其實就是我們寫的LoginController,兩種方式實現controller介面或者使用註解,實現介面方式如下:
還是推薦使用註解方式,至於為什麼,你不覺得這樣很方便麼?定義controller是MVC裡面必不可少的,DispatcherServlet就是裡面的C,前端控制器,負責接收請求,再把請求分配給對應Handle,正常來說註冊與登入應該寫成兩個java類,本文為了方便暫時寫到一塊。
疑問點:Controller並未收到使用者請求,他如何處理的?MVC框架底層機制就是:前端Servlet接收到使用者請求,通常做預處理,解析,封裝引數,通過反射建立Controller,並呼叫指定方法:
如:
這兩一一對應所以這個註解的方法就會接收到字尾為login的使用者請求了,是不是很簡單也同時學習了註解的作用?
當然還有一種方式是用xml配置檔案代替註解方法,spring2.5以後不推薦所以就不講啦。
總結:Spring MVC框架中,控制器由兩個部分共同組成, ,DispatcherServlet和Controller,前者攔截使用者請求和處理,後者負責業務控制,例如呼叫後臺業務邏輯程式碼,返回處理結果。
下一章就重點講五花八門的註解啦