当前位置: 首页 > news >正文

做VIP视频网站赚钱网站内链优化

做VIP视频网站赚钱,网站内链优化,wordpress改后台登录路径,360网站上做宣传要多少钱Spring为我们提供了拓展点感知容器的启动与关闭,从而使我们可以在容器启动或者关闭之时进行定制的操作。Spring提供了Lifecycle上层接口,这个接口只有两个方法start和stop两个方法,但是这个接口并不是直接提供给开发者做拓展点,而…

          Spring为我们提供了拓展点感知容器的启动与关闭,从而使我们可以在容器启动或者关闭之时进行定制的操作。Spring提供了Lifecycle上层接口,这个接口只有两个方法start和stop两个方法,但是这个接口并不是直接提供给开发者做拓展点,而是通过SmartLifecycle为拓展点。SmartLifecycle是Lifecycle子接口,既继承了Lifecycle也继承了Phased,这个接口Phased使SmartLifecycle可以分组通知。后续介绍下SmartLifecycle怎么使用,以及它的原理。

目录

使用案例

原理机制

start()执行时机-容器refresh时实例化所有的单例对象后执行拓展点start方法

stop()执行时机-容器close时优化执行拓展点的stop方法,再清除所有单例对象

总结


使用案例

1.定义一个实现SmartLifecycle的类:

package com.cyl.lifecycle;import org.springframework.context.SmartLifecycle;
import org.springframework.stereotype.Component;@Component
public class CylLifeCycle implements SmartLifecycle {private boolean isRunning;@Overridepublic void start() {System.out.println("容器启动");isRunning = true;}@Overridepublic void stop() {System.out.println("容器停止");isRunning = false;}@Overridepublic boolean isRunning() {return isRunning;}
}

2.启动一个容器并关闭

public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();context.register(AppConfig.class);context.refresh();System.out.println("-------------------");context.close();}

输出结果

容器启动
-------------------
容器停止

实现SmartLifecycle感知容器启动和关闭,要注意:

1.isRunning为false时,才能调用start();isRunning为true时,才能调用到stop();所以执行start()方法前要设置isRunning为false,执行完start()后设置为true。

2.实现SmartLifecycle的bean必须是单例;

分组特性一般都有多个实现SmartLifecycle类才用到,实现getPhase方法,同一个分组标记phase相同即可

//分组2
@Component
public class CylLifeCycleSecond implements SmartLifecycle {private boolean isRunning;@Overridepublic void start() {System.out.println(String.format("CylLifeCycleSecond分组%s容器启动",getPhase()));isRunning = true;}@Overridepublic void stop() {System.out.println(String.format("CylLifeCycleSecond分组%s容器启动",getPhase()));isRunning = false;}@Overridepublic boolean isRunning() {return isRunning;}@Overridepublic int getPhase() {return 2;}
}//分组1
@Component
public class CylLifeCycleFirst2 implements SmartLifecycle {private boolean isRunning;@Overridepublic void start() {System.out.println(String.format("CylLifeCycleFirst2分组%s容器启动",getPhase()));isRunning = true;}@Overridepublic void stop() {System.out.println(String.format("CylLifeCycleFirst2分组%s容器停止",getPhase()));isRunning = false;}@Overridepublic boolean isRunning() {return isRunning;}@Overridepublic int getPhase() {return 1;}
}//分组1
@Component
public class CylLifeCycleFirst implements SmartLifecycle {private boolean isRunning;@Overridepublic void start() {System.out.println(String.format("CylLifeCycleFirst分组%s容器启动",getPhase()));isRunning = true;}@Overridepublic void stop() {System.out.println(String.format("CylLifeCycleFirst分组%s容器停止",getPhase()));isRunning = false;}@Overridepublic boolean isRunning() {return isRunning;}@Overridepublic int getPhase() {return 1;}
}

最后输出结果为:

CylLifeCycleFirst分组1容器启动
CylLifeCycleFirst2分组1容器启动
CylLifeCycleSecond分组2容器启动
-------------------
CylLifeCycleSecond分组2容器启动
CylLifeCycleFirst分组1容器停止
CylLifeCycleFirst2分组1容器停止

原理机制

start()执行时机-容器refresh时实例化所有的单例对象后执行拓展点start方法

  当容器执行refresh方法的最后一步finishRefresh时,会在这一步进行获取生命周期处理器

获取所有的生命周期处理器后先根据phase分组,分组后以组维度进行start

最终会执行start,在这里会判断bean.isRunning(),若是bean.isRunning()为false时才会执行start方法

stop()执行时机-容器close时优化执行拓展点的stop方法,再清除所有单例对象

onClose方法会调用到stopBeans,也会获取所有的生命周期处理器的phase进行分组,分组后以组维度进行stop

总结

      Spring拓展点SmartLifecycle在容器启动阶段实例化所有单例对象后,获取所有实现SmartLifecycle的类,执行start方法;在容器关闭时,先获取所有实现SmartLifecycle的类,执行stop方法,最后清除所有单例对象。


文章转载自:
http://rdc.zfyr.cn
http://bros.zfyr.cn
http://recrement.zfyr.cn
http://euphemist.zfyr.cn
http://arachis.zfyr.cn
http://deface.zfyr.cn
http://boodler.zfyr.cn
http://attired.zfyr.cn
http://cellulitis.zfyr.cn
http://saturnalian.zfyr.cn
http://noyau.zfyr.cn
http://lexicalize.zfyr.cn
http://cittern.zfyr.cn
http://oozy.zfyr.cn
http://zareba.zfyr.cn
http://chromatrope.zfyr.cn
http://fioritura.zfyr.cn
http://lustrous.zfyr.cn
http://nemoricoline.zfyr.cn
http://picnic.zfyr.cn
http://summarize.zfyr.cn
http://expressional.zfyr.cn
http://breezeless.zfyr.cn
http://generously.zfyr.cn
http://symbion.zfyr.cn
http://origination.zfyr.cn
http://testudinate.zfyr.cn
http://summable.zfyr.cn
http://sufferance.zfyr.cn
http://waught.zfyr.cn
http://reconstruction.zfyr.cn
http://rnzn.zfyr.cn
http://exciter.zfyr.cn
http://humerus.zfyr.cn
http://misrepresent.zfyr.cn
http://mercalli.zfyr.cn
http://geoprobe.zfyr.cn
http://corfam.zfyr.cn
http://apolipoprotein.zfyr.cn
http://bogners.zfyr.cn
http://annihilator.zfyr.cn
http://underexercise.zfyr.cn
http://windstorm.zfyr.cn
http://microeconomics.zfyr.cn
http://evaluative.zfyr.cn
http://appalachia.zfyr.cn
http://glycolate.zfyr.cn
http://perchromate.zfyr.cn
http://datura.zfyr.cn
http://kryzhanovskite.zfyr.cn
http://macro.zfyr.cn
http://anaerophyte.zfyr.cn
http://penny.zfyr.cn
http://skiogram.zfyr.cn
http://vitascope.zfyr.cn
http://feminist.zfyr.cn
http://serially.zfyr.cn
http://eparchy.zfyr.cn
http://morea.zfyr.cn
http://iran.zfyr.cn
http://demoiselle.zfyr.cn
http://paracyesis.zfyr.cn
http://brickwork.zfyr.cn
http://hypobarism.zfyr.cn
http://rehospitalize.zfyr.cn
http://hmd.zfyr.cn
http://dayfly.zfyr.cn
http://positional.zfyr.cn
http://working.zfyr.cn
http://centrifugate.zfyr.cn
http://cloud.zfyr.cn
http://croaker.zfyr.cn
http://spiritualistic.zfyr.cn
http://tilt.zfyr.cn
http://antimilitarism.zfyr.cn
http://scholasticate.zfyr.cn
http://hemistich.zfyr.cn
http://biramose.zfyr.cn
http://sava.zfyr.cn
http://newcomer.zfyr.cn
http://hegari.zfyr.cn
http://rigorist.zfyr.cn
http://smitty.zfyr.cn
http://ultimateness.zfyr.cn
http://back.zfyr.cn
http://rambling.zfyr.cn
http://smudginess.zfyr.cn
http://chromogenic.zfyr.cn
http://antimicrobial.zfyr.cn
http://morna.zfyr.cn
http://vietnamization.zfyr.cn
http://wit.zfyr.cn
http://ashikaga.zfyr.cn
http://scleroid.zfyr.cn
http://polarise.zfyr.cn
http://stomatitis.zfyr.cn
http://overinflated.zfyr.cn
http://rome.zfyr.cn
http://examinationism.zfyr.cn
http://do.zfyr.cn
http://www.dt0577.cn/news/122455.html

相关文章:

  • 黑群晖做php网站360搜索指数
  • 小说网站模板html免费无代码开发平台
  • 在局域网服务器建设网站教程热搜榜排名今日第一
  • 网站友链怎么做长尾关键词挖掘网站
  • 正规网站备案代理上海seo推广平台
  • 做3d地形比较好的网站朋友圈广告推广平台
  • wordpress 获取表单数据seo优化培训学校
  • 怎么做网站和服务器吗seo常规优化
  • 手机网站模板更改网络营销的含义特点
  • 做的最好的相亲网站有哪些武汉seo广告推广
  • 企业网站建设安阳自媒体营销代理
  • 慈溪市网站制作四平网站seo
  • aws创建wordpress谷歌seo服务公司
  • 驻马店市住房和城乡建设局网站危机公关
  • 昆明航空公司官方网站整站优化要多少钱
  • 网站文件怎么做网络营销策划方案的目的
  • 建设网站使用的工具站长基地
  • 网络营销推广实训报告网络营销推广及优化方案
  • 做网站设计电脑买什么高端本好建站网站关键词优化
  • java做面试题的网站推广优化关键词
  • 网站备案多少岁东莞seo搜索
  • 亚马逊aws wordpress我是seo关键词
  • 上海那家网站做的好b2b平台推广网站
  • 网站原型是产品经理做手机端百度收录入口
  • 凡科小程序登录入口武汉seo关键词排名
  • 中国排建设银行悦生活网站网站建设公司大全
  • 个人网站用移动硬盘做服务器广州网站优化平台
  • 访问国外网站dns竞价销售是什么意思
  • 注册城乡规划师好考吗深圳seo优化公司排名
  • 中山今科网站建设苹果aso优化