工具类注入需要的service--亲测可行

springboot 工具类注入service接口,静态变量 java @PostConstruct 工具类中,直接使用注入的静态变量,及service接口 1.类上加入@Component注解 2.声明非静态变量,value注解对应springboot 配置文件中的变量 init中赋值给静态变量 注入service 3.声明一个静态的本类 4.初始化, 声明一个void的方法,名字可以随意命名,例如:init() 加上注解 @PostConstruct @PostConstruct基本: @PostConstruct注解 是J... 阅读详情

 根据这个找到的解决办法

 代码如下(注解的方式,推荐使用这种):

@Component //关键一:添加此注解才能被spring扫描到
public class TokenUtils {
    private static final Integer REDIS_TIME = 60 * 60 * 24 * 365;
    private static final Integer CODE_TIME = 60 * 60;
    private static final ObjectMapper MAPPER = new ObjectMapper();

    
    @Autowired
    private  RedisService rService; //关键二:添加需要的服务类
    public static TokenUtils tokenUtils; //关键三:声明一个当前类的静态对象

    @PostConstruct  //关键四:通过@PostConstruct注解实现注入
    public void init() {
        tokenUtils = this;
        //tokenUtils.rService =  this.rService;
    }


    /**
     * 查找此token对应的值
     *
     * @param token
     * @return
     */
    public static String getDataByKey(String token) {
        String key = "TOKEN_" + token;
        return tokenUtils.rService.get(key);
    }
}

 

第二种(XML配置的方式,本人不建议,相对感觉比较麻烦): 

可以把init()方法上的@PostConstruct注解去掉,在spring-comtext.xml中配置以下bean就好了,里面什么内容都不用写

<bean id="TokenUtils" class="这里写utils类的包全路径名" init-method="init"></bean>

 

注意:  如果写完运行还是报空指针,则需要检查是否配置了spring包扫描(八九不离十是因为这个没配置)

 

在网上找了很多,很多都是点到为止,并没有说明为什么这么做:

点我了解@PostConstruct

 

如何在工具类注入Service 在自己做springboot项目时,有时遭遇了一些比较特殊的情况,需要在工具类中对数据库数据进行一些操作,根据网上资料解决问题后,下面记录一下解决方式。 1.我们需要在工具类中添加@Component注解,便于容器扫描到这个类。 2.跟平时一样通过@Autowired注入需要用到的Service private UtilService utilService; 3.创建一个静态的本类 pri... 阅读详情

相关推荐

国密SKF库数字签名全解析:SM2签名与验证的详细实现

本文详细解析了基于国密SKF库实现SM2数字签名与验证的全过程。内容涵盖SKF库环境搭建、设备初始化、PIN码验证、SM2签名生成以及纯软件与SKF库两种验证方式的详细实现,为开发者提供了一份实用的国密算法开发指南。

weixin_29303701的博客 297

如何在工具类注入service

如何在工具类注入service

qq_44300280的博客 4940

Ollama系列---【ollama使用gpu运行大模型】

一、安装CudaToolkit 使用控制台命令查看当前显卡驱动中的cuda版本 nvidia-smi 二、下载CudaToolkit 注意:CudaToolkit版本要低于上面的显卡Cuda版本。 Cuda各版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive 下载好之后,一路下一步,一直默认即可。 如果安装到了自定义的位置,记得加环...

-少年-的博客 7946

java 工具类中如何注入Dao Service

工具类注入对象

weixin_44797884的博客 2084

java实现普通类 注入service

1. 添加@Component注解 2. @Autowired private ISysDeptService iSysDeptService; private static A a; (A为你的类名) 3. @PostConstruct public void init() { a= this; } 4. 调用 a.iSysDeptService.selectUserId();

qq_37741426的博客 2531

Java工具集-Spring工具(获取Spring容器中的Bean对象)

引入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.1.9.RELEAS...

逍遥云恋 907

工具类注入需要的service或配置类--可行

代码如下(注解的方式,推荐使用这种): @Component //关键一:添加此注解才能被spring扫描到 public class TokenUtils { private static final Integer REDIS_TIME = 60 * 60 * 24 * 365; private static final Integer CODE_TIME = 60 * 60; private static final ObjectMapper MAPPER = new Ob...

YINZONGCHAO的博客 613

工具类Util中如何注解注入Service不报空

前言 实际项目中工具类有时候需要注入Service,但是工具类中的方法都是静态的,如果像Controler中注入Service那样操作,将会报空,无法获取Service的实例,那么如何才能正确注入,下文是解决方案。 背景 最近接手的项目是某汽车金融的第三方征信系统,后台管理页面的菜单和各种按钮都不是直接写死在页面的,而是配置在数据库中,然后根据登录用户角色权限动态加载的,因此项目中很多地方都...

百里慕溪 6200

如何在utils工具类注入mapper service

如何在utils工具类注入mapper service

8080 4122

关于Spring/SpringBoot在静态工具类注入Service的解决方案

关于Spring/SpringBoot在静态工具类注入Service的解决方案 前言 今天博主将为大家分享:关于Spring/SpringBoot在静态工具类注入Service的解决方案!不喜勿喷,如有异议欢迎讨论! 最近遇到了需要在工具类注入Service,由于工具类中方法一般都是静态的,所以要求该属性也要是静态的(Service)。但是由于Spring/SpringBoot正常情况下不...

Mr_chen的博客 1万+

Java在静态工具类注入Service

给当前的工具类加上@Component,使其成为一个bean对象 声明一个非静态的属性(加上注解@Autowired)和一个静态的属性。 声明一个返回值为void并且不能抛出异常的方法,在其中将非静态属性赋值给静态属性。该方法上加上注解@PostConstruct 这样就将service的值注入了进来。 @Component public class DemoUtil { @Autowired private RedisTemplate redisTemplate; pr

u013367040的博客 1508

SpringBoot中main方法注入service

参考该文章 在springboot中使用main方法常规无法注入service,因为以后也可能会有这种情况,所以采取工具类的方式进行,该工具类为固定写法,直接复制就行 @Component public class SpringContextUtil implements ApplicationContextAware { private static ApplicationCont...

llzmlt的博客 8153

springboot工具类注入service

springboot工具类注入service类 @Component public class FileUtils { @Autowired private PropertiesUtil properties; @Autowired private INewsInfoTableService newInfoService; private static INewsInfoTa...

ccllcaochong1的博客 956

静态工具类注入service的两种方法

方法一:不使用@PostConstruct注解 @Component // 1.将工具类注入到容器中 public class TokenUtils { // 2.注入想引用的对象的静态实例 private static RedisService redisService; // 3.初始化有参构造器 @Autowired public TokenUtils (RedisService redisService) { TokenUtils.re

zheng2780071070的博客 3793

Spring中,使用工具类无法自动注入service

这个问题我其实遇到很久了,目前解决方案是手动注入service,并且把工具类也手动注入。 场景: 在spring中,我们经常会定义工具类来做一些奇怪的事情,我当前是通过定时任务quarz调度工具类工具类再调service,如果采用自动注入的方式,会报错: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionExcep...

Gblfy_Blog 1990

Spring Boot】util静态工具类注入service

util工具类使用注解 使用@Component注解 @Component public class LogQueryUtils { } 注入service 此时使用 @Autowired注解引入的service为非静态变量,无法在静态方法中使用 @Component public class LogQueryUtils { @Autowired private EhcacheService ehcacheService; } 初始化静态service 使用@Pos

绊脚石 4074

工具类Utils中注入Service运行时为null

最近有个需求是要对上传的xml进行规则校验,写完了方法后发现,这部分代码太多了,不适合挤在一个类中,就想着提出来当工具类,后来发现提取出来后,注入的Server为null 后来加了@Component也没用,后面找到一篇博客工具类Util中如何注解注入Service不报空就解决了,在此记录下. /* * 第一步:工具类一定要用@component进行注解 */ @Component public class XMLValidatorUtils{ @Autowired private ShareCo

Genmer的博客 1420

SpringBoot】如何在 Utils 工具类注入 Bean

在 controller 层想使用一个静态工具,这个静态工具要使用其它组件。

yuxiangdeming的博客 3619

普通工具类调用service

在开发中我们经常遇到在工具类或者普通类中调用service的情况。在Service或者Controller我们用@Resource(name = "chargeService") 或者 @Autowired 这两个注解,但是在普通类中,这两个注解是没有办法注入service对象的,我们也无法通过new来使用,那这个时候就需要我们通过ApplicationContextAware 来实现!具体...

qq_22331931的博客 1650

静态工具类中使用注解注入service

在Controller中直接使用service可行,而封装成工具类后调用出错,原因在于不能采用new方式加载service,必须将service的加载过程在服务器运行时进行。 这是我当时遇到的问题和最后的解决结论:http://bbs.csdn.net/topics/392162820 这是当时提问的时候有人提供的解决方案文章地址:http://blog.csdn.net/p793049...

WGH100817的博客 175
上一篇: js设置光标始终在文本最后(亲测可行)
下一篇: 微信开发api文档地址
loveer~
博客等级 码龄9年 63粉丝 44原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值