@PostConstruct注解学习,最详细的分享教程
該注解可以實(shí)現(xiàn)在運(yùn)行工程時(shí),自動(dòng)運(yùn)行該注解下的方法;
@PostConstruct是java自帶的注解,指的是在項(xiàng)目啟動(dòng)的時(shí)候執(zhí)行這個(gè)方法,也可以理解為在spring容器啟動(dòng)的時(shí)候執(zhí)行,可作為一些數(shù)據(jù)的常規(guī)化加載,比如數(shù)據(jù)字典之類的。
被@PostConstruct修飾的方法會(huì)在服務(wù)器加載Servle的時(shí)候運(yùn)行,并且只會(huì)被服務(wù)器執(zhí)行一次。PostConstruct在構(gòu)造函數(shù)之后執(zhí)行,也就是加載順序
服務(wù)器加載Servlet -> servlet 構(gòu)造函數(shù)的加載 -> postConstruct ->init(init是在service 中的初始化方法. 創(chuàng)建service 時(shí)發(fā)生的事件.) ->Service->destory->predestory->服務(wù)器卸載serlvet
那么問題:spring中Constructor、@Autowired、@PostConstruct的順序
Constructor >> @Autowired >> @PostConstruct
依賴注入的字面意思就可以知道,要將對(duì)象p注入到對(duì)象a,那么首先就必須得生成對(duì)象p與對(duì)象a,才能執(zhí)行注入。所以,如果一個(gè)類A中有個(gè)成員變量p被@Autowired注解,那么@Autowired注入是發(fā)生在A的構(gòu)造方法執(zhí)行完之后的。
@PostConstruct應(yīng)用場(chǎng)景:
如果想在生成對(duì)象時(shí)候完成某些初始化操作,而偏偏這些初始化操作又依賴于依賴注入,那么就無法在構(gòu)造函數(shù)中實(shí)現(xiàn)。為此,可以使用@PostConstruct注解一個(gè)方法來完成初始化,@PostConstruct注解的方法將會(huì)在依賴注入完成后被自動(dòng)調(diào)用。
測(cè)試:新增一個(gè)方法,方法上加上@PostConstruct注解,啟動(dòng)sprigboot項(xiàng)目,可以看到運(yùn)行結(jié)果,指的是在項(xiàng)目啟動(dòng)的時(shí)候執(zhí)行這個(gè)方法
總結(jié)
以上是生活随笔為你收集整理的@PostConstruct注解学习,最详细的分享教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 7 配置花生壳(phddn
- 下一篇: asp.net 页面静态化