当前位置: 首页 > 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://www.hengruixuexiao.com/news/24932.html

相关文章:

  • 建站快车复制测试账号网站内容培训计划方案模板
  • 产品结构设计网站哈尔滨百度公司地址
  • 工信部网站备案查通知百度关键词竞价排名
  • 国有企业查询系统官网做灰色词seo靠谱
  • 如何访问win7下做的网站手机一键优化
  • 做h5动画网站重庆seo代理
  • 中天建设网站网络营销的缺点及建议
  • 视频制作报价表廊坊seo关键词排名
  • wordpress题库制作免费测试seo
  • 用django怎么做网站百度app下载
  • 深圳附近建站公司bt磁力库
  • 佛山网站建设推广上海站优云网络科技有限公司
  • 昆明网站建设加q.479185700学大教育培训机构电话
  • 商贸网站源码百度官方网站入口
  • 怎么做网业页seo咨询价格找推推蛙
  • 珠海培训网站建设产品seo是什么意思
  • 网站描述应该怎么写宝塔没有域名直接做网站怎么弄
  • 微信网站建设咨询seo是哪里
  • 个人网站备案号被注销了关键词排名工具
  • 直播软件下载网站企业推广方案
  • 上海建设和交通管理委员会网站网站关键词排名优化价格
  • 网站定制型和营销型互联网营销怎么赚钱
  • 做网站域名重要吗互联网怎么打广告推广
  • 网站打开文件按钮怎么做想开个网站怎样开
  • 凉山北京网站建设微信scrm
  • 网站开发手机验证码百度查重
  • 如何开公众号微信公众平台开鲁网站seo转接
  • 如何办网站站长工具网站查询
  • 济南网站推广¥做下拉去118cr搜索引擎优化培训班
  • 自己做网站 需要哪些广东搜索引擎优化