package com.it.service.impl;
import com.it.entities.User;
import com.it.mapper.UserMapper;
import com.it.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.Serializable;
@Service
@Slf4j
public class UserServiceImpl implements UserService {
public static final String CACHE_KEY_USER="user";
@Resource
private RedisTemplate<String, Serializable> redisTemplate;
@Resource
private UserMapper userMapper;
/**
* 添加用户
*
* @param user 用户信息
*/
@Override
@Transactional
public void addUser(User user) {
//1 先插入mysql并成功
int row = userMapper.addUser(user);
if(row > 0)
{
//2 需要再次查询一下mysql将数据捞回来并ok
user = userMapper.findUserByUP(user.getUsername(),user.getPassword());
log.info(user.toString());
log.info("mysql存储完毕");
//3 将捞出来的user存进redis,完成新增功能的数据一致性。
String key = CACHE_KEY_USER+user.getId();
redisTemplate.opsForValue().set(key,user);
log.info("redis存储完毕");
}
}
/**
* 通过用户id查询用户信息
*
* @param id 用户id
* @return 用户信息
*/
@Override
public User findUserById(Integer id) {
User user = null;
String key = CACHE_KEY_USER+id;
//1.从redis查询,如果有直接返回结果
user = (User) redisTemplate.opsForValue().get(key);
if (user == null) {
//2.mysql查询
user = userMapper.findUserById(id);
if (user == null){ // 都不存在数据
return user;
}else {//如果mysql存在
redisTemplate.opsForValue().set(key,user);
}
}
log.info("User信息: {}",user);
return user;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
用于测试使用,包含代码和jar包
共42个文件
java:10个
class:10个
xml:10个
需积分: 0 0 下载量 192 浏览量
2022-10-19
17:05:14
上传
评论
收藏 100.21MB ZIP 举报
温馨提示
用于测试使用,包含代码和jar包
资源详情
资源评论
资源推荐
收起资源包目录
测试用例.zip (42个子文件)
docker_boot-1.0-SNAPSHOT.jar 55.52MB
docker_boot
pom.xml 7KB
target
test-classes
maven-status
maven-compiler-plugin
compile
default-compile
inputFiles.lst 743B
createdFiles.lst 343B
testCompile
default-testCompile
inputFiles.lst 0B
createdFiles.lst 0B
generated-test-sources
test-annotations
docker_boot-1.0-SNAPSHOT.jar.original 15KB
docker_boot-1.0-SNAPSHOT.jar 55.52MB
classes
application.yml 867B
com
it
config
RedisConfig.class 2KB
SwaggerConfig.class 3KB
mapper
UserMapper.class 619B
DockerBootApplication.class 731B
controller
OrderController.class 1KB
UserController.class 2KB
service
UserService.class 286B
impl
UserServiceImpl.class 3KB
entities
User.class 4KB
UserDTO.class 5KB
mapper
UserMapper.xml 665B
maven-archiver
pom.properties 62B
generated-sources
annotations
docker_boot.iml 81B
src
test
java
main
resources
application.yml 867B
mapper
UserMapper.xml 665B
java
com
it
config
SwaggerConfig.java 2KB
RedisConfig.java 1KB
mapper
UserMapper.java 391B
DockerBootApplication.java 327B
controller
OrderController.java 590B
UserController.java 1KB
service
UserService.java 353B
impl
UserServiceImpl.java 2KB
entities
User.java 875B
UserDTO.java 1KB
.idea
misc.xml 526B
jarRepositories.xml 871B
modules.xml 269B
encodings.xml 345B
compiler.xml 804B
workspace.xml 5KB
.gitignore 0B
inspectionProfiles
Project_Default.xml 436B
共 42 条
- 1
流域吖
- 粉丝: 67
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0