文档章节

Spring Boot 报ExceptionInIntializerError

兴趣使然的程序员
 兴趣使然的程序员
发布于 2017/09/11 22:51
字数 252
阅读 14
收藏 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访问,导致异常。

© 著作权归作者所有

共有 人打赏支持
兴趣使然的程序员
粉丝 21
博文 112
码字总数 87412
作品 0
深圳
程序员
JDK8新特性之Optional

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

java技术栈
2017/10/09
0
0
spring session整合

花了大半天时间,解决了springMVC项目增加spring-session共享session报了异常 前情 项目做了前后端分离,springMVC项目部署在三台tomcat上,前端部署在另三台tomcat上,然后HA做了分发处理,...

jia程序员
05/23
0
0
基于spring boot打成工具jar包依赖无法使用问题

基于spring boot打成工具jar包依赖无法使用问题 分析jar结构如下图 发现多了个BOOT-INF目录结构,此结构正是spring boot 运行包结构,其他包或者项目是无法通过maven依赖直接使用里面的功能(...

keppy
04/19
0
0
spring boot遇到的问题

配置mysql数据库后,运行mvn spring-boot:run总是报如下错: [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.2.5.RELEASE:run (default-cli) on proj......

孤独的小蝎子
2015/08/27
0
1
spring cloud项目升级到spring boot 2.0.3,Finchley.RELEASE后,登录异常了

最近在看一个开源的spring cloud项目,然后自己把spring boot 升级到2.0.3,spring cloud 升级到Finchley.RELEASE后登录一直报401,里面使用了spring security oauth2,折腾了好久都没有成功...

心浪微勃
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Zookeeper总结

Zookeeper的部分概念 什么是zookeeeper? Zookeeper是一个分布式服务的协调中心 zookeeper节点的角色类型? Leader(领导者)、Follower(跟随者)、Observer(观察者) Leader 负责更新系统...

DemonsI
22分钟前
1
0
Redis学习笔记

常用命令 从Docker进入Redis的命令 sudo docker exec -it redis /bin/bash

OSC_fly
22分钟前
0
0
SqlServer查询某个日期的数据

select * from View_ZJMONITORINGCORROSION where ENTERDATE > CONVERT(datetime,DATEADD(day,1,'2017/12/28 14:53:07'))...

笑丶笑
24分钟前
0
0
常用编码规范

Standard characters https://ascii.cl/

yeahlife
25分钟前
0
0
flannel实战

docker swarm mode的出现是个里程碑,官方原生的编排调度看起来都成雏形了,但是swarm mode和容器外部系统的对接、网络性能始终不尽人意,swarm mode下各种开源周边不能使用,感觉swarm mod...

China_OS
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部