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

企业公司网站源码国内有做外汇的正规网站吗

企业公司网站源码,国内有做外汇的正规网站吗,wordpress模板文件介绍,编程网课平台哪个好#x1f353; 简介#xff1a;java系列技术分享(#x1f449;持续更新中…#x1f525;) #x1f353; 初衷:一起学习、一起进步、坚持不懈 #x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正#x1f64f; #x1f353; 希望这篇文章对你有所帮助,欢… 简介java系列技术分享(持续更新中…) 初衷:一起学习、一起进步、坚持不懈 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正 希望这篇文章对你有所帮助,欢迎点赞 收藏 ⭐留言 更多文章请点击 文章目录 一、 Spring cache简介二、 常用注解三、 使用步骤3.1 引入依赖3.2 开启缓存支持3.3 引入Redis配置3.4 添加注解3.5 启动测试,发现报如下错误3.6 Redis客户端存储的是二进制数据如何解决 四、 注解中key和value的介绍及使用(重点)4.1 每个注解的SPEL表达式支持有所区别4.2 使用时还需注意 五、 设置Spring cache的缓存失效时间5.1 第一种5.2 第二种 一、 Spring cache简介 官方文档中有详细介绍:https://docs.spring.io/spring-framework/reference/integration/cache/annotations.html Spring cache是Spring提供的通用缓存框架,利用AOP,实现了基于注解的缓存功能。 Spring cache只是提供了一层抽象,地城可以切换不同的cache实现,具体就是通过CacheManager接口开统一不同的缓存技术,CacheManager是Spring提供的各种缓存技术抽象接口。 二、 常用注解 注解描述EnableCaching开启缓存注解功能Cacheable 从缓存查询,存在则返回,不存在查询数据库,存入缓存CachePut将数据结果存入缓存 CacheEvict清空缓存内容属性(allEntries true) 表示清空所有Caching多缓存配置 缓存非null值 因为在使用中,可能会查询到null所以进行处理 在Cacheable注解中,提供了两个属性,分别是 :condition ,unless condition:表示满足条件,再缓存unless: 表示满足条件,不缓存 Cacheable(value cache,key #id,unless #result null)GetMapping(/{id})public User queryById(PathVariable(id) Long id) {return providerService.queryById(id);}注意: 这里只能使用unless,因为在condition中无法获取到结果#result 三、 使用步骤 在Spring Boot项目中,使用缓存技术只需在项目导入相关缓存技术的依赖包,并在启动类上使用EnableCaching开启缓存支持。由于Spring cache的基本功能是spring核心(spring-context)中提供,无需引入其他依赖。默认情况下,Spring cache使用ConcurrentHashMap作为本地缓存存储数据,如何要使用其他的缓存框架,我们只需要做简单的配置即可。例如:使用Redis作为缓存技术,只需要导入Spring data Redis的maven坐标即可 3.1 引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency3.2 开启缓存支持 EnableCaching SpringBootApplication public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);} } 3.3 引入Redis配置 默认情况下,Spring cache使用ConcurrentHashMap作为本地缓存存储数据,如何要使用其他的缓存框架,我们只需要做简单的配置即可。 !-- redis --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencyspring:redis:host: 196.120.168.100port: 6379database: 1password:3.4 添加注解 下面方法只是根据id查询数据库,因此简单的代码就不展示了,我们主要关注注解的使用就可以了。 /*** 根据id查询用户信息*/Cacheable(user)GetMapping(/{id})public User queryById(PathVariable(id) Long id) {return providerService.queryById(id);}3.5 启动测试,发现报如下错误 只需加入该配置即可: spring:cache:type: redis接口返回正常,redis客户端查看正常 3.6 Redis客户端存储的是二进制数据如何解决 但是发现redis存储的格式是二进制形式(默认序列化使用的是 JdkSerializationRedisSerializer 存储二进制字节码)。不够直观,这时我们可以自定义RedisTemplate模板 Configuration public class RedisConfig extends CachingConfigurerSupport {Beanpublic RedisTemplateString, Object redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplateString, Object redisTemplate new RedisTemplate();redisTemplate.setConnectionFactory(redisConnectionFactory);// 用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值StringRedisSerializer stringRedisSerializer new StringRedisSerializer();redisTemplate.setKeySerializer(stringRedisSerializer); // keyJackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper objectMapper new ObjectMapper();// 指定要序列化的域(field,get,set)访问修饰符(public,private,protected)objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(objectMapper);redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); //valueredisTemplate.setHashKeySerializer(stringRedisSerializer);redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;} }再次调用查看,还是二进制,这时发现RedisTemplate调用是正常的,而只有使用Cacheable(user)时是二进制这是因为使用Cacheable注解的时候会将返回的对象缓存起来默认缓存的值是二进制的这时添加如下配置,定义redisCacheManager与redisTemplate配置进行绑定 Beanpublic RedisCacheManager redisCacheManager(RedisTemplate redisTemplate) {RedisCacheWriter redisCacheWriter RedisCacheWriter.nonLockingRedisCacheWriter(redisTemplate.getConnectionFactory());RedisCacheConfiguration redisCacheConfiguration RedisCacheConfiguration.defaultCacheConfig() // .entryTtl(Duration.ofHours(1))// 设置缓存有效期一小时.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisTemplate.getValueSerializer()));return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration);}成功查看 四、 注解中key和value的介绍及使用(重点) value:缓存的名称,每个缓存名称下面可以有多个keykey : 缓存的key, 支持SPEL表达式 /*** 根据id查询用户信息*/CachePut(value user,key #result.id)GetMapping(/{id})public User queryById(PathVariable(id) Long id) {return providerService.queryById(id);}4.1 每个注解的SPEL表达式支持有所区别 官方文档中有详细介绍:https://docs.spring.io/spring-framework/reference/integration/cache/annotations.html 这里列出一些,供参考 常用格式CachePut(value cache,key #user.id)CachePut(value cache,key #p0.id)CachePut(value cache,key #root.args[0].id)CachePut(value cache,key #id)CachePut(value cache,key test #id)静态方法调用Cacheable(value user,key T(com.use.dto.bean.CurrentRequest).getUser().getUid())4.2 使用时还需注意 例如: CachePut中可以使用#result而Cacheable中则不可以使用,具体这里不一一测试,使用时还需注意 五、 设置Spring cache的缓存失效时间 在真实开发中失效时间是必须设置的,不然一直占用内存是不可取的 5.1 第一种 全局生效 spring:redis:time-to-live: 1800000 # 缓存过期时间 单位毫秒5.2 第二种 局部设置 Configuration public class RedisCacheConfig {//设置失效时间private static final MapString, Duration cacheMap;static {cacheMap ImmutableMap.String, Durationbuilder().put(user, Duration.ofMinutes(5)).build();}//配置RedisCacheManagerBuilderCustomizer对象Beanpublic RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() {return (builder) - {//根据不同的cachename设置不同的失效时间for (Map.EntryString, Duration entry : cacheMap.entrySet()) {builder.withCacheConfiguration(entry.getKey(),RedisCacheConfiguration.defaultCacheConfig().entryTtl(entry.getValue()));}};} }
http://www.hkea.cn/news/14282140/

相关文章:

  • 可以做软件的网站有哪些功能吗网站关键词排名优化工具
  • 厦门律师网站建设沈阳快速网站建设网站开发
  • 网站维护一年多少钱福建键seo排名
  • 网站做404wordpress微信分享二维码生成
  • 知名的网站建设公司排名行业软件定制开发
  • 网站建设一个多少钱百度小程序有什么用
  • dw做网站地图网站做视频流量赚钱
  • 淘宝客做的比较好的网站南宁世尊商贸网站建设
  • 做教育网站需要规划哪些内容好项目推荐平台
  • 网站备案删除北京原创先锋网络科技发展有限公司
  • 济南免费做网站大连市网站制作电话
  • 淮北做网站公司做垂直行业网站利润分析
  • 怎样弄网站的导航栏网站备案信息注销
  • 热水器网站建设 中企动力关于我们网页设计模板
  • 禅城建设网站中国网网址是多少
  • 成都网站制作怎么收费海口自助建站
  • 网站需要哪些备案网站开发配置管理计划
  • 自己做的网站项目怎样卖办公室装修设计app
  • 做网站用什么语言快网站建设公司外包
  • 网站制作先学什么新冠疫苗最新官方消息
  • 微网站建设市场分析网页设计html代码大全居中
  • 番禺开发网站费用专业建设网站哪家好
  • 承德网站建设郑州网站建设公司前景
  • 哈尔滨网站制作软件家在深圳光明论坛
  • 狼窝网站更新升级通知山东联迪建设集团网站
  • 佛山网站建设和维护电话卡分销平台
  • 马鞍山网站建设服务开发哪些网站做推广比较好
  • pc站和手机网站石做视频网站需要牌照
  • 金种子酒业网站建设改进网站的建议
  • 龙岗网站优化公司案例网页设计费用标准