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

简单网站建设流程图长宁免费网站制作

简单网站建设流程图,长宁免费网站制作,公众号开发运营,wordpress数据库重置密码随着对个人项目的不断开发、迭代和重构#xff0c;博主在这个过程中总结出了一套使用redis的较好的规范。主要包含Redis的key命名规范和Redis代码规范。 主要内容 主要包含以下几个内容#xff1a; 同一应用的key在最前面添加统一的前缀#xff0c;如应用名#xff1b; 案…随着对个人项目的不断开发、迭代和重构博主在这个过程中总结出了一套使用redis的较好的规范。主要包含Redis的key命名规范和Redis代码规范。 主要内容 主要包含以下几个内容 同一应用的key在最前面添加统一的前缀如应用名 案例appName:业务相关的key前缀:具有代表性的字段的值例如mhxysy:SEVER:1所有key的前缀根据业务功能以常量的形式保存在同一个接口中一个业务的Redis缓存对应一个缓存类使代码易于维护把缓存的代码统一编写在一个类里如果想要取消缓存只需要修改这个缓存类的代码即可。缓存类可以根据自己的喜好来命名如XxxRepository为了体现面向接口的开发原则可以让所有Reids得缓存类实现一个代表Reids缓存的顶级接口如RedisRepository 代码展示 角色信息的缓存类RoleAccountRepository.java package cn.edu.sgu.www.mhxysy.redis.repository.impl;import cn.edu.sgu.www.mhxysy.consts.RedisKeyPrefixes; import cn.edu.sgu.www.mhxysy.entity.role.RoleAccount; import cn.edu.sgu.www.mhxysy.redis.RedisUtils; import cn.edu.sgu.www.mhxysy.redis.repository.RedisRepository; import cn.edu.sgu.www.mhxysy.util.TimerUtils; import cn.edu.sgu.www.mhxysy.vo.role.RoleAccountVO; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;import java.util.List; import java.util.TimerTask; import java.util.concurrent.TimeUnit; import java.util.function.Consumer;/*** author heyunlin* version 1.0*/ Slf4j Component public class RoleAccountRepository implements RedisRepository {private final RedisUtils redisUtils;public RoleAccountRepository(RedisUtils redisUtils) {this.redisUtils redisUtils;}Overridepublic void put(String id, Object value) {String key RedisKeyPrefixes.PREFIX_ROLE_ACCOUNT id;redisUtils.set(key, JSON.toJSONString(value));redisUtils.expire(key, 7, TimeUnit.DAYS);}Overridepublic RoleAccount get(String id) {String key RedisKeyPrefixes.PREFIX_ROLE_ACCOUNT id;String value redisUtils.get(key);if (value ! null) {log.debug(命中缓存{}, key);}return JSON.parseObject(value, RoleAccount.class);}Overridepublic void putList(Object value) {String key RedisKeyPrefixes.PREFIX_ROLE_ACCOUNTS;redisUtils.set(key, JSON.toJSONString(value), 7, TimeUnit.DAYS);}Overridepublic ListRoleAccount getList() {String key RedisKeyPrefixes.PREFIX_ROLE_ACCOUNTS;String value redisUtils.get(key);if (value ! null) {log.debug(命中缓存{}, key);return JSON.parseArray(value, RoleAccount.class);}return null;}Overridepublic void delete() {String key RedisKeyPrefixes.PREFIX_ROLE_ACCOUNTS;redisUtils.delete(key);}Overridepublic void delete(String primaryKey) {redisUtils.delete(RedisKeyPrefixes.PREFIX_ROLE_ACCOUNT primaryKey);}Overridepublic void delayDoubleDelete(String primaryKey, ConsumerString consumer) {delete();delete(primaryKey);deleteCache(primaryKey);consumer.accept(primaryKey);// 延时双删TimerUtils.schedule(new TimerTask() {Overridepublic void run() {delete();delete(primaryKey);deleteCache(primaryKey);}});}public void cacheRole(String roleId, RoleAccountVO roleAccountVO) {String key RedisKeyPrefixes.PREFIX_ROLE_DETAIL roleId;redisUtils.set(key, JSON.toJSONString(roleAccountVO));}public RoleAccountVO getCache(String roleId) {String key RedisKeyPrefixes.PREFIX_ROLE_DETAIL roleId;String value redisUtils.get(key);if (value ! null) {log.debug(命中缓存{}..., key);return JSON.parseObject(value, RoleAccountVO.class);}return null;}public void deleteCache(String roleId) {String key RedisKeyPrefixes.PREFIX_ROLE_DETAIL roleId;redisUtils.delete(key);}} 具体的角色service层方法 package cn.edu.sgu.www.mhxysy.service.role.impl;import cn.edu.sgu.www.mhxysy.base.Pager; import cn.edu.sgu.www.mhxysy.dto.role.RoleAccountDTO; import cn.edu.sgu.www.mhxysy.easyexel.impl.RoleAccountExcelData; import cn.edu.sgu.www.mhxysy.entity.gang.Gang; import cn.edu.sgu.www.mhxysy.entity.role.Account; import cn.edu.sgu.www.mhxysy.entity.role.RoleAccount; import cn.edu.sgu.www.mhxysy.entity.role.RoleModeling; import cn.edu.sgu.www.mhxysy.entity.school.School; import cn.edu.sgu.www.mhxysy.entity.server.Server; import cn.edu.sgu.www.mhxysy.exception.GlobalException; import cn.edu.sgu.www.mhxysy.mapper.role.JiadianSchemaMapper; import cn.edu.sgu.www.mhxysy.mapper.role.RoleAccountMapper; import cn.edu.sgu.www.mhxysy.mapper.role.RoleAttributeMapper; import cn.edu.sgu.www.mhxysy.mapper.role.RoleJiadianMapper; import cn.edu.sgu.www.mhxysy.mapper.school.SchoolSkillCategoryMapper; import cn.edu.sgu.www.mhxysy.mapper.school.SchoolSkillMapper; import cn.edu.sgu.www.mhxysy.redis.repository.impl.RoleAccountRepository; import cn.edu.sgu.www.mhxysy.restful.ResponseCode; import cn.edu.sgu.www.mhxysy.service.gang.GangService; import cn.edu.sgu.www.mhxysy.service.role.AccountService; import cn.edu.sgu.www.mhxysy.service.role.RoleAccountService; import cn.edu.sgu.www.mhxysy.service.role.RoleModelingService; import cn.edu.sgu.www.mhxysy.service.school.SchoolService; import cn.edu.sgu.www.mhxysy.service.server.ServerService; import cn.edu.sgu.www.mhxysy.vo.role.RoleAccountVO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer;/*** author heyunlin* version 1.0*/ Service public class RoleAccountServiceImpl implements RoleAccountService {private final RoleAccountMapper roleAccountMapper;private final RoleJiadianMapper roleJiadianMapper;private final SchoolSkillMapper schoolSkillMapper;private final JiadianSchemaMapper jiadianSchemaMapper;private final RoleAttributeMapper roleAttributeMapper;private final RoleAccountRepository roleAccountRepository;private final SchoolSkillCategoryMapper schoolSkillCategoryMapper;private final GangService gangService;private final ServerService serverService;private final SchoolService schoolService;private final AccountService accountService;private final RoleModelingService roleModelingService;Autowiredpublic RoleAccountServiceImpl(RoleAccountMapper roleAccountMapper,RoleJiadianMapper roleJiadianMapper,SchoolSkillMapper schoolSkillMapper,JiadianSchemaMapper jiadianSchemaMapper,RoleAttributeMapper roleAttributeMapper,RoleAccountRepository roleAccountRepository,SchoolSkillCategoryMapper schoolSkillCategoryMapper,GangService gangService,ServerService serverService,SchoolService schoolService,AccountService accountService,RoleModelingService roleModelingService) {this.roleAccountMapper roleAccountMapper;this.roleJiadianMapper roleJiadianMapper;this.schoolSkillMapper schoolSkillMapper;this.jiadianSchemaMapper jiadianSchemaMapper;this.roleAttributeMapper roleAttributeMapper;this.roleAccountRepository roleAccountRepository;this.schoolSkillCategoryMapper schoolSkillCategoryMapper;this.gangService gangService;this.serverService serverService;this.schoolService schoolService;this.accountService accountService;this.roleModelingService roleModelingService;}Overridepublic RoleAccount selectById(String roleId) {RoleAccount roleAccount roleAccountRepository.get(roleId);if (roleAccount null) {roleAccount roleAccountMapper.selectById(roleId);roleAccountRepository.put(roleId, roleAccount);}return roleAccount;}} Redis的key前缀常量接口代码展示 package cn.edu.sgu.www.mhxysy.consts;/*** redis的key前缀的常量接口* author heyunlin* version 1.0*/ public interface RedisKeyPrefixes {String PREFIX_BASE mhxysy:;/*** 用户的邮箱*/String PREFIX_EMAIL PREFIX_BASE EMAIL:;/*** 用户登录的验证码*/String PREFIX_CAPTCHA PREFIX_BASE CAPTCHA:;/*** 用户的侧栏菜单*/String PREFIX_USER_LEFT_MENUS PREFIX_BASE USER_LEFT_MENUS:;/*** 角色的菜单树*/String PREFIX_ROLE_MENU_TREE PREFIX_BASE ROLE_MENU_TREE:;/*** 用户登录的次数*/String PREFIX_USER_LOGIN_TIMES PREFIX_BASE USER_LOGIN_TIMES:;/*** shiro缓存认证管理*/String PREFIX_CACHE_MANAGER PREFIX_BASE AUTHORIZATION:CACHE_MANAGER:;/*** 角色高级属性*/String PREFIX_ADVANCED_PROPERTY PREFIX_BASE ROLE_GJSX:;/*** 角色详情*/String PREFIX_ROLE_DETAIL PREFIX_BASE ROLE_DETAIL:;/*** 角色*/String PREFIX_ROLE_ACCOUNT PREFIX_BASE ROLE_ACCOUNT:;/*** 角色列表*/String PREFIX_ROLE_ACCOUNTS PREFIX_BASE ROLE_ACCOUNTS:;/*** 角色造型*/String PREFIX_ROLE_MODELING PREFIX_BASE ROLE_MODELING:;/*** 角色造型列表*/String PREFIX_ROLE_MODELINGS PREFIX_BASE ROLE_MODELINGS;/*** 帮派*/String PREFIX_GANG PREFIX_BASE GANG:;/*** 帮派列表*/String PREFIX_GANGS PREFIX_BASE GANGS;/*** 帮派职务*/String PREFIX_GANG_JOB PREFIX_BASE GANG_JOB:;/*** 帮派职务列表*/String PREFIX_GANG_JOBS PREFIX_BASE GANG_JOBS;/*** 门派*/String PREFIX_SCHOOL PREFIX_BASE SCHOOL:;/*** 门派列表*/String PREFIX_SCHOOLS PREFIX_BASE SCHOOLS;/*** 宠物*/String PREFIX_CHONGWU PREFIX_BASE CHONGWU:;/*** 宠物列表*/String PREFIX_CHONGWUS PREFIX_BASE CHONGWUS;/*** 宠物类型*/String PREFIX_CHONGWU_CATEGORY PREFIX_BASE CHONGWU_CATEGORY:;/*** 宠物类型列表*/String PREFIX_CHONGWU_CATEGORIES PREFIX_BASE CHONGWU_CATEGORIES;/*** 大区*/String PREFIX_AREA PREFIX_BASE AREA:;/*** 大区列表*/String PREFIX_AREAS PREFIX_BASE AREAS;/*** 服务器*/String PREFIX_SERVER PREFIX_BASE SERVER:;/*** 服务器列表*/String PREFIX_SERVERS PREFIX_BASE SERVERS;/*** 账号*/String PREFIX_ACCOUNT PREFIX_BASE ACCOUNT:;/*** 账号列表*/String PREFIX_ACCOUNTS PREFIX_BASE ACCOUNTS; } Redis缓存顶级接口 package cn.edu.sgu.www.mhxysy.redis.repository;import java.util.function.Consumer;/*** redis仓库的顶级接口为了满足开闭原则设计了此接口* author heyunlin* version 1.0*/ public interface RedisRepository {void put(String key, Object value);Object get(String key);void putList(Object value);Object getList();/*** 删除数据缓存*/void delete();/*** 删除指定ID的数据缓存* param primaryKey 数据的ID*/void delete(String primaryKey);/*** 延时双删* param primaryKey 数据的ID* param consumer ConsumerString*/default void delayDoubleDelete(String primaryKey, ConsumerString consumer) { }} 好了文章就分享到这里了后续会持续优化文章内容感谢大家的支持~ 最后如果看完这篇文章觉得对你有所帮助或者启发不要忘了点赞收藏哦~
http://www.dnsts.com.cn/news/75907.html

相关文章:

  • 网站开发流程的意义小程序商店大全
  • 加强网站网络安全建设方案小程序自己制作流程
  • 欧美电影免费网站佛山网站建设工作室
  • 天津北京网站建设一个新网站要怎么优化
  • 网站备案资料修改海事网站服务平台
  • 如何做公众号小说网站赚钱wordpress首页慢
  • 做解析视频网站违法莫近期舆情热点话题
  • 如何给网站的关键词做排名app编辑软件
  • 中国新闻社名词解释企业网站搜索优化外包
  • 在猪八戒做网站有保障吗软件开发工程师任职要求
  • 深圳电子商务网站建设电脑编程软件
  • 具有口碑的柳州网站建设价格做网站的技术风险
  • 自适应网站建设案例网络营销策划方案的结构
  • 怎么查看网站是否被收录wordpress同步微博
  • 做催收的网站创建网站基本流程
  • 辽源网站建设设计四大免费网站
  • 福建住房和建设网站密码忘记做医学网站
  • 做网站怎么打不开localhost搭建网站一条龙
  • 典型的电子商务网站腾讯企业邮箱浙江服务中心
  • 东莞南城网站建设公司怎么样北京企业vi设计公司
  • 初中做网站的软件做自媒体网站
  • 泉州网站设计公司公司注册地址和办公地址
  • 网站群发软文软件三类医疗器械
  • 如何用腾讯云主机做网站做销售平台哪个网站好
  • 百度怎么开户做网站wordpress 显示备案信息
  • 美术馆网站建设要求网站设计主要做什么
  • 提供服务好的网站制作中职网站建设课件
  • 湛江做网站需要什么上海微网站公司
  • 企业网站排名优化价格网站是怎么挣钱的
  • 微网站 案例备案的网站 能拿来做仿站吗