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

Java注解之@PostConstruct

Java注解之@PostConstruct

  • Java注解之@PostConstruct
    • 概述
    • 工作原理
      • 执行顺序
    • 注意事项
    • 用法示例

Java注解之@PostConstruct

概述

@PostConstruct注解是Java自带的用于标记一个方法,使其在对象依赖注入完成之后、正式使用之前被自动调用。它常用于执行初始化逻辑,例如配置资源、预加载数据或验证依赖项。


工作原理

在 Spring 或其他依赖注入框架中,Bean 在实例化之后、依赖注入完成之前,Spring 会查找并自动调用该方法。

执行顺序

在spring框架中,类初始化生命周期的默认执行顺序为:

Constructor --> @Autowired --> @PostConstruct

如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现。此时就要用到@PostConstruct

常见使用场景如:

  • 数据库资源池初始化
  • 配置文件的加载:在启动时读取配置文件内容,对其进行校验
  • 缓存载入:从数据库等途径加载数据并缓存

注意事项

1、只有一个非静态方法能使用此注解

2、被注解的方法不得有任何参数

3、被注解的方法返回值必须为void

4、被注解方法不得抛出已检查异常

5、此方法只会被执行一次


用法示例

import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;@Component
public class DatabaseInitializer {private final DataSource dataSource;public DatabaseInitializer(DataSource dataSource) {this.dataSource = dataSource;// 此时 dataSource 可能尚未注入,不能在此操作依赖项}@PostConstructpublic void init() {// 依赖注入已完成,可安全使用 dataSourceinitializeDatabaseSchema(dataSource);}private void initializeDatabaseSchema(DataSource dataSource) {// 初始化数据库表结构等操作}
}
http://www.xdnf.cn/news/5436.html

相关文章:

  • ts装饰器
  • IPM IMI111T-026H 高效风扇控制板
  • Python打卡 DAY 21
  • 免费 超轻量级便携 内存清理 验证win系统内存优化
  • DeepSeek:为环保领域插上智慧的翅膀
  • 子串简写(JAVA)一维前缀和, 蓝桥杯
  • 前端性能优化全攻略:从基础体验到首屏加载的深度实践
  • 一文理解扩散模型(生成式AI模型)(1)
  • 【工具记录分享】提取bilibili视频字幕
  • Activity动态切换Fragment
  • 医疗信息化江湖风云再起!金仓数据库亮相CHIMA 2025
  • Linux `ifconfig` 指令深度解析与替代方案指南
  • 基于ESP32控制的机器人摄像头车
  • 最小循环子数组 - 华为OD统一考试(Python题解)
  • 重力场模型、球谐函数以及重力异常
  • python3环境安装
  • 【ESP32+vscode】问题记录
  • visual studio 2015 安装闪退问题
  • [CLS] 向量是 BERT 类模型中一个特别重要的输出向量,它代表整个句子或文本的全局语义信息
  • Github 2025-05-10 Rust开源项目日报 Top10
  • TransmittableThreadLocal:穿透线程边界的上下文传递艺术
  • 数据库事务
  • GD32H7复位后程序调用函数时间增加
  • Linux 下 Java 部署环境搭建与项目部署详细步骤
  • 质数和约数
  • LabVIEW电涡流传感器自动校准系统
  • 【编译原理】总结
  • 由反激电源引起的一点儿分析
  • project从入门到精通(五)
  • Java ClassLoader双亲委派机制