@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
热门推荐
办理健康证要检查哪些项目
蒸腊肉要蒸多长时间?从薄片到厚块,不同设备蒸制全攻略
农商银行加快转型与高质量发展思考
Excel中创建思维导图的四种方法
飞行汽车eVTOL产业链全景梳理
重庆湖广会馆游玩攻略:禹王宫、移民博物馆等景点详细介绍
经济压力致犯罪率上升:原因分析与应对之策
检查肉类熟度的手指测试法
喝水也是一门学问!正确的饮水方式对于维持身体健康至关重要?
预防肾结石的方法有哪些
从零开始建立社交圈:实用建群指南与技巧分享
钢结构焊接技术的标准化与规范化要求
泰森盛赞阿里:巅峰时期的我也不是他的对手
自行车轮胎打气要打到什么程度
昆虫的特征(昆虫类最明显的三个特征)
老人言:“一桃压百木,一核镇千邪”,桃是桃木,核是啥?咋说?
碘伏的作用与禁忌 碘伏使用方法与注意事项
路飞在哪个海域长大:东海的冒险起点
香港中医药发展基金支持近百位中医师及中药专业人员赴京学习
建议中老年:如果不差钱,尽量多吃6种早餐,比天天喝粥有营养
学生量化管理项目怎么做
不上班交社保,别忘记领3笔钱 | 价值10万+
什么是股票压力位?如何判断股票压力位的有效性?
心学问心理教育,心灵的疗愈师:教会孩子自我关怀,培养积极心态
铁饭碗的由来
海蜇丝的营养与功效是什么
脑梗是神经外科还是神经内科?一文读懂就诊指南
浪漫主义诗人李贺:短暂而璀璨的文学之星
首发 | 挪威突破无人潜航器,深海竞争提速
2025,北京学区房最后的“出逃机会”?