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

自助建站帮助网哪个分销平台比较好

自助建站帮助网,哪个分销平台比较好,wordpress更新提示ftp,wordpress自定义分类法在 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://www.yayakq.cn/news/442442/

相关文章:

  • 比较好的网站建设哪家好免费的产品推广平台
  • nas可以做网站服务器吗摄影瀑布流网站模板
  • 南沙免费网站建设优秀网视频剪辑
  • 西宁集团网站建设网站焦点图制作教程
  • 网站访问pv量是指什么建设部中国建设工程信息网
  • 唐山建设企业网站做外贸的网站如何选择服务器
  • 网站专题特点劳力士官网旗舰店
  • 帮公司制作一个网站是如何收费企业营销型网站建设优惠
  • 深圳app网站设计关键词提取工具
  • 专注电子商务网站建设全国网络维护的公司排名
  • 建设部网站一级建造师报名微信的网站怎么做的
  • 网站建设用什么ui需要学哪些内容
  • 做爰全程的网站手机端开发网站模板下载
  • 百度推广太原网站建设温州建设网站公司
  • 中等职业学校示范建设专题网站用node和vue做的网站
  • 清远市网站建设公司网站关键词优化的步骤和过程
  • 南通网站建设seo网站的收费系统怎么做
  • 网站组成元素自建网站系统
  • 成都网站建设外贸wordpress建视频网站可以吗
  • 做网站的内容样本做自己的彩票网站
  • 酒店用品网站建设大淘客网站如何建设
  • 重庆巫溪网站建设合肥做个网站什么价格便宜
  • 外贸网站建设和网站推广要怎么做金融专业主要学什么
  • 咸阳做网站公司电话网站标题在线制作
  • 农业做的好的网站长春
  • 桂林网站制作找志合网络公司小程序商城排名
  • 微信做单子的网站源码杭州 网站建站
  • 镇江网站制作哪家便宜什么网站可以做效果图
  • 酒店招聘做的好的网站移动互联网开发工程师
  • 个人网站前置审批项哪些企业网站做的不错