简单的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,前者拦截用户请求和处理,后者负责业务控制,例如调用后台业务逻辑代码,返回处理结果。
下一章就重点讲五花八门的注解啦
这一章代码下载链接,推荐自己写哈,其实也蛮简单的