springboot 如何解决static调用service为null

 更新时间:2021年06月09日 10:13:18   作者:离别又见离别  
这篇文章主要介绍了springboot 如何解决static调用service为null的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot static调用service为null

@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。

Java中该注解的说明:

@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:

Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)

实战:

在静态方法中调用依赖注入的Bean中的方法。

@Component
public class LeaveCode {
    @Autowired
    private IPlaLeaveApplyService plaLeaveApplyService;
    public static LeaveCode leaveCode;
    /**
     * 解决 static方法调用  注入的service为null
     */
    @PostConstruct
    public void init(){
        leaveCode = this;
        leaveCode.plaLeaveApplyService = this.plaLeaveApplyService;
    }
 }

SpringBoot 静态类引入service 空指针/NULL

Spring注入service后,正常情况下非静态方法是可以正常使用注册的service的,当时用静态类引用的时候,静态类static方法会将spring注入的service清空。

造成引用空指针的情况,如何解决呢?

@Component
public class UserUtils {
    @Autowired
    private UserService userService;
    private static UserUtils userUtils;
 
    @PostConstruct
    public void init() {
        userUtils = this;
        userUtils.userService = this.userService;
    }
}

使用:

User user = userUtils.userService.getUser(loginCode);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Springboot websocket使用案例详解

    Java Springboot websocket使用案例详解

    这篇文章主要介绍了Java Springboot websocket使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Java @Transactional与synchronized使用的问题

    Java @Transactional与synchronized使用的问题

    这篇文章主要介绍了Java @Transactional与synchronized使用的问题,了解内部原理是为了帮助我们做扩展,同时也是验证了一个人的学习能力,如果你想让自己的职业道路更上一层楼,这些底层的东西你是必须要会的
    2023-01-01
  • spring @Lazy延迟注入的逻辑实现

    spring @Lazy延迟注入的逻辑实现

    有时候我们会在属性注入的时候添加@Lazy注解实现延迟注入,今天咱们通过阅读源码来分析下原因,感兴趣的可以了解一下
    2021-08-08
  • 浅谈Spring Batch在大型企业中的最佳实践

    浅谈Spring Batch在大型企业中的最佳实践

    本篇文章主要介绍了浅谈Spring Batch在大型企业中的最佳实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Spring工作原理简单探索

    Spring工作原理简单探索

    这篇文章主要介绍了Spring工作原理简单探索,涉及Springaop与IOC,动态代理静态代理,反射等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java 8函数式接口之Consumer用法示例详解

    Java 8函数式接口之Consumer用法示例详解

    这篇文章主要为大家介绍了Java 8函数式接口之Consumer用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Java静态代码块作用及执行顺序解析

    Java静态代码块作用及执行顺序解析

    这篇文章主要介绍了Java静态代码块作用及执行顺序解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 解析Java的Jackson库中对象的序列化与数据泛型绑定

    解析Java的Jackson库中对象的序列化与数据泛型绑定

    这篇文章主要介绍了解析Java的Jackson库中对象的序列化与数据泛型绑定,Jackson通常被用来实现Java对象和JSON数据的相互转换功能,需要的朋友可以参考下
    2016-01-01
  • Java实现的数组去重与排序操作详解

    Java实现的数组去重与排序操作详解

    这篇文章主要介绍了Java实现的数组去重与排序操作,结合实例形式分析了Java针对数组去重及排序操作相关遍历、排序、判断等使用技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • 分布式任务调度xxl-job问题解决

    分布式任务调度xxl-job问题解决

    这篇文章主要为大家介绍了分布式任务调度xxl-job的问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多多多进步,早日升职加薪
    2022-03-03

最新评论