文档章节

Spring Boot 报ExceptionInIntializerError

兴趣使然的程序员
 兴趣使然的程序员
发布于 2017/09/11 22:51
字数 252
阅读 22
收藏 0

如果在Spring Boot中使用static变量时,可能会出现如下面的异常:

java.lang.ExceptionInInitializerError

这是由于调用某个static变量属性时而该属性没有初始化而导致的错误。

比如在Spring Boot项目中,使用static代码块初始化某些static变量,并且该类没有处于Spring的管理之下,就可能会出现上述错误。

解决方法:实现ApplicationContextInitializer,自定义在Spring启动前加载的代码

具体如下:

  • 实现ApplicationContextInitializer类,如下:
/**
 * Created by pierre_cai on 2017/9/11.
 */
public class MyStartProcess implements ApplicationContextInitializer {
    @Override
    public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
        //在这个方法中定义需要在程序启动之前加载的代码
        MyService.startProcess();
    }
}
  • 在resources文件下创建META-INF/spring.factories文件,项目结构如下:

  • 在spring.factories文件中声明上面添加的ApplicationContextInitializer实现类
org.springframework.context.ApplicationContextInitializer=com.test.myTest.MyStartProcess

 这样,定义在MyStartProcess类中的方法就会在Spring Boot启动之前加载。避免静态变量在初始化之前就被Spring访问,导致异常。

© 著作权归作者所有

共有 人打赏支持
兴趣使然的程序员
粉丝 23
博文 112
码字总数 87412
作品 0
深圳
程序员
私信 提问
spring boot2.0.4 踩的两个坑

端口号 8090 的时候,请求接口都报 405 ,其他端口正常 对应 issue https://github.com/spring-projects/spring-boot/issues/14195 提 issue 的老兄也遇到了, 不过官方没有复现出来 注解注册...

holysu
09/10
0
0
springboot官方的案例竟然运行不起来,求高手细说明原因。

springboot官方的支持JSP的案例无法运行起来,求小伙伴支持。 pom.xml如下: 报的错如下: org.springframework.context.ApplicationContextException: Unable to start embedded container;...

林纳斯脱袜子
2017/11/08
251
3
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: 困扰了我几天的问题,原来这是 Spring Boot 2.0.5 以上版本的坑,最终从GitHub上找到了答案: 1、一种变相的解决方...

ThinkGem
10/19
0
0
JDK8新特性之Optional

Optional是什么 Jdk8提供,一个可以包含null值的容器对象,可以用来代替xx != null的判断。 Optional常用方法 of 为value创建一个Optional对象,如果value为空则 会报出NullPointerExceptio...

java技术栈
2017/10/09
0
0
springboot 初级错误

一个很简单的spring boot , hello world 示例出现如下错误: 上面代码通过浏览器访问报如下错误: 如果把函数改成这样,就返回正常了 就是加了一个@ResponseBody 就正常了, https://github.com/...

狗操_我今年大三它妈
2017/03/10
968
3

没有更多内容

加载失败,请刷新页面

加载更多

iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS 基于PhotoKit框架的自定义相...

Android爱开源
13分钟前
0
0
浅谈 Java JPDA

本文首发个人公众号《andyqian》,期待你的关注~ 前言 程序员在坊间有非常多有趣的故事,其中就有这么一则:”这个在我的电脑上是好的,没问题的呀,诺,你看咯,一定是你打开姿势不正确,浏...

andyqian
19分钟前
39
1
人工智能可以跳出动感的跳舞视频

非常热门的人工智能技术目前正在快速的发展,与此同时越来越多人工智能应用也开始出现在我们的生活中。 此前有开发者利用谷歌开源免费的卷积神经网络工具,将色情影片中的人物换成明星并达到...

linux-tao
22分钟前
0
0
离线批量数据通道Tunnel的最佳实践及常见问题

基本介绍及应用场景 Tunnel是MaxCompute提供的离线批量数据通道服务,主要提供大批量离线数据上传和下载, 仅提供每次批量大于等于64MB数据的场景,小批量流式数据场景请使用DataHub实时数据...

阿里云云栖社区
23分钟前
0
0
git reset放弃修改&放弃增加文件

1. 本地修改了一堆文件(并没有使用git add到暂存区),想放弃修改。 单个文件/文件夹: $ git checkout -- filename 所有文件/文件夹: $ git checkout . 2. 本地新增了一堆文件(并没有git a...

JamesView
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部