springboot 如何解决static调用service为null

作者:离别又见离别 时间:2022-09-05 05:30:03 

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);

来源:https://blog.csdn.net/weixin_43861630/article/details/109101869

标签:springboot,static,service,null
0
投稿

猜你喜欢

  • ThreadLocal使用案例_动力节点Java学院整理

    2021-06-08 09:57:15
  • Java基础之二叉搜索树的基本操作

    2023-07-08 10:07:07
  • 简单实现Android刮刮卡效果

    2022-08-12 01:49:00
  • MyBatis环境资源配置实现代码详解

    2023-08-05 08:59:02
  • Android快速实现断点续传的方法

    2021-06-14 13:02:28
  • android编程之xml文件读取和写入方法

    2022-08-23 05:47:48
  • Java实现克隆的三种方式实例总结

    2021-11-21 15:26:14
  • spring系列笔记之常用注解

    2022-02-21 16:15:04
  • 解决Android SDK下载和更新失败的方法详解

    2021-07-04 21:28:57
  • C#文件路径操作详细总结

    2021-06-06 04:07:41
  • Java迭代器与Collection接口超详细讲解

    2022-07-14 05:10:49
  • MyBatis中PageHelper不生效的解决方案

    2022-10-23 11:46:47
  • Java 实现判定顺序表中是否包含某个元素(思路详解)

    2023-09-11 01:03:04
  • Unity3D运行报DllNotFoundException错误的解决方案

    2021-09-13 00:22:35
  • Android安装apk文件并适配Android 7.0详解

    2022-11-11 01:41:28
  • Java实现生成JSON字符串的三种方式分享

    2022-05-20 15:21:31
  • c#远程html数据抓取实例分享

    2023-07-03 12:50:49
  • java中利用List的subList方法实现对List分页(简单易学)

    2022-06-18 23:33:09
  • Windows系统安装JDK小结

    2022-07-16 02:49:57
  • c# 如何用lock解决缓存击穿

    2022-12-03 14:27:55
  • asp之家 软件编程 m.aspxhome.com