@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
热门推荐
健身教练薪资福利全解析:从底薪到职业发展
已瘦30斤低卡拌饭合集!吃得干净真的会瘦!!
了不起的毕业论文01|重现同济实验楼,一份论文聆听师生两代“器官移植”心路
卤猪头肉的做法和配方,操作简单,一遍就会
家人往生念经:轻松了解如何超度心中牵挂的亲人
南方周末:昆明——没有夏天的城市,没有安放生活的阻力
探究反社会人格犯罪者的犯罪心理与行为特征
美式九球比赛规则详解
唐代“药王”孙思邈:悬壶济世,医道双修
从红色遗址到文化产业园:淄博“四十亩地”的百年变迁
为什么人工智能的发展趋势对社会结构有深远影响?
道教宝诰:修道养生的智慧结晶
超慢跑对身体有什么好处
学习时报谈《黑神话:悟空》:中华传统文化的世界表达
车辆发生事故的保险定损与理赔
日抛隐形眼镜是否对眼睛有伤害?专家权威解答
MBTI的INFP人格全面解析:INFP人格成长指南
水资源税即将全面实施,覆盖31个省份!对水价有何影响?专家解读
朱厚熜与嘉靖新政:一位能力显著的皇帝与他的治理成就
揭秘种植牙全部费用包括哪些:术前检查|一期二期三期治疗费用一网打尽,快来算算!
明军兵临大都城下,元军做了哪些抵抗?徐达为什么要放走元顺帝?
参军入伍:我国男生应具备的身体素质与基本条件
原神4.2版本芙宁娜攻略:机制详解与使用指南
探究北宋时期服饰的风格与特点
北宋版图的最大扩展:历史与地理的交汇
2025年正月中国影市总票房达204.44亿 创下单月(农历)票房和人次新高
离职后公司继续缴纳社保,这个费用谁承担
双灵:北美洲土著文化中的性别多样性
山楂六物是哪六物
探秘3开头股票:解锁创业板买入条件的全面解析