springboot @PostConstruct无效的解决
目录
- springboot @PostConstruct无效
- 解决办法
- spring @PostConstruct的踩坑
- 在springboot程序启动过程中出现一个问题
springboot @PostConstruct无效
springboot 1.5.18,jdk9
@PostConstruct的方法并不执行,原因是jdk8以上的jdk使用了新的module系统,javax.annotation默认不可见。
解决办法
1.用jdk1.8
2.使用springboot 2.x
3.POM添加javax.annotation:javax.annotation-api依赖
spring @PostConstruct的踩坑
在springboot程序启动过程中出现一个问题
代码中有一个需要在spring容器启动之后就执行的方法。
于是就用@POstConstrut 注解在方法上,本地IDE启动是正常运行的,在使用jenkins部署过程中,一个SpringContentHondler实现ApplicationContextAware的类 里面有静态方法获取spring容器里面的bean。
在启动后调用方法发现SpringContentHondler里面的application 变量没有赋值 为NULL ,报了一个空指针。
疑点在于本地启动是正常,jenkins启动就有问题。
后来使用spring boot里面提供给的commandrunLister接口。
他会在spring容器bean都装配好后,各个初始化都完毕后,再调用我们自定义的方法(可以正常使用@auto注入)这样就不会错了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
SpringBoot @PostConstruct原理用法解析
前言 本节我们将学习一下@PostConstruct的用法. 概述 @PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法. /** * 项目启动时,初始化定时器 */ @PostConstruct public void init() { List<Job> jobList = jobDao.selectJobAll(); for (Job job : jobList) { CronTrigger
-
浅谈SpringBoot中的Bean初始化方法 @PostConstruct
目录 注解说明 代码示例 注解示例 错误示例 正确示例 SpringBoot @PostConstruct虽好,也要慎用 1 问题的产生 2 案例模拟 3 总结 注解说明 使用注解: @PostConstruct 效果:在Bean初始化之后(构造方法和@Autowired之后)执行指定操作.经常用在将构造方法中的动作延迟. 备注:Bean初始化时候的执行顺序: 构造方法 -> @Autowired -> @PostConstruct 代码示例 注解示例 @Component public cl
-
SpringBoot @PostConstruct和@PreDestroy的使用说明
目录 1. @PostConstruct 1.1 概述 1.2 验证执行顺序 2. @PreDestroy 1. @PostConstruct 1.1 概述 @PostConstruct标记在方法上,在当前类的实例加入到容器之前,会先执行@PostConstruct标记的方法.它的执行顺序是这样的: 先执行当前类的构造函数 然后执行@Autowired标记对象的初始化 最后执行@PostConstruct标记的方法 如果没有抛出异常,则该对象加入Spring管理容器 1.2 验证执行顺序 创建一
-
springboot @PostConstruct无效的解决
目录 springboot @PostConstruct无效 解决办法 spring @PostConstruct的踩坑 在springboot程序启动过程中出现一个问题 springboot @PostConstruct无效 springboot 1.5.18,jdk9 @PostConstruct的方法并不执行,原因是jdk8以上的jdk使用了新的module系统,javax.annotation默认不可见. 解决办法 1.用jdk1.8 2.使用springboot 2.x 3.POM添加
-
springboot logback调整mybatis日志级别无效的解决
现象 在日志配置文件 logback-spring.xml 中,无论怎么修改级别,mybatis 的 sql 日志都会打印出来. 原因 在 application.yml 中配置了 mybatis 的自定义日志类,如下: mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 点进去查看源码,发现 debug 日志级别始终为 true,所以怎么配置都不生效 public boolean isDeb
-
springboot多数据源使用@Qualifier自动注入无效的解决
目录 @Qualifier自动注入无效的解决 问题 问题的根本原因 其中问题出在 解决问题的方法 @Qualifier的作用和应用 @Qualifier的作用 @Qualifier自动注入无效的解决 问题 使用springboot进行多数据源时,发生了单例DataSource对应多个DataSourceBean的问题. 具体错误如下:XXXXX required a single bean, but 3 were found.通过@Qualifier来区分,或是在@Bean中添加name属性来区
-
vue cli3 配置proxy代理无效的解决
vue cli3 创建的vue项目配置开发环境代理无效,网上的各种配置都试了,还是不行,最后终于试出来一种配置方法 vue.config.js配置如下内容(不要配置任何多余的选项,什么changOrigin pathRewrite 之类的东西都不要配): module.exports = { devServer: { proxy:"http://127.0.0.1:8081", port: 8085 } } axios访问的时候不要配置任何东西,axios里访问的url不需要加任何前缀
-
springboot controller无效的处理方案
目录 springboot controller无效 springboot无法识别controller springboot controller无效 最近在学习spring boot,刚配置好项目,写了一个controller,运行后发现无法正常显示 在网上搜了一下,这是因为controller的路由没被注册. 原因:启动类application跟controller不在一个包中,扫描不到controller,应该让启动类和Controller的包在同一级目录下 如启动类在com.xxx.a,
-
BootStrap 标题设置跨行无效的解决方法
最近在使用BootStrap的表格做一个报表界面(不需要报表的功能,只需要预览并且行列定好无需根据数据量变化,如有更好的框架欢迎推荐.),发现标题设置跨行属性rowspan无效.html如下: <table class="table table-bordered"> <thead> <th colspan="2" rowspan="2">功能分类</th> <th>第二列</th&
-
mysql运行net start mysql报服务名无效的解决办法
运行net start mysql报服务名无效的解决办法,供大家参考,具体内容如下 1. 症状 以前电脑上安装了 MySQL,今天在电脑上运行,发现没有 MySQL 服务了 C:UsersAdministrator>net start mysql 服务名无效. 请键入 NET HELPMSG 2185 以获得更多的帮助 2. 解决办法 输入 mysqld.exe -install MySQL 安装在:D:\wamp\bin\mysql\mysql5.1.53 以上就是本文的全部内容,希望对大家的
-
ASP.NET在MVC中MaxLength特性设置无效的解决方法
本文实例讲述了ASP.NET在MVC中MaxLength特性设置无效的解决方法.分享给大家供大家参考.具体分析如下: 一.问题: 在ASP.NET MVC项目中,给某个Model打上了MaxLength特性如下: 复制代码 代码如下: public class SomeClass { [MaxLength(16, ErrorMessage = "最大长度16")] public string SomeProperty{get;set;} } 但在其对应的表单元素中并没有
-
SqlDataReader指定转换无效的解决方法
SqlDataReader指定转换无效的解决方法,具体内容如下 //获取最新显示顺序数据 string str = string.Format(@"if exists(select ShowOrder from GIS_FuncDefaultLayer where GISFuncId = {0}) select max(ShowOrder) as ShowOrder from GIS_FuncDefaultLayer where GISFuncId ={0} else select '0' as
-
thinkphp中session和cookie无效的解决方法
本文实例讲述了thinkphp中session和cookie无效的解决方法.分享给大家供大家参考.具体分析如下: 问题描述: 在本地调试时session和cookie是用没有问题的,我是用session保存当前登录账户的信息,上传服务器之后,发现跳转之后session不复存在,为什么呢?在当前页面输出session是存在的. 遇到这个问题三天了,因为是自学没有老师可以请教,身边也没有几个是弄PHP的,所以真的是很悲剧,于是乎百度,而百度上很多人都是屁话连天,没有什么可以解决问题的,经过三天的修改
随机推荐
- XML 增、删、改和查示例
- 关于Flex 初始化的research
- VBS教程:函数-Join 函数
- Java数据结构之栈的基本定义与实现方法示例
- python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
- javascript 7行代码画出一个围棋棋盘
- 老生常谈js-react组件生命周期
- ASP.NET 小技巧(2个)
- php 一维数组的循环遍历实现代码
- C#中foreach循环对比for循环的优势和劣势
- Retrofit2.0 实现图文(参数+图片)上传方法总结
- Javascript 赋值机制详解
- javascript清理table样式
- 详解Python多线程
- VBScript 常用函数总结
- 简析SQL Server数据库用视图来处理复杂的数据查询关系
- 详解轻巧AMH虚拟主机面板安装使用和GCE云空间搭建网站实例
- Java中嵌入式MySQL的使用方法
- 怎么锁定鼠标的示例代码分享
- Android仿天天动听歌曲自动滚动view