文档章节

Spring Boot 报ExceptionInIntializerError

兴趣使然的程序员
 兴趣使然的程序员
发布于 2017/09/11 22:51
字数 252
阅读 13
收藏 0
点赞 0
评论 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
博文 109
码字总数 87412
作品 0
深圳
程序员
spring session整合

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

jia程序员 ⋅ 05/23 ⋅ 0

基于spring boot打成工具jar包依赖无法使用问题

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

keppy ⋅ 04/19 ⋅ 0

spring cloud 中zuul智能路由,本地部署没有问题,部署到服务器就报com.netflix.zuul.exception.ZuulException: Forwarding error

spring cloud 中zuul智能路由,本地部署没有问题,部署到服务器就报com.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud.netflix.zuul.filters.route.......

developerxiaofeng ⋅ 05/31 ⋅ 0

Spring Security 4.x -> 5.x 踩坑记录

1、应用服务基路径问题 这个问题应该是Spring Boot 2.0升级带来的,既然遇到了,就在这里写一写。笔者在授权服务器想设置一个统一基路径,按照Spring Boot 1.0,是这样的: 但是升级之后并不...

rickiyeat ⋅ 04/15 ⋅ 0

给大家聊一聊云收藏从 Spring Boot 1.0 升级到 2.0 所踩的坑

先给大家晒一下云收藏的几个数据,作为一个 Spring Boot 的开源项目(https://github.com/cloudfavorites/favorites-web)目前在 Github 上面已经有1600多个 Star,如果按照 SpringBoot 标签...

纯洁微笑 ⋅ 06/04 ⋅ 0

Spring Boot中Starter是什么

比如我们要在Spring Boot中引入Web MVC的支持时,我们通常会引入这个模块spring-boot-starter-web,而这个模块如果解压包出来会发现里面什么都没有,只定义了一些POM依赖。 经过研究,Start...

easonjim ⋅ 2017/09/30 ⋅ 0

第二章——Spring Boot启动器与依赖管理

强烈推荐选择支持依赖管理和可以发布到“Maven中央”仓库的构建系统。推荐使用Maven或Gradle。Spring Boot可以使用其他构建系统(例如,Ant),但支持得并不是很好。 1 依赖管理 Spring Boo...

Leech ⋅ 02/04 ⋅ 0

spring cloud config server 客户端权限验证配置401

用的spring boot 2.0 在周立的教程书上以及很多网上的资料,关于config 服务端的账号密码设置都是引入security依赖后配置 security: basic: enabled: true user: name: root password: root...

呆呆的萌新 ⋅ 06/12 ⋅ 0

学习 Spring Boot 知识看这一篇就够了

从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区、我的博客和我的公号内。粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分...

ityouknow ⋅ 05/28 ⋅ 0

spring boot 1.5.4 入门和原理(二)

1 spring boot入门 1.1 环境准备 JDK 7及以上 eclipse开发工具 项目管理工具Maven 本文采用、RELEASE(或1.5.2.RELEASE)调试通过。 spring-boot相关项目源码, 码云地址:https://git.oschi...

wyait ⋅ 2017/09/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部