SpringBoot中使⽤AOP对⽤户登⼊和登出进⾏记录
SpringBoot中使⽤AOP对⽤户登⼊和登出进⾏记录
1、什么是AOP?
AOP为Aspect Oriented Programming的缩写,意为:
是Spring的核⼼内容之⼀,另⼀个是IoC(控制反转),AOP可以对业务逻辑的各个部分进⾏隔离,从⽽使得业务逻辑各部分之间的耦合度降低,提⾼程序的可重⽤性,同时提⾼了开发的效率。
2、测试步骤
1. 引⼊需要的依赖
2. 建⽴数据库
3. 对应数据库字段新建pojo实体类
4. 针对数据库的增删改查的需求新建Mapper接⼝
5. 配置application.yaml⽂件
6. Service对增删改查的数据进⾏进⼀步封装
7. Controller⾥编写/login和/logout接⼝
8. 配置aop对控制器⾥的接⼝进⾏增强处理,完成向⽇志表⾥插⼊⽇志操作
9. 配置,避免⽤户未登⼊⽽进⾏操作
3、步骤
(1)引⼊需要的依赖
aop:SpringAOP核⼼依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
thymeleaf:模板引擎
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
web:web项⽬核⼼依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
mybatis-springboot:mybatis与SpringBoot整合核⼼依赖
<dependency>
<groupId&batis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
mysql:mysql数据库驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
lombok,因为我需要直接⽤lombok插件使⽤注解完成pojo类
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
(2)数据库
user表,存放⽤户基本信息:
userLog表,存放⽤户⽇志信息(登⼊和登出):
(3)pojo实体类user.java:
@Data
@Component
@NoArgsConstructor
@AllArgsConstructor public class User {
/**
* ⽤户编号
*/
private Integer uid;
/**
* ⽤户名
*/
private String username; /**
* 密码
*/
private String password; /**
* 年龄
*/
private Integer age;
}
userLog.java:
@Data
@Component
@NoArgsConstructor
spring ioc注解@AllArgsConstructor public class UserLog {
/**
* ⽇志编号
*/
private Integer id;
/**
* 产⽣该⽇志的⽤户编号 */
private Integer uid;
/
**
* 登录的时间
*/
private Date loginTime; /**
* 登出的时间
*/
private Date logoutTime; }
(4)Mapper进⾏增删改查
由于只是登录⽤,我们只需要对表⾥的数据查询出来然后⽐对⼀下就可以了UserMapper.java:
@Mapper
@Repository
public interface UserMapper {
/**
* ⽤于⽤户登陆时的验证
* @return 如果⽤户名和密码同时匹配则返回⼀个User对象
*/
User selectUserByUsername(User user);
}
UserLogMapper.java:
@Mapper
@Repository
public interface UserLogMapper {
/
**
* 新增⽤户⽇志(新增⽤户编号uid,登⼊时间loginTime)
* @return
*/
int insertUserLog(UserLog userLog);
/**
* 修改⽤户⽇志(根据⽇志编号id修改登出时间logoutTime)
* @return
*/
int updateUserLog(UserLog userLog);
}
(5)配置application.yaml
需要配置Tomcat默认的端⼝号,配置Mapper映射地址,以及pojo的别名
>>>>>>>>>>>##
#Tomcat容器(默认8080)
server:
port:8080
>>>>>>>>>>>##
>>>>>>>>>>>##
#数据源
spring:
datasource:
driver-class-name: sql.jdbc.Driver
url: jdbc:mysql://localhost:3306/um?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone= GMT%2B8
username: root
password:
>>>>>>>>>>>##
>>>>>>>>>>>##
#thymeleaf模板引擎
thymeleaf:
cache:false
>>>>>>>>>>>##
>>>>>>>>>>>##
#Mybatis相关配置
mybatis:
type-aliases-package: cn.wqk.springbootaop.pojo
mapper-locations: mybatis/mapper/*l
>>>>>>>>>>>##
(6)Service将增删改查出来的数据进⼀步封装
接⼝:
UserService.java:
@Service
public interface UserService {
/
/根据⽤户名查询是否存在该⽤户(shiro)
User selectUserByUsername(String username);
}
UserLogService.java:
我的逻辑是⽤户登录成功后直接根据⽤户的编号然后插⼊⽇志表⾥,⽇志的⽇志编号⾃增,登录的时候就插⼊⽤户登⼊时间,然后登出的时候就根据⽇志编号,直接将登出时间字段改为⽤户登出时间
@Service
public interface UserLogService {
//新增⽤户⽇志,成功后返回该⽇志的编号
int insertUserLog(int uid);
//修改⽤户⽇志
int updateUserLog(int id);
}
实现类:
UserServiceImpl.java:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
SSM框架在Web应用开发中的设计与实现研究
« 上一篇
推荐文章
热门文章
-
随机森林算法的改进方法
2024-10-02 -
基于随机森林算法的风险预警模型研究
2024-10-02 -
Python中的随机森林算法详解
2024-10-02 -
随机森林发展历史
2024-10-02 -
如何使用随机森林进行时间序列数据模式识别(八)
2024-10-02 -
随机森林回归模型原理
2024-10-02 -
如何使用随机森林进行时间序列数据模式识别(六)
2024-10-02 -
如何使用随机森林进行时间序列数据预测(四)
2024-10-02 -
如何使用随机森林进行异常检测(六)
2024-10-02 -
随机森林算法和grandientboosting算法 -回复
2024-10-02 -
随机森林方法总结全面
2024-10-02 -
随机森林算法原理和步骤
2024-10-02 -
随机森林的原理
2024-10-02 -
随机森林 重要性
2024-10-02 -
随机森林算法
2024-10-02 -
机器学习中随机森林的原理
2024-10-02 -
随机森林算法原理
2024-10-02 -
使用计算机视觉技术进行动物识别的技巧
2024-10-02 -
基于crf命名实体识别实验总结
2024-10-02 -
transformer预测模型训练方法
2024-10-02
最新文章
-
随机森林算法介绍及R语言实现
2024-10-02 -
基于随机森林优化的神经网络算法在冬小麦产量预测中的应用研究_百度文 ...
2024-10-02 -
基于正则化贪心森林算法的情感分析方法研究
2024-10-02 -
随机森林算法和grandientboosting算法
2024-10-02 -
基于随机森林的图像分类算法研究
2024-10-02 -
随机森林结合直接正交信号校正的模型传递方法
2024-10-02
发表评论