SpringBoot的web开发扩展
前言
使用SpringBoot开发Web项目扩展-2
登录& 拦截
登录实现
登录需要连接到数据库中我们使用MyBatis框架配合连接MySQL数据库进行连接,需要引入MyBatis+MySQL依赖
org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.0 mysql mysql-connector-java 5.1.10 配置文件中编写连接参数
编写mapper接口和映射文件、server层、Controller层的相关代码
创建 dao 包,在 dao 包下创建 UserMapper 接口。
在 resources 目录中创建 mapper 包,在mapper包下创建 UserMapper.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.example.dao.UserMapper"> <select id="getUserByName" resultType="com.example.pojo.UserCs"> select * from user where name = #{name} </select> </mapper>
在 application.properties 文件中为指定 类的完整类名 取一个别名
# 为指定包下的所有类的完整类名 取一个别名别名为类名 mybatis.type-aliases-package=cn.bdqn.springbootcrud.entity
指定 mapper 映射文件所在的位置
mybatis.mapper-locations=classpath:mapper/*.xml
在service包中,创建 UserServiceImpl实现 UserService接口。
在 controller 包中创建 LoginController,LoginController 的代码如下所示。
如果发生Bean注入错误说类型不匹配Service和ServiceImpl,虽然是父类接口实现关系,但还是报了这个错误。可以把@Resource换成@Autowired
禁止调模板引擎的缓存
有时在修改完页面后,刷新浏览器发现页面没有更新,这是因为模板引擎存在缓存。编辑 application.properties 文件,添加禁用模板引擎缓存的代码。
spring.thymeleaf.cache=false
在启动类添加@MapperScan 实现对 dao 层 层 进行扫描
登录拦截器
用于拦截一些恶意访问信息,避免没有登录的用户之间访问数据信息。框架中的拦截器有很多种。如:HandlerInterceptor、MethodInterceptor、LocaleResolver。
它们的执行顺序是:LocaleResolver > HandlerInterceptor > MethodInterceptor
实现一个拦截操作的步骤:HandlerInterceptor
- 创建LoginHandlerInterceptor继承HandlerInterceptor
并编写被拦截之后需要执行的方法。preHandle方法

创建MyMvcConfig继承WebMvcConfigurer
(WebMvcConfigurerAdapter在高版本以及被淘汰了,我们可以使用它所继承的类)它的InterceptorRegistry的addInterceptor方法实例化了一个InterceptorRegistration用于添加一个拦截器。并使用addPathPatterns来约定拦截的路径。