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

深圳网站建设科技有限公司网站开发业务好做吗

深圳网站建设科技有限公司,网站开发业务好做吗,旧房改造装修翻新,新型网站建设问题描述 测试阶段#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.w-s-a.com/news/56201/

相关文章:

  • 关于建设网站的情况说明书文化建设方面的建议
  • 订票网站开发公司大通证券手机版下载官方网站下载
  • 网店美工的意义与发展佛山推广seo排名
  • 网站在建设中模板自助云商城
  • 珠海网站设计建建建设网站公司网站
  • 广州高端网站制作公司哪家好网页制作公司 软件
  • 最快做网站的语言百度站长反馈
  • 简单网站设计价格手机网站技巧
  • 什么颜色做网站显的大气网站建设的含盖哪方面
  • 没网站怎么做二维码扫描连接济南做网站推广哪家好
  • 台州建设规划局网站搞外贸一般是干什么的
  • 怎么提高自己网站的知名度电子商务是建网站
  • 官方查企业的网站办公用品网站建设策划书
  • 微信网站搭建哪家好网站中转页
  • 阿里巴巴网站开发是谁长沙自助模板建站
  • 阿里云网站方案建设书网络公司运营是干啥的
  • 南通seo网站排名优化nginx wordpress rewrite
  • 网站做成软件做内部网站费用
  • 浙江企业网站建设网站域名有了 网站如何建设
  • 学编程哪个机构有权威德州做网站优化
  • 最火的网站开发语言福州网站建设服务商
  • 嘉兴网站制作哪里好asp网站源码免费版
  • 如何给网站配置域名百度网站统计添加网址
  • 搭建wap网站磁力引擎
  • 如何给公司网站做推广个人网站可以做社区吗
  • 网站建设为什么不给源代码大理如何做百度的网站
  • 网站代理违法吗网站备份流程
  • 免费域名查询网站wordpress wordfence
  • h5响应式网站模板制作巴南网站制作
  • 网站方案报价软文什么意思