使用Idea搭建基于SpringBoot的登陆注册系统(附源码)

2021年1月24日 18点热度 0条评论 来源: Java鱼仔

在之前的博客中我写了一篇基于SSM框架的登陆系统,SSM框架虽然让开发变得更加简单,但是太多的配置文件使得整体结构依旧不太简洁。在学习了SpringBoot之后,我想实现在尽可能不改变原来代码的情况下使用SpringBoot框架开发登陆注册系统,如果大家有兴趣也可以综合两篇博客看看SSM框架开发和SpingBoot框架开发出来的系统有什么样的区别。

第一步:创建SpringBoot项目:

创建SpringBoot项目的方法可参考我之前一篇博客,建完项目后新建在项目路径下新建四个包:controller:控制层用于控制转发;

dao:dao层用于进行数据库相关操作;

entity:实体层用于存放实体类相关代码;

service:服务层用于存放执行的服务,通过接口+实现类的形式

本项目的数据库操作依旧使用Mybatis,因此在resource包下新建一个mapper包,里面存放mapper.xml等映射文件。

整体项目结构如图所示:

本次项目用的数据库只包含最简单的用户名和密码:

第二步:完成相关配置文件的配置

配置文件的精简是SpringBoot的一个优势,在resources包下有application.properties,配置文件就在这里配置,因为要实现的功能比较简单,这里的配置文件也很简单

spring.datasource.url=jdbc:mysql://localhost:3306/mybatistest?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

mybatis.mapper-locations=classpath:mapper/*.xml

这里配置了数据库、SpringMvc的简单配置:说明jsp文件在/WEB-INF/jsp/路径下,以.jsp为后缀,还有Mybatis的mapper文件路径。这里没有写Mybatis的配置文件,在SpringbootApplication这个启动文件中加上dao层扫描接口,实现对dao层的扫描:

这样就算配置完成了,很是简单。

第三步:编写主要的java代码

这里的代码我大部分直接从前面的SSM项目中拿了过来,首先编写实体类User

public class User {
    private String username;
    private String password;
    public User(String username, String password){
        this.username=username;
        this.password=password;

    }
    //省略getter and setter
}

编写UserDao接口:

public interface UserDao {
    User select(User user);
}

在mapper包下创建mapper.xml,用于实现上面这个接口,查找该用户是否存在,mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sdxb.springbootexample.dao.UserDao">
    <select id="select" parameterType="com.sdxb.springbootexample.entity.User" resultType="com.sdxb.springbootexample.entity.User">
        select * from t_user where username = #{username} and password = #{password}
    </select>
</mapper>

接下来编写服务相关代码,这里的UserService实现了查找用户的服务,如果用户名和密码正确,则返回用户信息,否则返回null,用接口+Impl实现类的方式呈现:UserService:

public interface UserService {
    User get(User user);
}

UserServiceImpl,这里注意不要忘了Service注解

@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;

    @Override
    public User get(User user) {
        // 通过Mapper的select方法查询用户
        return userDao.select(user);
    }
}

最后编写UserController的代码,首先进入login.jsp界面,如果用户名密码正确,跳转到user.jsp,否则继续保持login.jsp

@Controller
public class UserController {
    // 注入UserService
    @Resource
    private UserService userService;

    @RequestMapping(value = "/login")
    public String login(User user) {
        ModelAndView mv = new ModelAndView();
        user = userService.get(user);

        if (user != null) {
            mv.addObject("user", user);
            return "user";
        } else {
            return "login";
        }
    }
}

最后附上login.jspuser.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>login</title>
</head>
<body>
<h1>用户登录界面</h1>
<br>
<form id="form" action="/login" method="post">
    <table>
        <tr>
            <td>用户名</td>
            <td><input id="username" name="username" value="" /></td>
        </tr>
        <tr>
            <td>密码</td>
            <td><input id="password-always-checkbox" name="password" /></td>
        </tr>
        <tr>
            <td></td>
            <td align="right"><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>User</title>
</head>
<body>
<h1>用户登录成功</h1>
<br>
欢迎您: ${user.username}
</body>
</html>

第四步:启动项目

SpringBoot项目的启动程序为创建项目后自动生成的SpringbootApplication,直接运行即可。如果控制台没有出现报错信息,则表示启动成功,在浏览器输入http://localhost:8080/login即可。

最后附上github源码:点击进入github

    原文作者:Java鱼仔
    原文地址: https://blog.csdn.net/qq_41973594/article/details/100837812
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。