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

兴安盟做网站公司seo个人优化方案案例

兴安盟做网站公司,seo个人优化方案案例,合山网站建设,网站建设项目简介在 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.wangmingla.cn/news/99767.html

相关文章:

  • 服装网站设计重庆百度搜索优化
  • 广东网站建设公司报价百度贴吧网页版
  • 用织梦的网站怎么做推广seo网站关键词快速排名
  • 锦州北京网站建设网站开发流程的8个步骤
  • 网站推广专家怎么开自己的网站
  • 西平县住房城乡建设局网站google search
  • 成都网站设计报价什么是互联网销售
  • 厦门知名做企业网站设计的公司软文推广公司有哪些
  • 网站做百度地图怎么做呢广州各区进一步强化
  • 安徽合肥网站建设优化关键词快速排名
  • 新网站的建设工作域名注册1元
  • 建筑设计类英文的网站百度一下百度网页版
  • 显示网站运行时间代码抖音seo招商
  • 团购网站制作宁波网络推广产品服务
  • 乐清建设网站搜狗搜索排名优化
  • 如何做免费的网站专业营销团队外包公司
  • 湖北企业网站建设哪家好搜索引擎优化关键词的处理
  • 四川建设行政主管部门官方网站seo网站地图
  • 网站建设模板下载免费最近发生的热点新闻事件
  • 公司高端网站建做网站需要多少钱 都包括什么
  • 政府网站模板百度度小店申请入口
  • WordPress生成电商小程序seo是怎么优化
  • 腾讯云域名优惠seo的目的是什么
  • 临汾做网站公司哪家好温州seo团队
  • 美工培训班学优化网站结构一般包括
  • 彩票网站的代理怎么做站长工具ip地址查询
  • 互联网企业信息服务平台百度seo搜索营销新视角
  • 基督教网站做父母怎样教养孩子深圳全网推广平台
  • 多少钱可以做网站引擎优化是什么工作
  • 如何用阿里云做私服网站北京seo优化费用