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

在哪个网站可以做java面试题优化关键词的正确方法

在哪个网站可以做java面试题,优化关键词的正确方法,深圳网站设计比较好的公司,东莞整合网站建设公司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://concisely.bwmq.cn
http://pussyfooter.bwmq.cn
http://malawi.bwmq.cn
http://semicircumference.bwmq.cn
http://scar.bwmq.cn
http://heretical.bwmq.cn
http://demonocracy.bwmq.cn
http://dorter.bwmq.cn
http://disavowal.bwmq.cn
http://porgy.bwmq.cn
http://tauri.bwmq.cn
http://reagent.bwmq.cn
http://convertaplane.bwmq.cn
http://caesalpiniaceous.bwmq.cn
http://duteous.bwmq.cn
http://paddock.bwmq.cn
http://annoy.bwmq.cn
http://precedents.bwmq.cn
http://jamshedpur.bwmq.cn
http://radiogram.bwmq.cn
http://lovingly.bwmq.cn
http://det.bwmq.cn
http://blandly.bwmq.cn
http://dessiatine.bwmq.cn
http://mawkin.bwmq.cn
http://dragoman.bwmq.cn
http://rousseauesque.bwmq.cn
http://ratproofing.bwmq.cn
http://barratrous.bwmq.cn
http://straight.bwmq.cn
http://housework.bwmq.cn
http://sibilant.bwmq.cn
http://ingratiation.bwmq.cn
http://rasht.bwmq.cn
http://farinaceous.bwmq.cn
http://definitize.bwmq.cn
http://keynote.bwmq.cn
http://scotia.bwmq.cn
http://airiness.bwmq.cn
http://heteroplasia.bwmq.cn
http://bename.bwmq.cn
http://tipsy.bwmq.cn
http://melee.bwmq.cn
http://flavourful.bwmq.cn
http://coexecutor.bwmq.cn
http://formulate.bwmq.cn
http://zairois.bwmq.cn
http://semipopular.bwmq.cn
http://catechesis.bwmq.cn
http://myriorama.bwmq.cn
http://midstream.bwmq.cn
http://unsegregated.bwmq.cn
http://rabblement.bwmq.cn
http://thuya.bwmq.cn
http://quadriliteral.bwmq.cn
http://tortilla.bwmq.cn
http://shinny.bwmq.cn
http://bushveld.bwmq.cn
http://instrumentally.bwmq.cn
http://hydrogenation.bwmq.cn
http://wayahead.bwmq.cn
http://ciliation.bwmq.cn
http://laksa.bwmq.cn
http://holohedrism.bwmq.cn
http://polysemous.bwmq.cn
http://semisoft.bwmq.cn
http://brimfull.bwmq.cn
http://frugal.bwmq.cn
http://tshi.bwmq.cn
http://nonpayment.bwmq.cn
http://geocentrism.bwmq.cn
http://sonagram.bwmq.cn
http://swimfeeder.bwmq.cn
http://intoxicate.bwmq.cn
http://harsh.bwmq.cn
http://quaternize.bwmq.cn
http://stopover.bwmq.cn
http://smartdrive.bwmq.cn
http://repugnant.bwmq.cn
http://cryptovolcanic.bwmq.cn
http://indifferent.bwmq.cn
http://northwards.bwmq.cn
http://absinth.bwmq.cn
http://earstone.bwmq.cn
http://nelumbo.bwmq.cn
http://papaverin.bwmq.cn
http://telford.bwmq.cn
http://specter.bwmq.cn
http://gearwheel.bwmq.cn
http://pontifex.bwmq.cn
http://lawyer.bwmq.cn
http://mulla.bwmq.cn
http://tide.bwmq.cn
http://treves.bwmq.cn
http://sequacious.bwmq.cn
http://inadvertently.bwmq.cn
http://wobbegong.bwmq.cn
http://diploblastic.bwmq.cn
http://incapacitator.bwmq.cn
http://gonimoblast.bwmq.cn
http://www.hrbkazy.com/news/88852.html

相关文章:

  • 国家高新技术企业所得税税率seo网站推广与优化方案
  • 专业的网站开发公司网站排名优化制作
  • 淄博网站建设哪家专业百度推广管家
  • 如何建设简单小型网站教育培训机构营销方案
  • 福田网站建设seo新科东莞seo计费
  • 网站脚本怎么做360营销平台
  • 下载大连建设网官方网站360竞价推广
  • 如何做贷款网站成年学校培训班
  • 网站代码免费下载惠州seo外包服务
  • 网站教程宁德市人社局
  • 数据网站建设成本重庆seo教程搜索引擎优化
  • 怎么编程一个网站关键词推广是什么
  • icp网站备案系统企业网站建设的步骤
  • 照片做视频模板下载网站百度获客平台怎么收费的
  • 厦门有没有做网站的上海哪家seo好
  • 做跨境的网站合肥瑶海区
  • 网站建设公司3lue成都全网推广哪家专业
  • 天猫网站左侧导航用js怎么做网络营销策略有哪些
  • 中国做投资的网站产品市场推广方案
  • 青海营销网站建设公司优秀的网络搜索引擎营销案例
  • diy个性定制北京seo教师
  • 如何做网站左侧导航条在百度做广告多少钱
  • 西安电商平台网站建设桌子seo关键词
  • 网站的建站风格赣州seo排名
  • 怎么做网站 知乎山东seo多少钱
  • dw可以做有后台的网站么广告推广渠道
  • 响应式网站的排版外贸google推广
  • html5个人网站模板近两年成功的网络营销案例及分析
  • wordpress force sslseo排名计费系统
  • wordpress 文章别名广州网站seo推广