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

做兼职网上哪个网站好西宁网站制作公司

做兼职网上哪个网站好,西宁网站制作公司,合肥门户网站有哪些,无锡网站建设哪家做简介 spring在创建Bean的过程中#xff0c;提供了很多个生命周期#xff0c;实例化前就是比较早的一个生命周期#xff0c;顾名思义就是在Bean被实例化之前的处理#xff0c;这个时候还没实例化#xff0c;只能拿到该Bean的Class对象#xff0c;如果在这个时候直接返回一…简介 spring在创建Bean的过程中提供了很多个生命周期实例化前就是比较早的一个生命周期顾名思义就是在Bean被实例化之前的处理这个时候还没实例化只能拿到该Bean的Class对象如果在这个时候直接返回一个对象那么就不用spring给我们创建了 简单使用 实现 InstantiationAwareBeanPostProcessor 接口的 postProcessBeforeInstantiation方法 Component public class UserBean {public UserBean() {System.out.println(实例化UserBean);} }Component public class BeforeInstantiation implements InstantiationAwareBeanPostProcessor {Overridepublic Object postProcessBeforeInstantiation(NotNull Class? beanClass, String beanName) throws BeansException {if (beanName.equals(userBean)) {return 1;}return null;} }public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class);System.out.println(context.getBean(userBean)); } 输出结果 1 从上面的逻辑可以看出如果beanName是userBean那么直接返回一个 1这个返回值是个object任意类型都可以如果直接返回有结果那么这个结果就是该bean的结果spring不会再给我们去实例化bean 源码分析 createBean源码 Object bean resolveBeforeInstantiation(beanName, mbdToUse);// 如果拿到Bean直接返回也就是不会再有后面的逻辑,后面的一些扩展点会不生效 if (bean ! null) {return bean; }进入 resolveBeforeInstantiation protected Object resolveBeforeInstantiation(String beanName, RootBeanDefinition mbd) {Object bean null;if (!Boolean.FALSE.equals(mbd.beforeInstantiationResolved)) {// 有没有 InstantiationAwareBeanPostProcessors 后置处理器if (!mbd.isSynthetic() hasInstantiationAwareBeanPostProcessors()) {Class? targetType determineTargetType(beanName, mbd);if (targetType ! null) {// 如果有后置处理去执行初始化前逻辑可能获得了一个Beanbean applyBeanPostProcessorsBeforeInstantiation(targetType, beanName);if (bean ! null) {// 如果获得了Bean由于外面是直接返回但是Aop逻辑应该还是要有而aop就是通过初始化后的后置处理实现的所以需要执行bean applyBeanPostProcessorsAfterInitialization(bean, beanName);}}}mbd.beforeInstantiationResolved (bean ! null);}return bean; }protected Object applyBeanPostProcessorsBeforeInstantiation(Class? beanClass, String beanName) {// 遍历执行postProcessBeforeInstantiation方法可能可以直接获得到Beanfor (InstantiationAwareBeanPostProcessor bp : getBeanPostProcessorCache().instantiationAware) {Object result bp.postProcessBeforeInstantiation(beanClass, beanName);if (result ! null) {return result;}}return null; }public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException {Object result existingBean;// 遍历执行初始化后的逻辑postProcessAfterInitializationfor (BeanPostProcessor processor : getBeanPostProcessors()) {Object current processor.postProcessAfterInitialization(result, beanName);if (current null) {return result;}result current;}return result; }从上面的源码逻辑得知每个bean都会进行实例化前的操作通过找出所有的InstantiationAwareBeanPostProcessor执行postProcessAfterInitialization方法进行扩展。 以上就是实例化前的扩展点。 欢迎关注学习不迷路
http://www.hkea.cn/news/14465757/

相关文章:

  • 域名和网站的区别2021年网络营销考试题及答案
  • 南宁网站建设优化服务网站模板 国外
  • 无锡网站建设策划方案中华建设
  • 社交网站开发平台企业做网站要多少钱
  • 苏州住房建设局网站首页镇江建站推广报价
  • 营销网站 需求说明书wordpress typecho 大数据
  • 好多网站权重都没了网站主体负责人必须是法人吗
  • 怎么制作弹幕网站中国最大的中文网站
  • 什么网站免费做推广固安建设网站
  • 怎么让自己做的网站让别人看到怎么利用国外网站做互联网挣钱
  • 古色古香的网站模板win7网站建设
  • 湛江做网站的有哪些北京市住房建设厅官网
  • 全景网站模版创意设计人才网
  • 做一个简单的网站多少钱网站优化网站优化
  • 北京城乡建设部网站首页地址生成器
  • 贵州国高建设工程有限公司 网站深圳建站公司网站
  • 设计公司企业网站山东外贸公司排名
  • 制作网站的步骤有哪些有一个网站 人物模型可以做各种动作
  • 怎么用ftp备份网站网站名称注册程序
  • 企业邮箱是多少怎么查最新seo网站优化教程
  • 盐城做百度网站网站推广的优势有哪些
  • 顺的品牌网站设计信息如何建立个人网站的步骤
  • 网站首页做了一下调整会被k吗硬件开发和软件开发哪个工资高
  • 济南网站建设 unzz提供网站建设服务平台
  • 安卓端网站开发ide制作公司网页需求表
  • 做艺人资料卡的网站怎么把在微企点做响应式网站
  • 有什么可以在线做奥数题的网站阿里云服务器学生优惠
  • 金融互助网站开发物业网站建设方案
  • 电子商城网站做网站设计需求
  • 哪里有做ppt模板下载网站湖南省郴州市安仁县