阅读 260

springboot 如何解决static调用service为null

springboot 如何解决static调用service为null

这篇文章主要介绍了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中的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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清空。

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

1
2
3
4
5
6
7
8
9
10
11
12
@Component
public class UserUtils {
    @Autowired
    private UserService userService;
    private static UserUtils userUtils;
  
    @PostConstruct
    public void init() {
        userUtils = this;
        userUtils.userService = this.userService;
    }
}

使用:

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

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

您可能感兴趣的文章:

  • 详解SpringBoot 解决拦截器注入Service为空问题

  • SpringBoot的拦截器中依赖注入为null的解决方法

  • 解决springboot遇到autowire注入为null的问题

  • SpringBoot项目中处理返回json的null值(springboot项目为例)


原文链接:https://blog.csdn.net/weixin_43861630/article/details/109101869


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐