PostConstruct和PreDestroy失效

2023-12-06 04:48

本文主要是介绍PostConstruct和PreDestroy失效,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题:PostConstruct 和 PreDestroy 失效




说明

今天遇到问题,在使用 Spring的两个注解的过程当中,出现了失效的情况。
也就是 @PostConstruct 和 @PreDestroy 出现了失效的问题。

那么这两个注解主要是用来干嘛的呢?

@PostConstruct  主要是定义在方法上面,是bean生命周期的 初始化方法 (出生)
@PreDestroy  主要是定义在方法上面,是bean生命周期 销毁的方法 (死亡)

但是在编写代码的过程当中,这里的两个注解却失效了。
下面是代码片段展示

在这里插入图片描述




原因

后来我们发现,出现这个问题,最主要的原因竟然是因为 JDK版本的原因导致的,当前我的 JDK使用的是 JDK11的版本,但是这两个注解支持的JDK8,在高版本当中,这里的两个注解失效了。

后期查阅资源,得到的结论是 这些内容,可能会涉及到 Spring 底层源码的介绍,才能充分解释这类问题。

那么眼下的解决方案,主要有两种。

1】方案一: 更换低版本的 JDK8 的环境,达到 注解匹配的效果
【2】方案二: 不去更换JDK的版本,依旧使用 JDK11,反而采用 配置依赖的方式




解决

这里我采用的是 配置依赖的方式,在 pom.xml 文件当中,配置依赖,支持高版本的 JDK注解

代码如下:

<!-- 高版本的JDK 不支持@PostConstruct 和 @PreDestroy,需要添加依赖 -->
<dependency><groupId>javax.annotation</groupId><artifactId>javax.annotation-api</artifactId><version>1.3.2</version>
</dependency>

配图如下

在这里插入图片描述






参考

本篇文章,主要参考了其他博主的资料,配合自己经验小结,参考文章如下:

https://blog.csdn.net/qq_39965727/article/details/104045169

https://blog.csdn.net/YKenan/article/details/109748272

这篇关于PostConstruct和PreDestroy失效的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/460496

相关文章

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

SpringBoot嵌套事务详解及失效解决方案

《SpringBoot嵌套事务详解及失效解决方案》在复杂的业务场景中,嵌套事务可以帮助我们更加精细地控制数据的一致性,然而,在SpringBoot中,如果嵌套事务的配置不当,可能会导致事务不生效的问题... 目录什么是嵌套事务?嵌套事务失效的原因核心问题:嵌套事务的解决方案方案一:将嵌套事务方法提取到独立类

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

@postconstruct初始化的操作

从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。这两个注解被用来修饰一个非静态的void()方法 。写法有如下两种方式: @PostConstruct Public void someMethod() {}

ider文件查找功能失效

在ider中,配置快速查找文件为ctrl+shift+R(Eclipse风格),有时明明类存在,却搜索不到,这时可以清除idea缓存并重启试试: 第一步:点击 File 选择 Invalidate Caches/Restart 第二步:

Form 表单的 resetFields() 失效原因

假设我们有如下代码:  <template><ElForm ref="formRef" :model="formModel" :rules="rules"><!-- 表单内容 --></ElForm></template><script setup>import { ref } from 'vue';const formRef = ref(null);const formModel = ref

【佳学基因检测】网站加密证书失效后,如何移除并为新的证书安装准备环境?

【佳学基因检测】网站加密证书失效后,如何移除并为新的证书安装准备环境? 当WoTrus DV Server CA证书失效后,你需要确保你的Nginx配置中不再引用该证书,并且移除或替换相关的证书文件。以下是具体步骤: 1. 确认Nginx配置文件 首先,检查Nginx的配置文件,确保它不再引用旧的WoTrus证书。如果你已经使用Certbot安装了Let’s Encrypt证书,Certbo

wx.chooseMessageFile在pc端微信小程序失效解决方法

项目场景: 在uniapp上驱动微信开发者工具(下图) 在手机上和微信开发者工具中(图1)都可以上传成功, 打开pc端的微信小程序 在pc端打开小程序时点击上传没反应 问题描述 提示:这里描述项目中遇到的问题: 在pc端打开小程序上传的时候发现点击上传没有反应,通过(    console.log("打印====111")    )打印步骤发现wx.chooseM