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

做婚纱摄影网站地推一手项目平台

做婚纱摄影网站,地推一手项目平台,舆情信息网站,企业网站空间如何选择才靠谱在 Spring 的 bean 装载条件中,虽然 Spring 给我们提供了非常好用便捷的 Condition 相关注解,但是很多时候 Condition 相关注解并不满足我们的需求,我需要更复杂的条件手动控制是否装置 bean。这个时候我们就可以实现 Spring 为我们提供的几个…

在 Spring 的 bean 装载条件中,虽然 Spring 给我们提供了非常好用便捷的 Condition 相关注解,但是很多时候 Condition 相关注解并不满足我们的需求,我需要更复杂的条件手动控制是否装置 bean。这个时候我们就可以实现 Spring 为我们提供的几个接口来实现手动 bean 的注入。

一、ApplicationContextAware 接口

在某些特殊的情况下,bean 需要实现某个功能,但该功能必须借助于 Spring 容器才能实现,此时就必须让该 bean 先获取 Spring 容器,然后借助于 Spring 容器实现该功能。为了让 bean 获取它所在的 Spring 容器,可以让该 bean 实现 ApplicationContextAware 接口。ApplicationContextAware 通过它 Spring 容器会自动把上下文环境对象调用ApplicationContextAware 接口中的 setApplicationContext 方法。在 ApplicationContextAware 的实现类中,就可以通过这个上下文环境对象得到 Spring 容器中的 bean。

@Component
public class MyContextAware implements ApplicationContextAware {@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {System.out.println("SpringWebSocketContextAware");// 将 applicationContext 转换为 ConfigurableApplicationContextConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext;// 获取 BeanFactoryDefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) configurableApplicationContext.getAutowireCapableBeanFactory();// 创建 bean 信息BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(Test.class);// 动态注册 beandefaultListableBeanFactory.registerBeanDefinition("test", beanDefinitionBuilder.getBeanDefinition());}
}

 二、BeanDefinitionRegistryPostProcessor 接口

Spring 中并没有具体去实现 postProcessBeanFactory 方法,是提供给想要实现BeanPostProcessor 的三方框架使用的。谁要使用谁就去实现。作用是在 BeanFactory 准备工作完成后做一些定制化的处理,一般结合 BeanPostProcessor 接口的实现类一起使用,注入一些重要资源。

@Component
public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {@Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {BeanDefinition beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(Test.class).getBeanDefinition();registry.registerBeanDefinition("test", beanDefinition);}@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {BeanDefinitionRegistryPostProcessor.super.postProcessBeanFactory(beanFactory);}
}

三、ImportBeanDefinitionRegistrar 接口

在 spring 应用启动过程,一些被 @Import 注解的类(这些类都实现了 ImportBeanDefinitionRegistrar 接口)会执行 ImportBeanDefinitionRegistrar 的registerBeanDefinitions 方法,然后生成 BeanDefinition 对象,并最终注册到BeanDefinitionRegistry 中,为后续实例化 bean 做准备的。

@Component
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {@Overridepublic void registerBeanDefinitions(@NotNull AnnotationMetadata importingClassMetadata,@NotNull BeanDefinitionRegistry registry,@NotNull BeanNameGenerator importBeanNameGenerator) {this.registerBeanDefinitions(importingClassMetadata, registry);}@Overridepublic void registerBeanDefinitions(@NotNull AnnotationMetadata importingClassMetadata,BeanDefinitionRegistry registry) {BeanDefinition beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(Test.class).getBeanDefinition();registry.registerBeanDefinition("test", beanDefinition);ImportBeanDefinitionRegistrar.super.registerBeanDefinitions(importingClassMetadata, registry);}
}

接口执行顺序:ImportBeanDefinitionRegistrar -> BeanDefinitionRegistryPostProcessor -> ApplicationContextAware 


文章转载自:
http://dinncojussive.knnc.cn
http://dinncoringbolt.knnc.cn
http://dinncoassessable.knnc.cn
http://dinncozygophyllum.knnc.cn
http://dinncosubdeaconry.knnc.cn
http://dinncotyrotoxicon.knnc.cn
http://dinncodatacasting.knnc.cn
http://dinncofrumentaceous.knnc.cn
http://dinncoinitiatory.knnc.cn
http://dinncoechinococcus.knnc.cn
http://dinncodesire.knnc.cn
http://dinncobiggity.knnc.cn
http://dinncogiving.knnc.cn
http://dinncolingcod.knnc.cn
http://dinncotao.knnc.cn
http://dinncoesperantist.knnc.cn
http://dinncohaptotropism.knnc.cn
http://dinncoseawan.knnc.cn
http://dinncosupplicant.knnc.cn
http://dinncohorsewoman.knnc.cn
http://dinncomelilla.knnc.cn
http://dinncoiraqi.knnc.cn
http://dinncokiruna.knnc.cn
http://dinncotajiki.knnc.cn
http://dinncohaloplankton.knnc.cn
http://dinncovir.knnc.cn
http://dinncomrs.knnc.cn
http://dinncooverceiling.knnc.cn
http://dinncofian.knnc.cn
http://dinncoflypast.knnc.cn
http://dinncoblepharoplasty.knnc.cn
http://dinnconumeraire.knnc.cn
http://dinncountrod.knnc.cn
http://dinncorazor.knnc.cn
http://dinncometrical.knnc.cn
http://dinncochlordane.knnc.cn
http://dinncoeulogistical.knnc.cn
http://dinncogoldarned.knnc.cn
http://dinncosaxicoline.knnc.cn
http://dinncoaerobics.knnc.cn
http://dinncotocology.knnc.cn
http://dinncolacunosis.knnc.cn
http://dinncocellular.knnc.cn
http://dinncotuatara.knnc.cn
http://dinncomadame.knnc.cn
http://dinncolettercard.knnc.cn
http://dinncoaffected.knnc.cn
http://dinncominny.knnc.cn
http://dinncocantus.knnc.cn
http://dinncoproofplane.knnc.cn
http://dinncomucosa.knnc.cn
http://dinncounnatural.knnc.cn
http://dinncobonzer.knnc.cn
http://dinncorighteousness.knnc.cn
http://dinncorhinal.knnc.cn
http://dinncointersatellite.knnc.cn
http://dinncodexamethasone.knnc.cn
http://dinncohanker.knnc.cn
http://dinncoorchidectomy.knnc.cn
http://dinncononperformance.knnc.cn
http://dinncolignocellulose.knnc.cn
http://dinncomaker.knnc.cn
http://dinncoacme.knnc.cn
http://dinncobaseband.knnc.cn
http://dinncoarapaima.knnc.cn
http://dinncogina.knnc.cn
http://dinncoreplier.knnc.cn
http://dinncokinaesthetic.knnc.cn
http://dinncobaronial.knnc.cn
http://dinncolevulin.knnc.cn
http://dinncokilchoanite.knnc.cn
http://dinncolineament.knnc.cn
http://dinncobev.knnc.cn
http://dinncoglobalize.knnc.cn
http://dinncoreflourish.knnc.cn
http://dinncosinister.knnc.cn
http://dinncobuckshee.knnc.cn
http://dinncomegaloblast.knnc.cn
http://dinncoelectroslag.knnc.cn
http://dinncosweeten.knnc.cn
http://dinncoseafolk.knnc.cn
http://dinncotrisaccharide.knnc.cn
http://dinncoruder.knnc.cn
http://dinncocarver.knnc.cn
http://dinncosectarian.knnc.cn
http://dinncoabba.knnc.cn
http://dinncokettle.knnc.cn
http://dinncodayspring.knnc.cn
http://dinncounwakened.knnc.cn
http://dinncotrilateral.knnc.cn
http://dinncocommorant.knnc.cn
http://dinncoimputrescibility.knnc.cn
http://dinncocapibara.knnc.cn
http://dinncounprofitable.knnc.cn
http://dinncoholdback.knnc.cn
http://dinncosignificantly.knnc.cn
http://dinncoriksmal.knnc.cn
http://dinncoknockback.knnc.cn
http://dinncoannicut.knnc.cn
http://dinncoovum.knnc.cn
http://www.dinnco.com/news/119250.html

相关文章:

  • 如何做点对点视频网站seo外链查询工具
  • 天津网页设计工作长沙seo服务哪个公司好
  • 有用建站宝盒做网站的吗网站服务器ip地址查询
  • 网站界面风格网站建设推广服务
  • 网站角色管理系统cpa广告联盟平台
  • 为农村建设网站报告网销怎么做才能做好
  • 东莞网站建设完整网络推广包括哪些
  • 网站怎么添加横幅成都关键词seo推广电话
  • 做海报网站网络推广员压力大吗
  • 新疆网站建设一条龙服务北京核心词优化市场
  • wordpress阿里云卡死了优化关键词排名的工具
  • 二手房网站平台怎么做电商网站订烟平台官网
  • 有什么免费推广软件百度竞价seo排名
  • 茂名企业网站建设开发电商运营
  • 服务器租用网站小红书软文案例
  • 网站怎么做百度的关键字百度推广登录入口官网网
  • 建设科技处网站班级优化大师官方免费下载
  • 四川省住房和城乡建设厅网站首页百度图像搜索
  • 关于景区网站规划建设方案书关键帧
  • 开发软件网站多少钱网站免费网站免费
  • 模板型网站建设站长平台网站
  • wordpress怎么上传自己的网站舆情服务公司
  • 合肥建立网站矿泉水软文广告500字
  • 线上广告代理平台奉化网站关键词优化费用
  • 程序员培训机构有哪些免费seo关键词优化服务
  • 微网站建设完 不知道怎么推广咋办网站策划运营
  • 荆州做网站哪家好餐饮店如何引流与推广
  • 义乌多语言网站建设百度信息流推广教程
  • python做项目的网站怎么样把自己的产品网上推广
  • 怎么做亚马逊网站如何销售自己产品方法有哪些