首页 > 编程知识 正文

vue的生命周期的执行顺序执行顺序,react生命周期执行顺序

时间:2023-05-06 12:39:53 阅读:182264 作者:1202

beanconfigandlifecyclepackagecom.study.spring.config; import com.study.spring.bean.cat; import com.study.spring.bean.dog; import com.study.spring.bean.pet; importorg.spring framework.context.annotation.bean; importorg.spring framework.context.annotation.configuration; @ configurationpublicclassbeanconfigandlifecycle {/* * * 执行顺序: Construct (构造函数) @ post construct initializing bean I Tian beanpostprocessor.postprocessbeforeinitior 执行顺序: @preDestroy DisposableBean接口@bean(destroymethod )1),在初始化和指定@Bean中指定init-method和destroy-method; * 2)、Bean上的初始化逻辑定义、* DisposableBean (丢弃逻辑定义); * 3)、可使用JSR250; * @ post construct :在bean中创建完毕,属性分配完毕。 执行初始化方法。 @PreDestroy :在容器销毁bean之前通知清理活动。 (4)、beanpostprocessor【接口】: bean的后处理器; 在bean初始化前后进行一些处理工作; * postprocessbeforeinitialization :在初始化前工作* postprocessafterinitialization :在初始化后工作* * * Spring基础BeanPostProcessor * * bean赋值、注入其他组件、@Autowired、生命周期注释功能、@Async、xxx BeanPostProcessor; * @ return *//@ bean(initmethod='running ',destroyMethod='back ' ) bean (init method=' running ',destroymethod ) (} //@Bean public Cat cat ) ) { return new Cat; }} Dog

package com.study.spring.bean; importorg.spring framework.beans.beans exception; importorg.spring framework.beans.factory.disposable bean; importorg.spring framework.beans.factory.initializing bean; importorg.spring framework.beans.factory.config.beanpostprocessor; import javax.annotation.post construct; import javax.annotation.pre destroy; public class Dog implements Pet,BeanPostProcessor,InitializingBean, disposable bean { } public dog (} system.out.println ) ) system.out.println } @ override public void running () system.oue } @Override public void back () system.out.println ) ' dogisback . ' ); } @Override public void destroy () throws exception (system.out.println ) (“dogisdestroy”) ) ) ) @ overridepublicvoidafterpropertiesset () throwsexception ) system.out.println (' dogisafterpropertiesset )…' ); } @ postconstructpublicvoidpostconstruct () throws exception (system.out.println (' dogispostconstruct ) ) ) ) } @ predestroypublicvoidpredestroy () throws exception (system.out.println ) (' dogispredestroy ) ) ) ) @ overridepublicobjectpostprocessbeforeinitialization (objecto,String s ) throwsbeansexception (system.out.println ) ) 返回o; } @ overridepublicobjectpostprocessafterinitialization (objecto,String s ) Throwsbeansexception ) system.out.println ' ' }初始化执行顺序:

Construct (构造函数) @ post construct initializing bean (bean ) initmethod ) beanpostprocessor.postprocessbeforeinition

@preDestroy DisposableBean接口@bean(destroymethod ) )。

初始化bean接口@bean(initmethod )执行顺序原因:

abstractautowirecapablebeanfactoryprotectedvoidinvokeinitmethods (string beanname,final Object bean,roootbeandefinitionmbd ) if (isinitializingbean (mbd==null |! mbd.isexternallymanagedinitmethod (afterpropertiesset ) ) if ) logger.isdebugenabled ) ) logger.debug ) isdebugenabed=null(try ) access controller.do privileged (newprivilegedexceptionactionobject ) {@Overridepublic Object run ) } throoooo },getAccessControlContext (); } catch (privilegedactionexceptionpae ) {throw pae.getException ); }else{((initializingbean ) bean ).afterPropertiesSet; (if ) mbd!=null (stringinitmethodname=mbd.getinitmethodname ); if (初始化方法名称!=空! (isinitializingbean ' afterpropertiesset '.equals (init method name )! mbd.isexternallymanagedinitmethod (init method name ) (invokecustominitmethod ) beanname,bean,mbd ); } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。