springboot自定义类@Resource注入为null的问题

最近用spring boot ,在controller外面即自定义的类里报错

java.lang.NullPointerException

debug了下发现@Resource注入为null

查了不少资料也没解决问题,最后终于找到一种解决办法,为了以后查找方便特意记录下来

1@Component 2public class SaveStructures { 3 private static SaveStructures structures; 4 @Resource 5 private ApiFilesService filesService; 6 @Resource 7 private ApiAssetsMapper assetsMapper; 8 9 public SaveStructures() { 10 } 11 12 //通过@PostConstruct实现初始化bean之前进行的操作 13 @PostConstruct 14 public void init() { 15 // 初使化时将已静态化的Service实例化 16 structures = this; 17 } 18 19 …… 20 …… 21 structures.assetsMapper.batchAddAssets(list); 22 …… 23 structures.filesService.findByCondition(condition); 24 25}

注:

  注入类的调用方法

    structures.filesService.findByCondition(condition);

说明:

  被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。

  被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SpringBoot 默认json解析器详解和字段序列化自定义

前言在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理SpringBoot默认的json解析方案我们知道在springboot中有默认的json解析器,SpringBoot中默认使用的Json解析技术框架是ja

springboot使用Fiber纤程踩过的坑

@RequestAttribute为null在springboot中使用@FiberSpringBootApplication注解标注在SpringBootApplication上时,发现在拦截器(或过滤器)中调用request.setAttribute设置的值,在controller中使用@RequestAttribute获取却是null,而去

Springboot中如何在Utils类中使用@Autowired注入bean

Springboot中如果希望在Utils工具类中,使用到我们已经定义过的Dao层或者Service层Bean,可以如下编写Utils类:1\.使用@Component注解标记工具类StatisticsUtils:2\.使用@Autowired(@Autowired和@Resource的区别不再介绍)注入我们需要的bean:3\.在工具类中

SpringBoot集成Redis引起的序列化问题

想必大家对SpringBoot可能已经很熟悉了,包括集成Redis这种常用的技术,之前一直用一贯的写法去集成Redis,写配置类没发现过任何问题,但是上周在给Redis配置类加了一个Bean之后就出现了很难发现的问题。配置类代码\@ConfigurationpublicclassRedisConfigextendsCachingConfig

SpringBoot自定义序列化的使用方式

场景及需求:项目接入了SpringBoot开发,现在需求是服务端接口返回的字段如果为空,那么自动转为空字符串。例如:\    {        "id":1,        "name":null    },    {        "id":2,        "name":"x