@EnableCaching @Cacheable @CachePut redis注解缓存

news/2024/4/16 3:11:04

@EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了。

当你在配置类(@Configuration)上使用@EnableCaching注解时,会触发一个post processor,这会扫描每一个spring bean,查看是否已经存在注解对应的缓存。如果找到了,就会自动创建一个代理拦截方法调用,使用缓存的bean执行处理。

@EnableCaching
@Configuration
public class RedisConfig {/*** @Cacheable注解不支持配置过期时间,所有需要通过配置CacheManneg来配置默认的过期时间和针对每个类或者是方法进行缓存失效时间配置。* @param redisConnectionFactory* @return*/@Beanpublic CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {return new RedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory),this.getRedisCacheConfigurationWithTtl(600), // 默认策略,未配置的 key 会使用这个this.getRedisCacheConfigurationMap() // 指定 key 策略);}private Map<String, RedisCacheConfiguration> getRedisCacheConfigurationMap() {Map<String, RedisCacheConfiguration> redisCacheConfigurationMap = new HashMap<>();redisCacheConfigurationMap.put("wxcl", this.getRedisCacheConfigurationWithTtl(60*60*24*7));//redisCacheConfigurationMap.put("UserInfoListAnother", this.getRedisCacheConfigurationWithTtl(18000));return redisCacheConfigurationMap;}private RedisCacheConfiguration getRedisCacheConfigurationWithTtl(Integer seconds) {StringRedisSerializer keyStringRedisSerializer = new StringRedisSerializer();Jackson2JsonRedisSerializer<Object> 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);RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();redisCacheConfiguration = redisCacheConfiguration.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)).entryTtl(Duration.ofSeconds(seconds));redisCacheConfiguration.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(keyStringRedisSerializer));return redisCacheConfiguration;}}
@Slf4j
@Service("myUserCacheService")
public class MyUserCacheService {/*** sso登录用户获取当前用户* @param token token* @param user  获取默认null*/@Cacheable(value = "iotgw",key = "'user'+#token",unless = "#result eq null")public Map<String, String> getUserFromRedis(String token, Map<String, String> user) {log.info("从缓存中获取sso登录人信息失败 {},准备写入缓存", user);return user;}/*** 获取企业信息* @param token   存储关键值* @param company 企业信息*/@Cacheable(value = "devicecenter",key = "'company'+#token",unless = "#result eq null")public Map<String, String> getCompanyFromRedis(String token, Map<String, String> company) {log.info("从缓存中获取登录人信息失败 {},准备写入缓存", company);return company;}/*** 企业信息缓存变更* @param token   存储关键值* @param company 企业信息*/@CachePut(value = "devicecenter",key = "'company'+#token",unless = "#result eq null")public Map<String, String> setCompanyFromRedis(String token, Map<String, String> company) {log.info("从缓存中获取登录人信息失败 {},准备写入缓存", company);return company;}/*** 后台登录用户获取当前用户*/@Cacheable(value = "iotmgw",key = "'user'+#userId",unless = "#result eq null")public Map<String, String> getManagerUserFromRedis(String userId, Map<String, String> user) {log.info("从缓存中获取后台登录人信息失败 {},准备写入缓存", user);return user;}}

http://www.ppmy.cn/news/789507.html

相关文章

企查查、天眼查、启信宝的产品调研分析

三家网站主要针对企业数据&#xff0c;进行多维度聚合和分析&#xff0c;提供免费和收费的附加服务项目 选取市场上&#xff0c;目前比较有名的SAAS模式的平台&#xff0c;进行竞品分析&#xff0c;竞品对象包括企查查、天眼查、启信宝等三家&#xff0c;目前三家共占据了90%以…

中科银谷:企查查天眼查的企业工商数据是从哪里来的?

从数据来源上看&#xff1a; 目前绝大部分的工商数据都是从国家工商总局的公示数据中提取、整理、更新来的。公示数据不提供官方接口&#xff0c;所有很多数据分析的工作无法直接进行&#xff0c;要汇总整理编辑再利用。 从数据的应用场景上看&#xff1a; 主要在TO B 企业服…

通过天眼查查询相关企业信息

ApiOperation("天眼查询企业信息列表")GetMapping("/getTianYan")public AjaxResult getTianYan(String charMa, String keyword) {Map<String, Object> map new HashMap<>();HttpHeaders headers new HttpHeaders();headers.add("Auth…

基于Python爬取天眼查网站的企业信息

爬虫简介 这是一个在未登录的情况下&#xff0c;根据企业名称搜索&#xff0c;爬取企业页面数据的采集程序 注意:这是一个比较简单的爬虫&#xff0c;基本上只用到了代理&#xff0c;没有用到其他的反反爬技术&#xff0c;不过由于爬取的数据比较多&#xff0c; 适合刷解析技能…

java对接天眼查接口,天眼查提供案例方法过期最新案例

java对接天眼查接口 1、先了解天眼查是用来做什么的2、确定账号3、登录账号&#xff0c;找到数据接口&#xff0c;找到token&#xff0c;调用示例 1、先了解天眼查是用来做什么的 天眼查&#xff0c;是中国领先的商业查询平台 &#xff0c;已收录全国近3亿家社会实体信息&…

Java项目对接天眼查

Java项目对接天眼查 文章目录 Java项目对接天眼查天眼查接口以及token获取1、登录天眼查开放平台2、找到数据接口&#xff0c;找到token&#xff0c;调用示例 Java代码以及返回值1、config2、controller层3、service层4、实体类4、测试结果 总结 天眼查接口以及token获取 1、登…

Python访问天眼查

还是今年暑假实习&#xff0c;老板让爬公开的企业联系方式数据&#xff0c;还对天眼查这个网站青眼有加。大家都知道&#xff0c;从不知什么时候开始&#xff0c;政府的企业信用公开平台采取了反爬措施&#xff0c;每次搜索都需通过机器人验证&#xff0c;而很多其他的企业信息…

d3 企业图谱 仿天眼查 企查查

最近接到一个需求&#xff0c;终端要加入企业图谱的功能、能无线穿透下去&#xff0c;之前写过一个类似树形图但是节点长度没有自适应&#xff08;如下图&#xff09;&#xff0c;样式也不够好看&#xff0c;产品提出做一个类似企查查那种的企业图谱&#xff0c;能更直观的展示…

仿企查查、天眼查股权穿透d3

企业图谱做出来了&#xff0c;接下来仿企查查写个股权穿透的图谱 企查查股权穿透 自己的 首先使用的方法以及生成图的方法 跟企业图谱类似 也是用的d3官方demo给出的生成双向树的方法&#xff0c;不过版本是d3.v3 相比企业图谱 股权穿透就简单了&#xff0c;不需要计算文字长…

python天眼查爬虫_普通用户的天眼查爬取

[Python] 纯文本查看 复制代码#-*- coding:utf-8 -*- import requests from lxml import etree import json import time import random from copy import deepcopy class Tianyan(): def __init__(self): self.url https://www.tianyancha.com/search/ola3/p{}?key%E6%B2%A7…

JAVA爬虫天眼查、启信宝...企业信息查询网站

闲来无事&#xff0c;做个快速收集企业信息导出Excel表的程序。所以...嘿嘿&#xff0c;开始对天眼查进行研究&#xff0c;废话不多说。 一、天眼查网站地址&#xff1a;https://www.tianyancha.com&#xff0c;到天眼查网站后例如&#xff1a;查询关键字&#xff1a;教育&…

天眼查 Authorized和企查查 sign破解

目前天眼查、企查查APP均使用了ndk 天眼查 很早之前研究的。。。 1.使用爱加密进行加固 2.使用爱加密so&#xff0c;sm4进行加密 3.Authorized使用imei、设备id等作为验证 4.Authorized大概5分钟过期 5.抓包可以使用手机端抓包工具和justtruestme 6.破解Authorized&#xff0…

爬虫-天眼查数据

前两天收到一个公司的笔试题&#xff1a; 从结果页面中提取股东信息&#xff0c;如&#xff1a;http://www.tianyancha.com/company/9519792 中展示的”许晨晔”等姓名 oh 我还不会爬虫&#xff0c;吓的我赶紧刷了刷知乎&#xff0c;找到一个例子&#xff0c;大体是个模板&am…

采集天眼查的10个经典方法

天眼查的企业数据、工商信息、法人号码、人员名录、网页抓取数据、网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么采集天眼查数据的方法有哪些呢&#xff1f;我…

天眼查pc端公司信息抓取

本篇查询的是人工智能前5页相关公司的信息&#xff1a; #主要是异常处理和反爬处理 1.异常处理就是有的公司不是公开的数据没有所以需要判断&#xff0c;不然程序会出错 2.反爬页面浏览多了会需要登录&#xff0c;这边用cookie处理 import requests from lxml import etreegs[…

天眼查新方式信息爬取

\xe8\xb0\xa3\xe8\xa8\x80 \ 中文乱码转换&#xff1a; \xe8\xb0\xa3\xe8\xa8\x80.encode(raw_unicode_escape).decode("utf-8")#本文通过新的方式爬取突破 由于公司列表页信息很少反爬&#xff0c;除了公司名称其他信息都没有&#xff0c;所以可以取巧提取注册时间…

天眼查询

天眼查官方网址&#xff1a;https://www.tianyancha.com/ 国家企业信息信息公开系统&#xff1a;http://www.gsxt.gov.cn/corp-query-homepage.html 介绍&#xff1a; 天眼查是一款 “都能用的商业调查工具”&#xff0c;实现了企业信息、企业发展、司法风险、经营风险、经营…

采集天眼查数据(根据已有的公司名称采集)

因为部分原因,需要用到天眼查的数据,虽然开了天眼查的会员账号,但是导出Excel数据字段内容太少,部分例如工商注册号,组织机构代码都没用,感觉有些不完整,所以利用数据库里已有的公司名称来进行采集,将信息页的内容采集完整 吐槽下,天眼查的反扒确实蛮多的,最早用软件采集,但是…

天眼查企业查询爬虫

写一个天眼查的爬虫&#xff0c;大家有需要的可以直接拿来用,是基于selenium写的。所以使用之前得下载上这个插件。 爬的是上面的那个页面 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support impor…

爱企查与天眼查也来啦~

续企查查之后&#xff0c;爱企查作为不用登录也能查的网站&#xff0c;还自带json返回&#xff0c;方便了数据的获取&#xff0c;深受我的喜爱。 天眼查只能手机号登录&#xff0c;没有企查查QQ登录的方便&#xff0c;勉强把它拉过来吧&#xff0c;他既没有json返回&#xff0…
最新文章