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

兼职做问卷调查的网站沈阳网站建设q479185700棒

兼职做问卷调查的网站,沈阳网站建设q479185700棒,河南住房和城乡建设厅官网,网站开发中常见的注册界面一、概述 上篇文章 系列九、SpringBoot MyBatis Redis实现分布式缓存 介绍了基于xml方式实现分布式缓存的效果#xff0c;当前大家使用的技术栈基本是springboot各种框架的组合#xff0c;而springboot显著的一个特点就是去xml配置#xff0c;那么在无xml配置的情形下 MyBatis Redis实现分布式缓存 介绍了基于xml方式实现分布式缓存的效果当前大家使用的技术栈基本是springboot各种框架的组合而springboot显著的一个特点就是去xml配置那么在无xml配置的情形下又该如何实现分布式缓存呢请看下面的代码实战 二、代码实战 2.1、分布式缓存相关的注解 基于注解方式的分布式缓存主要涉及到如下几个注解         1EnableCaching一般标注在配置类上表示开启Spring的缓存如果不加此注解的话Spring自带的缓存将不生效         2CacheConfig(cacheNames xxx)一般标注在service类上用于配置cache的名字建议以当前service类的全路径名作为cache的名字         3Cacheable一般标识在service层的查询方法上表示将一个方法的返回值缓存起来  默认情况下缓存的key就是方法的参数缓存的value就是方法的返回值,如果查询 方法无参数则会使用默认的key即SimpleKey []         4CachePut(key #department.id)一般加在service层的更新方法上update,当数据库中的数据更新后缓存中的数据也要跟着更新使用此注解可以将方法的返回值 自动更新到已经存在的key上         5CacheEvict一般加在service层的删除方法上当数据库中的数据删除后相关的缓存也会被删除使用该注解的时候也可以配置按照某种条件删除某种条件CacheEvict注解中的条件例如value、cacheNames、key、keyGenerator... 2.2、项目概览 2.3、pom dependencies!-- springboot --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactId/dependency!-- 数据源 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.26/version/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.3.1/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.10/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- 工具 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.30/version/dependencydependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.21/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-collections4/artifactIdversion4.4/version/dependencydependencygroupIdcom.alibaba.fastjson2/groupIdartifactIdfastjson2/artifactIdversion2.0.25/version/dependency/dependencies 2.4、yml server:port: 9999spring:redis:host: port: 6379database: 0password: 123456datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/20231018_redis?useSSLfalseuseUnicodetruecharacterEncodingUTF8serverTimezoneGMTusername: rootpassword: 123456mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: org.stat.entity.modelconfiguration:map-underscore-to-camel-case: truelogging:level:org:star:mapper: debug 2.5、主启动 /*** Author : 一叶浮萍归大海* Date: 2023/12/10 12:44* Description:**/ MapperScan(basePackages org.star.mapper) SpringBootApplication public class SpringbootRedisDistributeCacheAnnotationApplication {public static void main(String[] args) {SpringApplication.run(SpringbootRedisDistributeCacheAnnotationApplication.class, args);}} 2.6、MyRedisConfig /*** Author : 一叶浮萍归大海* Date: 2023/12/10 15:28* Description:* EnableCaching的作用开启Spring的缓存如果不加此注解的话Spring自带的缓存将不生效**/ EnableCaching Configuration public class MyRedisConfig {/*** RedisTemplate k v 序列化** param connectionFactory* return*/Beanpublic RedisTemplateObject, Object redisTemplate(LettuceConnectionFactory connectionFactory) {RedisTemplateObject, Object redisTemplate new RedisTemplate();redisTemplate.setConnectionFactory(connectionFactory);redisTemplate.setKeySerializer(RedisSerializer.string());redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.setHashKeySerializer(RedisSerializer.string());redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.afterPropertiesSet();return redisTemplate;}Beanpublic RedisCacheManager redisCacheManager(RedisTemplate redisTemplate) {RedisCacheWriter redisCacheWriter RedisCacheWriter.nonLockingRedisCacheWriter(redisTemplate.getConnectionFactory());RedisCacheConfiguration redisCacheConfiguration RedisCacheConfiguration.defaultCacheConfig()// 设置默认的超时时间为2小时.entryTtl(Duration.ofHours(2)).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer()))// 设置默认的缓存前缀.prefixCacheNameWith(REDIS_CACHE_);return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration);}} 2.7、DepartmentDO /*** Author : 一叶浮萍归大海* Date: 2023/12/10 12:48* Description:*/ Data AllArgsConstructor NoArgsConstructor Accessors(chain true) ToString(callSuper true) public class DepartmentDO implements Serializable {/*** 编号*/private Integer id;/*** 部门名称*/private String departmentName;} 2.8、DepartmentMapper.java /*** Author : 一叶浮萍归大海* Date: 2023/12/10 12:50* Description:*/ public interface DepartmentMapper {/*** 查询所有部门* return*/ListDepartmentDO listAllDepartment();/*** 根据id查询部门信息* param id* return*/DepartmentDO getDepartmentById(Integer id);/*** 根据id和departmentName查询部门* param id* param departmentName* return*/DepartmentDO getDepartment(Integer id,String departmentName);/*** 更新Department* param department* return*/int updateDepartment(DepartmentDO department);/*** 删除部门* param id*/void deleteDepartment(Integer id); } 2.9、DepartmentMapper.xml !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmapper namespaceorg.star.mapper.DepartmentMapperselect idlistAllDepartment resultTypeorg.star.entity.model.DepartmentDOselect id,department_name from department/selectselect idgetDepartmentById resultTypeorg.star.entity.model.DepartmentDOselect id,department_name from department where id #{id}/selectselect idgetDepartment resultTypeorg.star.entity.model.DepartmentDOselect id,department_name from department where id #{id} and department_name #{departmentName}/selectupdate idupdateDepartment useGeneratedKeystrue keyPropertyidupdate department set department_name #{departmentName} where id #{id}selectKey resultTypeorg.star.entity.model.DepartmentDO orderAFTER keyPropertyidselect id,department_name from department where id #{id}/selectKey/updatedelete iddeleteDepartmentdelete from department where id #{id}/delete/mapper 2.10、DepartmentService /*** Author : 一叶浮萍归大海* Date: 2023/12/10 20:00* Description:* 基于注解的分布式缓存redis中key的生成规则${prefixCacheNameWith} _ ${cacheNames} _ ${key}* 说明prefixCacheNameWith为RedisCacheManager中配置的前缀* 举例* 1listAllDepartment REDIS_CACHE_org.star.service.DepartmentService::SimpleKey []* 2getDepartmentById REDIS_CACHE_org.star.service.DepartmentService::1* 3getDepartment REDIS_CACHE_org.star.service.DepartmentService::SimpleKey [1,研发部]**/ Service CacheConfig(cacheNames org.star.service.DepartmentService) public class DepartmentService {Resourceprivate DepartmentMapper departmentMapper;/*** return* Cacheable的作用* Cacheable注解一般加在查询方法上表示将一个方法的返回值缓存起来* 默认情况下缓存的key就是方法的参数缓存的value就是方法的返回值,如果查询* 方法无参数则会使用默认的key即SimpleKey []*/Cacheablepublic ListDepartmentDO listAllDepartment() {ListDepartmentDO departments departmentMapper.listAllDepartment();return departments;}/*** 对于只有一个参数的查询方法其key位id对应的值* param id* return*/Cacheablepublic DepartmentDO getDepartmentById(Integer id) {return departmentMapper.getDepartmentById(id);}/**** 对于有多个参数的查询方法其key为所有的参数如果想修改可以单独指定例如Cacheable(key #id)* param id* param departmentName* return*/Cacheablepublic DepartmentDO getDepartment(Integer id,String departmentName) {return departmentMapper.getDepartment(id,departmentName);}/*** CachePut作用* CachePut注解一般加在更新方法上update,当数据库中的数据更新后缓存中的数据也要跟着更新使用此注解可以将方法的返回值* 自动更新到已经存在的key上示例如下* param department* return*/CachePut(key #department.id)public DepartmentDO updateDepartment(DepartmentDO department) {departmentMapper.updateDepartment(department);return department;}/*** CacheEvict()作用* CacheEvict()注解一般加在删除方法上当数据库中的数据删除后相关的缓存也会被删除使用该注解的时候也可以配置按照某种条件* 删除某种条件CacheEvict注解中的条件例如value、cacheNames、key、keyGenerator...* param id*/CacheEvictpublic void deleteDepartment(Integer id) {departmentMapper.deleteDepartment(id);}} 2.11、DepartmentServiceTest /*** Author : 一叶浮萍归大海* Date: 2023/12/10 20:07* Description:*/ SpringBootTest public class DepartmentServiceTest {Resourceprivate DepartmentService departmentService;Testpublic void listAllDepartmentTest() {ListDepartmentDO departments1 departmentService.listAllDepartment();System.out.println(departments1 departments1);System.out.println();ListDepartmentDO departments2 departmentService.listAllDepartment();System.out.println(departments2 departments2);}Testpublic void getDepartmentByIdTest() {DepartmentDO department1 departmentService.getDepartmentById(1);System.out.println(department1 department1);System.out.println();DepartmentDO department2 departmentService.getDepartmentById(1);System.out.println(department2 department2);}Testpublic void getDepartmentTest() {DepartmentDO department1 departmentService.getDepartment(1, 研发部);System.out.println(department1 department1);System.out.println();DepartmentDO department2 departmentService.getDepartment(1, 研发部);System.out.println(department2 department2);}Testpublic void updateDepartmentTest() {DepartmentDO department new DepartmentDO().setDepartmentName(研发部444).setId(1);DepartmentDO updatedDepartment departmentService.updateDepartment(department);System.out.println(updatedDepartment updatedDepartment);}Testpublic void deleteDepartmentTest() {departmentService.deleteDepartment(1);}} 2.12、测试 2.12.1、listAllDepartmentTest 2.12.2、 getDepartmentByIdTest 2.12.3、getDepartmentTest 2.12.4、 updateDepartmentTest 2.12.5、 deleteDepartmentTest
http://www.pierceye.com/news/471502/

相关文章:

  • 制作手机网站用什么软件唐山网站专业制作
  • 网站后台如何登陆互联网营销中心
  • 做排行榜的网站知乎长沙服务好的网络营销
  • 做网站猫要做端口映射吗太原网站建设口碑推荐
  • 新闻门户网站是什么快速搭建网页
  • 随意设计一个网站域名是什么?
  • 找人做网站需要准备什么材料用视频做网站背景
  • 大连做网站首选领超科技wordpress注册邮件发送设置
  • 西山区城市建设局网站如何做防水网站
  • 商务网站建设的组成包括自动链接 wordpress
  • 网站如何关闭东莞网站开发推荐
  • 自己开网站能赚钱吗网站界面设计描述
  • 二手交易网站建设方案ppt网站备案的作用
  • 北京行业网站建设临沂谁会做网站
  • 网站备案 游戏修改wordpress字体
  • 福建微网站建设价格宝山专业网站建设
  • 做采集网站难不关键词做网站名字
  • 怎么做律师事务所的网站用凡科做网站好吗
  • 免费做网站公司ydwzjs政务网站的建设
  • 企业网站设计总结西安做网站哪里便宜
  • wordpress 电影下载站济南最新消息
  • 怎样做企业的网站公司部门解散
  • 三亚中国检科院生物安全中心门户网站建设什么是响应式网站
  • 为什么要建设公司网站怎么制作图片视频和配音乐
  • 建设项目环境影响登记表备案系统网站论坛门户网站开发
  • 铁岭网站建设建设云企业服务平台
  • 响应式网站制作方法泰安明航网络科技有限公司
  • 建设网站需要几级安全等保深圳网站开发招聘
  • 无锡网站建设制作公司甘肃省建设工程网站
  • 广州微信网站建设哪家好公司网站排名优化手段