当前位置: 首页 >服务端 > spring中的@PostConstruct注解的用法

spring中的@PostConstruct注解的用法

该注解可以实现在运行工程时,自动运行该注解下的方法;

@PostConstruct是java5的时候引入的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据字典之类的。

 

 被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行

也就是加载顺序 

 服务器加载Servlet -> servlet 构造函数的加载 -> postConstruct ->init(init是在service 中的初始化方法. 创建service 时发生的事件.) ->Service->destory->predestory->服务器卸载serlvet

那么问题:spring中Constructor、@Autowired、@PostConstruct的顺序
Constructor >> @Autowired >> @PostConstruct

依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首先就必须得生成对象p与对象a,才能执行注入。所以,如果一个类A中有个成员变量p被@Autowired注解,那么@Autowired注入是发生在A的构造方法执行完之后的。

@PostConstruct应用场景:
如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。

 

现在的工程是启动消息队列时用到了这个注解

spring中的@PostConstruct注解的用法 _ JavaClub全栈架构师技术笔记
@PostConstructpublic void start() {try {int connect = producer.connect();if (connect == 0) {log.info("producer start success! groupName:{},namesrvAddr:{}", rocketMqProperties.getProducer().getGroupName(), rocketMqProperties.getNamesrvAddr());}} catch (MQException e) {e.printStackTrace();}}@PreDestroypublic void stop()  {try {if (producer != null) {producer.close();log.info("producer closed");}}catch (MQException a){a.printStackTrace();}}

作者:双间
来源链接:https://www.cnblogs.com/mark5/p/12767120.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113265.html

标签:Spring注解
分享给朋友:

“spring中的@PostConstruct注解的用法” 的相关文章

软件工程复习要点 2022年05月17日 14:38:01
[C#]richtextbox实现拖放 2022年05月17日 20:25:47
[Multimedia][TS]TS流的解析 2022年05月17日 20:41:26
投票统计,遍历数据 2022年05月21日 11:41:42
go mod 相关的八个命令 2022年05月23日 20:17:45
备战5月软考 2022年05月23日 22:39:11
关于设计模式 2022年05月23日 23:02:13