@PostConstruct 注解的作用和使用
创作时间:
作者:
@小白创作中心
@PostConstruct 注解的作用和使用
引用
CSDN
1.
https://m.blog.csdn.net/iku_n/article/details/143182391
@PostConstruct注解是javax.annotation包下的一个注解,它用于标记一个方法,在对象创建完成,依赖注入完成之后执行。
作用
- 初始化时机:被
@PostConstruct
注解的方法会在构造函数之后、初始化方法(例如
@Autowired
)之后被自动调用。 - 依赖注入后执行:确保在该方法执行时,所有的依赖都已经被注入,可以安全地使用。
- 只执行一次:在整个 Bean 生命周期中,该方法只会被执行一次。
- 无参数要求:被注解的方法不能有任何参数。
- 异常处理:如果方法抛出异常,则 Bean 的实例化将会失败。
使用方法
在 Spring Bean 中使用:
import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
@PostConstruct
public void init() {
// 初始化逻辑
System.out.println("Bean is initialized");
}
}
与其他注解结合:
@Service
public class DataService {
@Autowired
private DataRepository repository;
@PostConstruct
public void init() {
// 使用已注入的依赖进行初始化
repository.initializeData();
}
}
在非 Spring 环境中使用:
import javax.annotation.PostConstruct;
public class MyClass {
@PostConstruct
public void init() {
// 初始化逻辑
}
}
注意事项
- **
@PostConstruct
**方法应该是非静态的,void 返回类型的方法。 - 在一个类中可以有多个**
@PostConstruct
** 方法,但不建议这样做,因为执行顺序不能保证。 - 父类的 **
@PostConstruct
方法会在子类的
@PostConstruct
** 方法之前执行。 - 从 Java 9 开始,
@PostConstruct
被移到了
javax.annotation-api
包中,需要单独添加依赖。 - 在 Spring 框架中,**
@PostConstruct
的功能可以通过实现
InitializingBean
接口或使用
@Bean(initMethod="init")
来实现,但
@PostConstruct
**通常更简洁和推荐。
使用场景
- 初始化缓存
- 建立数据库连接
- 读取配置文件
- 注册监听器
- 启动后台线程
**
@PostConstruct
**提供了一种简洁、标准化的方式来执行 Bean 的初始化逻辑,特别适合那些需要在所有依赖注入完成后执行的初始化操作。
本文原文来自CSDN
热门推荐
如何判断孔雀鱼是否即将产卵?
一夜没睡?医生推荐6个实用方法帮你快速恢复精神
基督教里给孩子起名字女孩(基督教洋气的女孩名字及名字的含义)
张碧晨最火的10首歌,《凉凉》第1,《年轮》第3,你听过哪些?
苹果手机维修电池时需要换芯片?这可能是真的
如何解析金融现象中的深层原因?这些深层原因如何影响市场?
《魔兽世界》20年:技术革新与怀旧服带来的双重魅力与挑战
一个20尺柜装多少立方?重量限制?
古代中国和西方都有7天一轮回的概念,但中国此文化未推广开来
5:1!巴萨踢嗨了:莱万双响+一战2大纪录 1.5亿天才比肩梅西
亚马尔16岁的数据领先19岁时梅西的数据!超越梅西只是时间问题?
北京协和医院推出周末特色门诊“组合拳”,精准满足就医需求
仙逆等级划分详解:从凡人到仙帝的修炼之路
如何开锁以应对紧急情况?这种开锁方法有哪些安全性和合法性考虑?
PCB线路板厂家:PCB三种板材TG130、150、170的不同之处理
心肌缺血的日常保养
为什么情绪记忆更深刻?杏仁核与皮层间的“对话”
为什么很多人能接受苹果60Hz刷新率,却接受不了安卓的60Hz刷新率?
生态文学丨此刻!看向佳木斯市
三国杀荀攸奇策技能详解及实战强度评测
变频空调 vs 定频空调:技术原理与市场分析
少司缘的出处与背景故事是什么?
李西月《道德经注释》第六十九章:哀者胜矣
网上黄金和实体店黄金一样吗?全方位解析购买黄金的优劣
做尿检挂什么科
户外露营帐篷选择指南!
JACC:司美格鲁肽会导致心脏缩小、质量变轻,心脏结构发生改变
两项重磅研究显示,司美格鲁肽的减肥效果可至少持续4年
肺结核胸腔积水怎么回事
每日睡眠时间≥8小时会加大老年痴呆发病风险