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

@PostConstruct 注解的作用和使用

@PostConstruct注解是javax.annotation包下的一个注解,它用于标记一个方法,在对象创建完成依赖注入完成之后执行。 

作用

  1. 初始化时机:被 @PostConstruct 注解的方法会在构造函数之后、初始化方法(例如 @Autowired)之后被自动调用。

  2. 依赖注入后执行:确保在该方法执行时,所有的依赖都已经被注入,可以安全地使用。

  3. 只执行一次:在整个 Bean 生命周期中,该方法只会被执行一次。

  4. 无参数要求:被注解的方法不能有任何参数。

  5. 异常处理:如果方法抛出异常,则 Bean 的实例化将会失败。

使用方法

在 Spring Bean 中使用

import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;@Component
public class MyBean {@PostConstructpublic void init() {// 初始化逻辑System.out.println("Bean is initialized");}
}

与其他注解结合

@Service
public class DataService {@Autowiredprivate DataRepository repository;@PostConstructpublic void init() {// 使用已注入的依赖进行初始化repository.initializeData();}
}

 在非 Spring 环境中使用

import javax.annotation.PostConstruct;public class MyClass {@PostConstructpublic void init() {// 初始化逻辑}
}

注意事项

  1. @PostConstruct 方法应该是非静态的,void 返回类型的方法。

  2. 在一个类中可以有多个 @PostConstruct 方法,但不建议这样做,因为执行顺序不能保证。

  3. 父类的 @PostConstruct 方法会在子类的 @PostConstruct 方法之前执行。

  4. 从 Java 9 开始,@PostConstruct 被移到了 javax.annotation-api 包中,需要单独添加依赖。

  5. 在 Spring 框架中,@PostConstruct 的功能可以通过实现 InitializingBean 接口或使用 @Bean(initMethod="init") 来实现,但 @PostConstruct 通常更简洁和推荐。

使用场景

  1. 初始化缓存
  2. 建立数据库连接
  3. 读取配置文件
  4. 注册监听器
  5. 启动后台线程

@PostConstruct 提供了一种简洁、标准化的方式来执行 Bean 的初始化逻辑,特别适合那些需要在所有依赖注入完成后执行的初始化操作。

 


http://www.mrgr.cn/news/56822.html

相关文章:

  • 2021[最强大脑]卢菲菲-记忆宫殿直播课
  • Kubernetes部署练习
  • 【pytest中同一个用例多次执行生成一个测试报告的方法】
  • KMP 算法:一种线性时间字符串匹配算法的深入分析
  • 个税自然人扣缴客户端数据的备份与恢复(在那个文件夹)
  • 爬虫日常实战
  • HTML满屏飘字代码
  • Ubuntu22.04环境搭建MQTT服务器
  • 除了HarmonyOS NEXT,华为在原生鸿蒙之夜还带来了哪些重磅新品?
  • android openGL ES详解——混合
  • 当贝连续10天销售额稳居第一!同比增长200%以实力取胜!
  • 庖丁解java(一篇文章学java)
  • kali的下载与配置(未补全)
  • 【Python】数据导入
  • Time-MMD:首个涵盖9大主要数据领域的多域多模态时间序列数据集
  • 某央企下属单位干部分流渠道建设咨询项目纪实
  • Python推荐系统详解:基于协同过滤和内容的推荐算法
  • [001]基于SpringBoot的在线拍卖系统
  • ubuntu clash 配合smartdns
  • Spring Boot框架:论坛网站开发的新选择
  • js实现弹幕效果
  • Python 第七节 魔法圆阵
  • leetcode力扣刷题系列——【构成整天的下标对数目 I】
  • [0155].第6节:IDEA常用插件
  • 大模型综述:万字长文详解AI大模型的原理、应用与未来趋势
  • 状态黑板模式