文章目录
Java大作业【即时聊天Java版】有一个需求如下
用户登录及登录验证:用户能够使用固定帐号(帐号程序内置即可,无需完成额外的注册功能)登录系统,系统能对预定的帐号、密码进行验证。
登录功能是大部分系统的入口
- 后台管理系统
- 社交软件
- 电商平台
- 各大邮箱
登录的目的一来是为了识别每一个用户,搭建系统的用户体系;二来是登录了之后方便维护登录态,实现用户相关业务。
所以这也是很多人学习web开发的第一道坎,实现一个简单的登录功能。因此这篇文章就从零开始,使用SpringBoot+Mybatis
实现一个简单的登录功能。(账号程序内置,本篇文章不涉及到注册功能,大家可以自行去实现)
该项目代码已提交到Gitee仓库,仓库地址:https://gitee.com/smietao/GDUT_2020_JavaBigWork。
欢迎clone
和fork
,觉得对你们有所帮助的,可以点个star
。项目会不断更新直至 Java大作业 deadline —— 6月22日。
一、前置条件
- 登录账号使用
MYSQL
数据库存储,因此需要在本机搭建MYSQL
环境或是使用云数据库。 - 使用Java框架
SpringBoot+Mybatis
开发,因此需要配置Maven
环境方便拉jar包。没配置过Maven
的可以参考我的另外一篇博客:初学者必备——win10搭建Java后台开发环境大集合 - 集成开发环境使用IDEA,IDEA需要安装插件
lombok
。(不知道lombok是什么的可以自行百度) - 需要具备一定的Javaweb开发知识,理解MVC架构。
- 会基础的
HTML+CSS+JS
前端相关知识
二、创建工程
-
打开IDEA,在编辑器左上角选择File -> New -> Project
-
选择Spring Initializr创建Spring Boot工程,这里选择的是
Default
,因此需要联网才能Next -
填写POM相关配置
-
勾选依赖。勾选了的依赖会默认写入
pom.xml
,不需要我们再次去导入- Spring Boot DevTools:提供热更新功能
- lombok:@Data注解快捷生成Get\Set方法
- Spring Web:快速构建Web应用
- Thymeleaf:
Spring Boot
官方推荐的模板引擎,类似于jsp - Spring Data JDBC:
Java
代码连接MYSQL
- Mybatis Framework:
Mybatis
轻量级持久层框架
-
输入工程名以及工程的本地路径,这里根据自己的情况以及老师要求填写即可
三、Maven
工程创建完成后,如果之前没有使用过Maven,则Maven会根据pom.xml
去远程仓库拉取jar包,不过IDEA内置的Maven是去国外中央仓库下载的,会比较慢。可以根据上文的链接配置好Maven,之后在IDEA中选择自己本地的Maven进行后续操作。
-
File -> settings -> 搜索框输入maven
-
点击OK,之后IDEA会根据新的Maven配置重新下载jar包,这时候如果右下角弹窗则选择
auto import
——当pom.xml
中有修改会自动更新
四、后端项目架构
这是使用的是Javaweb
经典的MVC三层架构,即Model、view、controller。工程结构如图:
新建的项目是没有这些包和文件夹的,需要自己一点点搭建起来
4.1 SpringBoot配置文件
- 点开
resourcs
文件夹,可以看到application.properties
。这是Spring Boot默认的配置文件。这里我的习惯是使用yml
格式的,因此将其修改为application.yml
,并写入以下代码
server:
port: 8081
spring:
devtools:
restart:
enabled: false
datasource:
url: jdbc:mysql://your ip address:端口号/数据库名?useUnicode=true&serverTimezone=GMT%2B8
username: smietao
password: xxxxxxx
mybatis:
type-aliases-package: com.smietao.instantchat
mapper-locations: classpath*:mapper/*.xml
check-config-location: true
configuration:
# 开启二级缓存
cache-enabled: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
mapper:
mappers:
- com.smietao.instantchat.base.BaseMapperWeiLT
- tk.mybatis.mapper.common.Mapper
not-empty: true
identity: mysql
这里配置的有五点
- 端口号port:可修改,默认为8080
- devtools:热更新功能
- datasource:
MySQL
数据源配置(这个很重要) - Mybatis:配置类别名所在包、mapper文件所在位置、开启日志以及二级缓存
- mapper:通用mapper配置
4.2 配置web相关
- 在resouces目录