Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现

声明

本系列文章系本人原创,欢迎转载,转载请注明出处。

本系列文章通过具体的例子,介绍如何通过spring Boot来帮助简化Spring MVC开发Web Application的过程,旨在通过具体的实践,使读者能够入门利用Spring Boot开发Web Application。

对于文章中贴出的代码,本人均在本地测试过,如果大家对代码有疑问,欢迎在评论区指出。如果大家发现了文章中描述不对的地方,也欢迎指出,以便大家共同进步。

一、入门项目介绍

从这一章开始,我们就正式开始通过一个完整的项目,来介绍Spring Boot了。这个项目的灵感来自于笔者在工作中发现,对于很多项目,在项目最开始的时候,可能会有一些需求文档和设计文档,但是随着项目的进行,对于新加入的需求或者原有需求的变更,可能就只是一封邮件或只是口头上说一下就行了。这就带来了一个问题:长此以往,如果当初开发某个功能模块的人员调到其他团队或者离职了,换另一个人来维护该功能模块的时候,就很难完全理解某功能的原始的需求,有时候甚至很难确定某一功能的最终效果到底是一个bug还是原本的需求就是这样的。当然了,在代码中添加注释可以从某种程度上削弱这方面的影响,并且这样做的确是一个很好的习惯。但是,从根本上来讲,还是需要有一个工具来持续记录每一个功能模块的需求以及需求变更。
所以,我们的这个入门项目,就是一个用来持续记录需求及需求变更的工具。笔者写这个项目的目的主要是为了介绍Spring Boot,但是笔者相信有兴趣的读者对这个项目稍加润色,便可以将该项目变成一个对用户友好的、可以真正投入使用的项目。

项目的源代码可以从GitHub上获取(由于GitHub上的这个项目是在本系列文章之前写的,可能会与本系列文章中的代码不完全一致,但是项目框架与用到的技术是类似的,所以在这里提供链接以供读者参考):
https://github.com/linux-subscribe/simplerequirementtracker.git


二、用户注册及登录

作为我们开发这个项目的第一步,我们先来开发用户注册及登陆的模块。一切从简,我们先按照下面这个流程图开发,在接下来的章节中,我们会对这个简单的流程扩展,已完全实现我们这个需求记录工具的功能。

注册及登录流程图

简而言之,就是我们会有一个欢迎界面,然后欢迎界面有两个链接,分别指向注册界面和登录界面,这两个界面又会根据注册及登录情况跳转到结果界面(根据情况显示注册成功,登录失败或者登录成功)。

这部分功能的实现可以从这里获取源码。(读者需要自行在本地搭建MySQL数据库,并将相关信息配置在项目中,便可运行该源码。该项目的数据库相关信息配置很简单,在下面会讲到。)

这部分功能的实现还是比较简单明了的: 用Spring Tool Suite (STS)新建一个Maven Project, 添加需要的Maven Dependencies,然后添加Controller和基于Thymeleaf的html文件,这些在本系列前面的章节中都有提及,在本章中我们主要关注以下几点:

  1. Thymeleaf表单绑定Spring的Model对象中的Attribute
    下面是Register页面的部分html(表单)
    <!--注意这里的th:object="${user}"-->
    <form th:object="${user}" method="post">
        <label for="userName">User Name: </label>
        <input type="text" th:field="*{userName}"/>
        <br/>
        <label for="userDescription">Description: </label>
        <!--注意这里的th:field="*{userDescription}"-->
        <input type="text" th:field="*{userDescription}"/>
        <br/>
        <label for="password">Password: </label>
        <input type="password" th:field="*{password}"/>
        <br/>
        <input type="reset"/>
        <input type="submit"/>
    </form>

下面是RegisterController的代码片段

    @RequestMapping(value="/register", method=RequestMethod.GET)
    public String showRegisterPage(Model model){
        User user=new User();
        //将User对象添加到Model对象的属性中
        model.addAttribute("user",user);
        return "register";
    }

    @RequestMapping(value="/register", method=RequestMethod.POST)
    //将表单中各字段“拼”出User对象是自动的,我们可以直接使用这个User对象
    public String register(User user){
        userRepository.addUser(user);
        return "redirect:/result/register/successful";
    }

我们可以看出,Thymeleaf表单中 ${user} 对应到Spring的Model对象的键为“user”的User对象,而 th:field=”*{userDescription}” 则对应到user.getUserDescription(),以此类推,注意“$”符号和“*”符号的区别。
2. 在本系列前面的章节中,我们讲到过SpringBoot默认从src/main/resources/templates目录中读html文件。现在我们的应用中又多了数据库相关的操作,那么数据库相关的配置在哪里呢?答案是src/main/resources/目录下的application.properties文件和schema.sql文件。

application.properties文件:我们把我们的数据库配置放在这里:

spring.datasource.url=jdbc:mysql://localhost:3306/srt
spring.datasource.username=root
spring.datasource.password=123

schema.sql:我们把建表语句放在这里:

CREATE TABLE IF NOT EXISTS Users (userId BIGINT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(30) UNIQUE, userDescription VARCHAR(50), password VARCHAR(50) NOT NULL);

三、总结

在本章中,我们实现了用户注册及登录的功能。可以看出我们的工作重点是放在了写Controller、html、Repository等与功能实现密切相关的事情上,而与配置相关的仅仅有几行的内容。
在接下来的章节中,我们会对本章中的项目进行完善,从而实现一个完整的持续记录需求及需求变更的网站。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值