@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
热门推荐
皮冻冻硬了结冰还能吃吗
春节前的白沟小生意:如何带动地方经济?
春节摆摊三大热门选择:烤串、糖葫芦、年画春联
五菱星辰混动版秋冬保养全攻略
衢州必打卡!古城、江郎山、烂柯山全攻略
东坪村:藏在深山里的千年古村
衢州三大景点全攻略:钱江源、江郎山、龙游石窟
潮阳站气候全攻略:四季出行指南
肯尼迪遇刺背后的阴谋论文化:从历史悬案到社会镜像
肯尼迪遇刺61年,最新档案解密揭示惊人真相
汕头交通建设加速:京灶大桥通车,多个重点项目稳步推进
潮阳文光塔:千年古塔见证岭南文化
从潮阳站出发,打卡汕头最美小镇
火烧七百里连营,刘备不懂用兵?
从深圳莲花山公园看城市公共厕所的性别平等困境
双十一期间女厕排队引发热议:女性购物体验受阻
刘兰芳评书《新岳飞传》:穿越千年的忠诚之声
刘兰芳评书语言艺术:赞赋与大白话的完美融合
宋光宗与重庆更名背后的秘密
重庆区划地名文化展示馆:科技与文化的完美融合
重庆得名之谜:宋光宗与“双重喜庆”背后的真相
面对死亡的思考:生命的意义与珍惜当下的启示
哈尔滨医大专家推荐:醋蛋液降压疗法
用镇江白醋自制醋蛋液,健康又简单!
喝醋蛋液,让你美出新高度!
家庭版醋蛋液:简单易学的减肥新选择
如何教孩子正确理解和实践尊重?
刘伯坚致大嫂的信:生是为中国,死是为中国
哪吒新作春节档上映:从叛逆少年到守护者的心路历程
哪吒票房破42亿!重述神话新高度