当前位置: 首页 > news >正文

宜飞思工业设计网站seo入门培训学校

宜飞思工业设计网站,seo入门培训学校,网站建设颊算,华为的网站建设问题描述 测试阶段#xff0c;由于存在某一功能的同时操作#xff0c;该功能还是入库逻辑#xff0c;此时若不进行处理#xff0c;会造成插入表中多条重复数据#xff0c;为此该问题需要修复。 解决办法 在接口开始进行对是否存在某个key值的判断#xff0c;若不存在由于存在某一功能的同时操作该功能还是入库逻辑此时若不进行处理会造成插入表中多条重复数据为此该问题需要修复。 解决办法 在接口开始进行对是否存在某个key值的判断若不存在则插入一条到redis中并加锁若存在则提示“正在处理中”若中间出现逻辑处理异常则需要对该key值删除最后进行对锁的释放 话不多说上代码 pom.xml 依赖补充 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency application.yml文件中redis配置 redis:host: 127.0.0.1port: 6379timeout: 10poolMaxTotal: 1000poolMaxIdle: 500poolMaxWait: 500 UserMapper.java import com.example.demo.entity.User;import org.apache.ibatis.annotations.Mapper;Mapper public interface UserMapper {int add(User user);User queryByName(String name); }UserMapper.xml ?xml version1.0 encodingutf-8? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperselect idqueryByName resultMapuserResultselect id,name,age from USERwhere name#{name}/selectinsert idadd parameterTypecom.example.demo.entity.UserINSERT INTO USER (id,name, age)VALUES (SYS_GUID(),#{name},#{age})/insert /mapper RedisService类 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service;import java.util.concurrent.TimeUnit;Service public class RedisService {AutowiredRedisTemplateString,Object redisTemplate;/*** 加锁* param key* param value* param expireTime* return*/public boolean lock(String key, String value, Long expireTime) {Boolean success redisTemplate.opsForValue().setIfAbsent(key, value);if (expireTime ! null expireTime 0) {redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);}return success ! null success;}/*** 释放锁* param key*/public void unlock(String key) {redisTemplate.opsForValue().getOperations().delete(key);}/*** 根据key删除信息* param key*/public void deleteStr(String key) {redisTemplate.delete(key);} }bean配置 解决redis内容乱码为了方便我这边直接在启动类中配置 BeanSuppressWarnings(all)public RedisTemplateString, Object redisTemplate(RedisConnectionFactory factory) {RedisTemplateString, Object template new RedisTemplateString, Object();template.setConnectionFactory(factory);Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);StringRedisSerializer stringRedisSerializer new StringRedisSerializer();// key采用String的序列化方式template.setKeySerializer(stringRedisSerializer);// hash的key也采用jackson的序列化方式template.setHashKeySerializer(jackson2JsonRedisSerializer);// value序列化方式采用jacksontemplate.setValueSerializer(jackson2JsonRedisSerializer);// hash的value序列化方式采用jacksontemplate.setHashValueSerializer(jackson2JsonRedisSerializer);template.afterPropertiesSet();return template;} controller类 该程序对新增用户功能同时操作的模拟补充redis中key的判断具体开发逻辑或内容可以视情况而定 import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.example.demo.service.RedisService;import java.util.List;RestController RequestMapping(/user) public class UserController {private static final Logger logger LoggerFactory.getLogger(UserController.class);Autowiredprivate UserMapper userMapper;Autowiredprivate RedisService redisService;PostMapping(/addTest)public void addTest(RequestBody User user) throws Exception {//todo 该功能的状态校验//1.判断该用户在redis是否存在if (!redisService.lock(addUser, String.valueOf(System.currentTimeMillis()), 15L)) {throw new Exception(正在操作中);}try {//2.逻辑处理User user1 userMapper.queryByName(user.getName());if (user1 ! null) {throw new Exception(该用户 user.getName() 已存在);}for (int i 0; i 1000; i) {for (int j 0; j 1000; j) {logger.info(i*j{}, i * j);}}userMapper.add(user);} catch (Exception e) {redisService.deleteStr(addUser);throw e;} finally {redisService.unlock(addUser);}} }测试结果 一用户信息操作结果 另一用户操作结果 等待2分钟该用户继续操作该数据会提示“该用户已存在”
http://www.hkea.cn/news/14516427/

相关文章:

  • 中英文外贸网站模板 生成静态html重庆公司社保最低档每月多少钱
  • 谷歌seo网站推广上海专业网站建设哪家好
  • 美橙互联网站建设好不好二七网站建设
  • 有没有免费注册域名的网站php7 wordpress 无法安装
  • 南昌seo网站管理如何建立网站视频
  • 电商网站运维怎么做wordpress自助友链
  • 响应式网站pad尺寸wordpress 评论小工具
  • 初学网站建设选择做华为网站的目的和意义
  • 外文网站建站网上有做logo的网站吗
  • 简述电子商务网站的内容设计与开发做网络销售哪些网站比较好
  • 国外app界面设计网站网站到期可以续费
  • 网站开发发帖语言大连新图闻科技
  • 网站建设考核指标宿迁市建设局投诉网站
  • 网站建设服务yisinuo苏州app推广团队
  • 广州网站设计公司从事网站开发需要的证书
  • 用狗做头像的网站最新的网站开发技术
  • 给别人做网站去掉版权wordpress页面显示
  • 网站内容建设包括公司管理体系包括哪四个体系
  • 宁波网站建设优化诊断怎样建手机网站
  • 网站建设管理情况现在做个企业网站一般多少钱
  • 网站的软文 怎么做推广低价网站制作顺德
  • 免费网站入口在哪网站举报查询进度
  • 做网站能注册账号的做电子元器件的网站
  • 深圳成交型网站建设宁波网站设计服务
  • 广州网站制作公司 番禺根路径 网站
  • 吴谨含厂家不愿做网站重庆做网站建设公司
  • 个人网站的搭建方法wordpress图片上传后无法显示
  • wp做购物网站wordpress前端登录按钮
  • 云南网站建设维护网站没有h1标签
  • 房山做网站济南网站备案