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

如何网上建设网站wordpress调用所有的标签

如何网上建设网站,wordpress调用所有的标签,网站a记录吗,中小开网站目录 BeanFactoryPostProcessor BeanDefinitionRegistryPostProcessor 使用一下Bean工厂后置处理器 定义包扫描范围 定义一个组件Bean 定义一个普通的类 自定义一个组件类实现Bean工厂后处理器 测试类 BeanFactoryPostProcessor 该接口是Spring提供的扩展点之一是一个…

目录

BeanFactoryPostProcessor

BeanDefinitionRegistryPostProcessor

使用一下Bean工厂后置处理器

定义包扫描范围

定义一个组件Bean

定义一个普通的类

自定义一个组件类实现Bean工厂后处理器

测试类


BeanFactoryPostProcessor

  • 该接口是Spring提供的扩展点之一
  • 是一个函数式接口,只有一个抽象方法
  • Spring会在合适的时机执行方法回调,并将bean工厂作为参数传递进去

既然把ConfigurableListableBeanFactory类型的bean工厂传递过来了,那么该类型中的方法我是不是就可以为所欲为地为自己所用了啊

package org.springframework.beans.factory.config;import org.springframework.beans.BeansException;// 函数式接口
@FunctionalInterface
public interface BeanFactoryPostProcessor {// 参数为bean工厂void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;}

BeanDefinitionRegistryPostProcessor

  • 是BeanFactoryPostProcessor的子接口
  • 自身提供了一个将BeanDefinitionRegistry作为参数传递进来的方法

把BeanDefinitionRegistry传递过来了,BeanDefinitionRegistry是用来管理BeanDefinition的,提供了一系列操作BeanDefinition的方法,那么我就可以操作Spring容器中的BeanDefinition了

package org.springframework.beans.factory.support;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;// 继承了BeanFactoryPostProcessor
public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor {// 将BeanDefinitionRegistry作为参数void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException;}

使用一下Bean工厂后置处理器

定义包扫描范围

package spring.demo;import org.springframework.context.annotation.ComponentScan;// 扫描spring.demo及其子包
@ComponentScan("spring.demo")
public class SpringConfig {
}

定义一个组件Bean

package spring.demo;import org.springframework.stereotype.Component;// 这里添加了@Component注解
// Spring容器启动过程中通过ConfigurationClassPostProcessor解析@Component注解,将Cat类的BeanDefinitoon放入容器中
@Component
public class Cat {
}

定义一个普通的类

package spring.demo;// Dog类只是一个普通的Java类,没加任何注解
public class Dog {
}

自定义一个组件类实现Bean工厂后处理器

package spring.demo;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.stereotype.Component;@Component
public class CustomBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {@Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {// Dog类只是一个普通的类// 在这里我通过Spring的回调拿到BeanDefinitionRegistry// 通过BeanDefinitionRegistry将Dog类的定义信息放入Spring容器中GenericBeanDefinition beanDefinition = new GenericBeanDefinition();beanDefinition.setBeanClass(Dog.class);registry.registerBeanDefinition("dog", beanDefinition);}@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {// Spring回调将beanFactory传递过来// 这里通过beanName从beanFactory中获取到对应的BeanDefinition信息BeanDefinition catBeanDefinition = beanFactory.getBeanDefinition("cat");String beanClassName = catBeanDefinition.getBeanClassName();// 这里打印出:spring.demo.CatSystem.out.println(beanClassName);}
}

测试类

package spring.demo;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class SpringMain {public static void main(String[] args) {// 启动Spring容器AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);// 从容器中获取beanName为cat的beanObject catBean = applicationContext.getBean("cat");// 这里打印出:spring.demo.Cat@4310d43System.out.println(catBean);// 从容器中获取beanName为cat的beanObject dogBean = applicationContext.getBean("dog");// 这里打印出:spring.demo.Dog@54a7079eSystem.out.println(dogBean);}
}

http://www.dtcms.com/a/442371.html

相关文章:

  • Go语言:Go 语言中的命令行参数操作详解
  • 做平台好还是自己建网站河北建设工程信息网公告怎么查询
  • 免费网站一级a做爰在免费线看网站优化能发外链的gvm网站大全
  • 详解Kafka2-进阶机制
  • 嵌入式开发学习日志34——stm32之RTC实时时钟系统
  • 蓝桥杯单片机进阶教程——蜂鸣器继电器
  • 美发店收银系统售后
  • 力扣hot100 | 动态规划2 | 139. 单词拆分、300. 最长递增子序列、152. 乘积最大子数组、416. 分割等和子集、32. 最长有效括号
  • 做外贸一般看什么网站卓越网站建设的优点
  • centos8安装docker【新】
  • LeetCode算法日记 - Day 61: 解数独、单词搜索(附带模版总结)
  • 李宏毅machine learning 2021学习笔记——transformer
  • hana C# 连接问题
  • 每日一个网络知识点:TCP/IP参考模型
  • 网站报价明细网络营销战略内容
  • springboot+vue会议室管理系统(源码+文档+调试+基础修改+答疑)
  • 不依赖WMI的硬件检测工具,数据更准、速度更快
  • k8s 部署 gitlab 公网无法访问排查
  • 昆明市住房和城乡建设局网站铜川网站建设哪家好
  • 国外医院网站设计微网站建设正规公司
  • 推广网站代码中国八大设计院排名
  • 【Nest】日志记录
  • 什么网站可以做汽车国际贸易php网站开发实例教程 课件
  • [Linux基础——Lesson11.Shell运行原理------王婆传媒]
  • 梦幻创意网站建设互动平台怎么注册
  • 第三十八章 ESP32S3 SPIFFS 实验
  • Seata 与 Redisson从底层到实战
  • 如何将wsl安装的Ubuntu系统从C盘移到D盘?
  • 怎么用阿里云做网站如何开发游戏
  • 网站服务器费用免费生成ppt的网站