当前位置: 首页 > news >正文

@PostConstruct @PreDestroy

@PostConstruct 是 Java EE(现 Jakarta EE)中的一个注解,用于标记一个方法在对象初始化完成后立即执行。它在 Spring 框架、Java Web 应用等场景中广泛使用,主要用于资源初始化、依赖注入完成后的配置等操作。

1. 基本作用

  • 执行时机

    • 在对象实例化(通过构造器创建)并完成依赖注入(如 @Autowired 注入 Bean)后,且在该 Bean 投入使用前执行。
    • 仅执行一次,确保资源初始化逻辑只运行一次。
  • 典型场景

    • 初始化资源(如数据库连接、网络客户端)。
    • 加载配置文件或缓存数据。
    • 验证依赖注入的正确性。

2. 使用条件

  1. 方法要求

    • 返回类型:必须为 void
    • 参数:不能有参数。
    • 访问修饰符:通常为 publicprotected 或默认(package-private),但不能是 private(某些容器可能允许,但不推荐)。
    • 静态方法:不允许(因静态方法属于类,而非实例)。
    • 抛出异常:可以抛出受检异常(如 IOException)。
  2. 依赖环境

    • 需要 JSR-250 规范支持(Java EE 5+ 或 Jakarta EE)。
    • Spring 框架从 2.5 版本开始支持该注解。

@PreDestroy 是 Java EE(现 Jakarta EE)中的一个注解,用于标记一个方法在对象被销毁前执行。它与 @PostConstruct 相对应,主要用于资源释放、清理操作,确保对象在生命周期结束时正确释放占用的资源(如关闭数据库连接、停止线程、释放文件句柄等)。

 @PreDestroy

1. 基本作用

  • 执行时机

    • 在对象被容器销毁前(如 Spring 容器关闭、Servlet 实例销毁)执行。
    • 仅执行一次,确保资源释放逻辑只运行一次。
  • 典型场景

    • 关闭数据库连接或网络客户端。
    • 停止后台线程或定时器。
    • 释放文件锁或临时资源。

2. 使用条件

  1. 方法要求

    • 返回类型:必须为 void
    • 参数:不能有参数。
    • 访问修饰符:通常为 publicprotected 或默认(package-private),但不能是 private(某些容器可能允许,但不推荐)。
    • 静态方法:不允许(因静态方法属于类,而非实例)。
    • 抛出异常:可以抛出受检异常,但建议捕获并记录,避免影响容器销毁流程。
  2. 依赖环境

    • 需要 JSR-250 规范支持(Java EE 5+ 或 Jakarta EE)。
    • Spring 框架从 2.5 版本开始支持该注解。

 

相关文章:

  • 流式渲染 Streaming SSR
  • 深入解析C++核心特性:运算符重载、继承、多态与抽象类
  • 第三节第二部分:Static修饰方法应用场景
  • 学习黑客搜索技巧
  • 解决应用程序在JAR包中运行时无法读取类路径下文件的问题
  • SSH(安全外壳协议)
  • 软件安全(二)优化shellcode
  • FreeRTOS如何实现100%的硬实时性?
  • 龙虎榜——20250509
  • 编译原理实验 之 语法分析程序自动生成工具Yacc实验
  • nvidia-smi 和 nvcc -V 作用分别是什么?
  • 算法设计与分析复习代码(hnust)
  • LVGL源码学习之渲染、更新过程(3)---绘制和刷写
  • 操作系统导论——第26章 并发:介绍
  • 68、微服务保姆教程(十一)微服务的监控与可观测性
  • 专题练习1
  • 赤色世界 陈默传 第一章 另一个陈默
  • 路由组件1
  • java volatile关键字
  • 二分系列题
  • 中山建站/官网整站优化
  • 做网站开发需要学哪些东西/seo快速整站上排名教程
  • 百度一直不收录网站/精准的搜索引擎优化
  • 济宁做网站多少钱/信息流优化师是干什么的
  • 如何做好网站建设内容的策划书/今日特大新闻
  • 宁波建设网站哪家好/亿驱动力竞价托管