@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
热门推荐
《半条命3》真的来了?从技术突破到行业影响的全方位解析
《半条命3》测试中,V社还有哪些惊喜?
四川多地上榜春节热门旅游目的地
盘点各地春节习俗,传统文化民间传承,哪一个最具年味?
金丝蜘蛛丝:世界上最贵的衣服
乾隆龙袍:缂丝工艺与皇家威严的完美融合
云南最美自然景观大PK,你Pick哪一座?
《不妥协的谈判》:破解职场冲突的全新视角
职场冲突处理秘籍:从预防到化解的完整指南
东莞2天1夜保姆级攻略:文化古韵与自然风光的碰撞
秋冬抗炎饮食:银耳雪梨汤拯救肺部健康
冬季高发,警惕肺炎病原体
社区防控肺炎,这些实用建议请收好!
李杰教你冬季护肺秘籍:四大实用建议守护呼吸健康
紫金山徒步打卡,哪条路线最美?
紫金山:南京的绿色守护神
南京紫金山摄影指南:捕捉最美瞬间
他的人生起起伏伏,一生经历“三起三落”,从不屈服于强权
木糖醇和赤藓糖醇的区别
到嘉峪关旅游攻略:一日游与自驾游路线,必去景点详尽指南
“甘”味之嘉峪关篇
马克龙重金押注Mistral AI,欧洲AI争霸战升级
健康轻食:白切鸡的正确打开方式
三黄鸡白切鸡,你真的会做吗?
米其林推荐:白切鸡完美烹饪指南
白切鸡:健身减肥人士的新宠
巴库:一座融合古今的城市
巴库古城与火焰塔:谁才是真正的打卡圣地?
巴库火焰塔:夜幕下的“火焰之门”
重庆出发:四川黄龙四日游深度体验攻略及实用行程指南