@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
热门推荐
构建企业数字安全防线:10项核心网络安全策略详解
<少林寺>配角的武术人生:从全国冠军到海外传武
从《精武门》到《叶问》:香港功夫片的崛起与传承
教育网红张雪峰跨界私募,1600万押注新能源等硬科技
黄晓明的跨界投资之路:从华谊股东到多元化投资人
明星副业陷信任危机,法规收紧倒逼品质升级
得了甲流超过七天,还会传染人吗?
内地银行见证的香港开户:全面解析
海外仓的法律法规风险
内地银行见证的香港开户:全面解析
无锡到厦门3日游:自驾鼓浪屿,打卡菽庄花园全攻略
地中海饮食拯救肠道菌群,营养吸收不再难
中医调理肠道菌群失衡,这些方法你get了吗?
西安交大研究揭示:肠道菌群如何影响情绪与认知?
驻烟高校聚力烟台发展:人才培养、科研创新、公共卫生齐发力
王一博跨界投资布局多领域,商业价值持续攀升
转型投资人后,徐峥如何用优质内容改变影视圈
徐峥影视投资遇挑战,市场转向倒逼内容创新
春秋季节游威海:住宿景点美食全攻略
脑白质:大脑信号传输中枢,病变可致严重后果
大脑白质纤维中的上纵束:结构组成与功能解析
苏轼书法:融合晋唐法度与个人性情的艺术结晶
<饮中八仙歌>人物排序之谜:杜甫的真正标准
杜甫《绝句二首》:重归草堂的喜悦与乡愁交织
厦门首条穿海地铁运营五年,跨岛客流增长超4倍
30.3公里跨海地铁,五年改变厦门出行与商业版图
厦门地铁1号线串起12处精华景点,一票玩转“海上花园”
膳食纤维:肠道菌群的最佳拍档
地中海饮食:守护肠道菌群的秘密武器
乙肝与肠道菌群:一场关乎健康的双向奔赴