游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

java在静态工具类中注入service出现NullPoin

  一般我们在controller层调用service时,只需要使用Autowired注解即可,例如如下代码我们经常看到:RestControllerRequestMapping(business)publicclassBizResourceController{AutowiredprivateBusinessServicebusinessService;RequestMapping(pathqueryYearList,methodRequestMethod。POST)publicListStringqueryYearList(RequestParam(cityCode)StringcityCode){returnbusinessService。queryYearList(cityCode);}}
  以上代码的含义就是通过在controller中注入业务层类(BusinessService)调用业务层方法queryYearList。但是如果我们要在我们自己封装的Utils工具类中或者非controller普通类中使用Autowired注解注入Service或者Mapper接口,直接注入是报错的,因为Utils使用了静态的方法,我们是无法直接使用非静态接口的,当我们遇到这样的问题,我们就要想办法解决了。例如:publicclassRedisHelper{privatestaticfinalLoggerloggerLoggerFactory。getLogger(RedisHelper。class);AutowiredprivatestaticStringRedisTemplateredisTemplate;scan实现parampattern表达式paramconsumer对迭代到的key进行操作publicstaticvoidscan(Stringpattern,Consumerbyte〔〕consumer){redisTemplate。execute((RedisConnectionconnection){try(Cursorbyte〔〕cursorconnection。scan(ScanOptions。scanOptions()。count(Long。MAXVALUE)。match(pattern)。build())){cursor。forEachRemaining(consumer);returnnull;}catch(IOExceptione){e。printStackTrace();thrownewRuntimeException(e);}});}获取符合条件的keyparampattern表达式returnpublicstaticListStringkeys(Stringpattern){ListStringkeysnewArrayList();scan(pattern,item{符合条件的keyStringkeynewString(item,StandardCharsets。UTF8);keys。add(key);});returnkeys;}publicstaticvoiddelete(ListStringlistKey){try{logger。info(需要删除key:listKey);Longdelete1redisTemplate。delete(listKey);logger。info(清除rediskey结果:{},delete1);}catch(Exceptione){e。printStackTrace();}}}
  如上代码在redis工具类中想要注入StringRedisTemplate但是我们使用的时候会发现,这个StringRedisTemplate对象时null。所以当我们需要有类似需求进行注入的时候要调整注入方式和写法,如下代码:ComponentpublicclassRedisHelper{privatestaticfinalLoggerloggerLoggerFactory。getLogger(RedisHelper。class);privatestaticStringRedisTemplateredisTemplate;AutowiredpublicvoidsetRedisTemplate(StringRedisTemplateredisTemplate){RedisHelper。redisTemplateredisTemplate;}scan实现parampattern表达式paramconsumer对迭代到的key进行操作publicstaticvoidscan(Stringpattern,Consumerbyte〔〕consumer){redisTemplate。execute((RedisConnectionconnection){try(Cursorbyte〔〕cursorconnection。scan(ScanOptions。scanOptions()。count(Long。MAXVALUE)。match(pattern)。build())){cursor。forEachRemaining(consumer);returnnull;}catch(IOExceptione){e。printStackTrace();thrownewRuntimeException(e);}});}获取符合条件的keyparampattern表达式returnpublicstaticListStringkeys(Stringpattern){ListStringkeysnewArrayList();scan(pattern,item{符合条件的keyStringkeynewString(item,StandardCharsets。UTF8);keys。add(key);});returnkeys;}publicstaticvoiddelete(ListStringlistKey){try{logger。info(需要删除key:listKey);Longdelete1redisTemplate。delete(listKey);logger。info(清除rediskey结果:{},delete1);}catch(Exceptione){e。printStackTrace();}}}
  其修改的核心是:
  首先加Component注解目的是让spring托管,另外注入StringRedisTemplate我们采用set方式进行注入即可。
  作者:我是大明哥
  链接:https:juejin。cnpost7011387262924095524

钱放在银行里就一定安全吗?在大多数人的印象中,银行是百分百安全的,无论是商业银行还是信用社,都是国家办的企业,所以没什么问题,也没什么风险,是不会倒闭的,所以有很多人习惯把自己所赚到的钱,或者闲置的部分……南通滨江公园美得让我尖叫滨江公园位于南通长江边上,南面3公里处就是南通最著名的AAAA狼山风景区。南通滨江公园有悬崖峭壁、有沙滩、有观景台、有灯塔。真的美得醉人、美得让人窒息!首先:来到龙爪园风景区,……Axure原型及元件库全集(1)AxureRP原型整理资料全集,包括:AxureRP原型400多个,元件库13个。【元件部分】5013:最全的Web设计Axure元件库5012:数据图表Ax……用5G要换卡?他们没把这些秘密告诉你近日,《中国电信5GSA安全增强SIM卡白皮书》发布。白皮书中说:现阶段用户通过使用运营商已发行的4G卡接入5G网络,现有的4G卡缺少5G标准中定义的新功能和新增的卡文件……华为Mate40系列值得关注的3个点,屏幕挖孔Soc从最近华为Mate40系列的预热来看,相比P40系列,今年的Mate升级点不多,因为目前预热更多是软件功能,比如隔空手势2。0、相机畸变矫正等等,对于华为来说,最大的卖点也就是……市值超2100亿巨头!物联网转型价值凸显,京东方营收利润成倍文杨剑勇过去一年,因疫情在一定程度上提升了无接触场景的物联网应用需求,继而推动物联网呈现稳健增长态势。来自权威调研机构IDC日前所发布的数据显示:2020年全球物联网支出……中国自主超跑仅1。9秒破百红旗发布S9超跑官图日前,红旗品牌发布了红旗S9超跑官图。新车目前已开启预售,限量销售99辆;搭载自主设计的V8直喷增压发动机(V8TD)与三电机所组成的混合动力系统;最大净功率达到660马力,最……石头再次引领全球,自清洁扫拖体验全面升级如今的时代已经今非昔比了。5G的发布了也加快了科技的步伐。智能家居的诞生,在到扫地机器人的到来。这无一不是让我们对生活更加的方便和造福。当我们每天回到家就能够看到家里干干……联想手机走向衰败,网友为何说它一手好牌打稀烂最近看了一篇文章《联想手机的十年浩荡》讲述了联想手机内部高管间的勾心斗角,意见不统一导致多位高管离开联想,而联想手机业务也开始走向落寞,下面我们从网友角度,看看曾经中华酷联的联……比亚迪F3保值首选近年来,国内的经济增长迅速,国内的汽车保有量蹭蹭的上涨,虽然说目前市场开始疲软,但是国人对于汽车的热情依旧是高涨,不少的老百姓对于豪车以及新车型都保持着高度的关注,当然也时刻关……16款令人上头,欲罢不能的小众网站,看得我眼界大开推荐几个自己当初看到眼界大开的网站。不但很有意思,有的还很实用,每一个都像发现了新大陆!1、阴间动态特效:photomosh这个不但能生成图片,还可以生成gif。我拿鱿鱼……定了!最新放假通知七八月对打工人来说真是太辛苦了持续搬砖没有节日假期但,挺过了8月你就会发现一大波节日和假期就要来啦!中秋假期放假安排9月19日至21日……
iOS14。6Beta3修复性能下降BUG,iOS15升级名苹果的iOS14。5正式版,以及iOS14。6Beta版算是同时进行的版本。前几天,苹果发布了iOS14。5。1正式版,修复了两大安全漏洞,同时也修复了一些用户无法打开App跟……新能源黑科技效率超95的新型无磁电动机,堪比电动方程式赛车我们往往把过多关注点放在电池上,例如它们是用宁德时代还是松下的电池?是三元锂还是磷酸铁锂等等。但在电池以外的战场更为激烈,包括电驱动和逆变器。目前这方面技术除了博格华纳、……分布式数据中心或是未来数据中心发展方向分布式数据中心(DistributedDataCenter),简称DDC,是利用网络把成千上万台存储服务器连接、组合而成的一台虚拟超级存储服务器,用以完成单台存储服务器无法完成……阿里巴巴终于对奥斯卡下手了2月25日,第91届奥斯卡奖颁奖典礼在洛杉矶举办。由阿里影业联合出品的《绿皮书》,5提3中,斩获最佳影片、最佳原创剧本、最佳男配角。《绿皮书》的获奖,使阿里影业成为……华为的冬天2000年,互联网泡沫破裂,任正非对员工发表了题为《华为的冬天》的讲话。当年华为销售额220亿人民币,利润29亿人民币,位居全国电子百强首位。也许正是这种强烈的居安思危的意识,……二十年了,你真的懂互联网吗?一,互联网元素之金融互联网互联网诞生最初,构成元素只有一样,便是信息,包括文字、数字、图片、表格、音频、视频等各种信息。随着智能手机愈加强大,移动网络不断升级,在互联网内……纯电版坦克?岚图都没整明白,东风又要新推高端越野品牌在一年前,东风集团才发布了旗下高端电动品牌岚图汽车,与众多造车新势力不同,岚图不仅推出了纯电动车型,还与理想汽车一样走上了增程式路线,本以为多种路线可以让岚图在新能源汽车中,不……数字平台的监管需要思路创新数字平台的动态竞争、跨界经营、网络效应、寡头竞争等特征,使得垄断问题严重且复杂。破坏竞争,损害消费者利益,抑制创新活力,阻碍高质量发展,需要加强反垄断监管。但是,强化监管,不是……币圈新韭菜从狂欢到失语,信仰打碎再重铸对于绝大多数人来说,比特币早已不是一个陌生的词汇。他们也许很早就听说过比特币致富的神话,但当时对他们来说,虚拟货币只是一个存在于网络世界中虚幻飘渺、不切实际的前沿概念,远……微信3分钟的视频怎样发才不压像素?微信是目前人们日常生活中使用最多的社交媒体工具,同时伴随着高清视频拍摄的普及,人们越来越喜欢通过视频内容给到其他人来分享生活经历。但是微信在视频上传时有着非常严苛的大小限制。这……请问耳朵耳鸣并伴有听力下降,这种可以配助听器吗?先去治疗下这个情况,如果治疗完还是听力问题,就可以去专业的验配中心配助听器你好,请问耳朵耳鸣并伴有听力下降,这种可以配助听器吗?只要有听力损失都是需要佩戴助听器的,……安卓目前的主流旗舰机型都很流畅,那还在吐槽安卓机各种卡出翔的我一个苹果用户看到这种问题,确实想对这类人说几句!题主所说的这个问题我在日常生活中非常常见,身边总有一些苹果用户或者安卓用户吐槽安卓机很卡,不好用,但是小编想说句公道话,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网