@Component
@Slf4j
public class CustomImportBeanDefinitionRegistrar implements BeanDefinitionRegistryPostProcessor {
static BeanDefinitionRegistry registerBeanDefinition;
static List<String> classNames = new ArrayList<>();
static Map<String, String> beanNames = new HashMap<>();
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
this.registerBeanDefinition = beanDefinitionRegistry;
String[] names = beanDefinitionRegistry.getBeanDefinitionNames();
for (String name : names) {
if (!StringUtils.isEmpty(name)) {
try{
String className =beanDefinitionRegistry.getBeanDefinition(name).getClass().getName();
//String className = beanDefinitionRegistry.getBeanDefinition(name).getBeanClassName();
if(className.contains("equestMappingHandlerMapping")){
log.error("=============name:" + name);
log.error("=============className:" + className);
System.out.println("=============name:" + name);
System.out.println("=============className:" + className);
}
}catch (Throwable e){
log.error("=============name:" + name);
}
}
if (!StringUtils.isEmpty(name) && (name.contains("Impl") || name.contains("Controller"))) {
String className = beanDefinitionRegistry.getBeanDefinition(name).getBeanClassName();
if (!StringUtils.isEmpty(className)) {
if (className.startsWith("xxxxxxxx")) {
beanNames.put(className, name);
classNames.add(className);
}
}
if (name.contains("FileUpload")) {
log.error("=============name:" + name);
log.error("=============className:" + className);
System.out.println("=============name:" + name);
System.out.println("=============className:" + className);
}
}
}
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
/*
RequestMappingHandlerMapping mapping = (RequestMappingHandlerMapping) configurableListableBeanFactory.getBean("requestMappingHandlerMapping");
// 拿到Handler适配器中的全部方法
Map<RequestMappingInfo, HandlerMethod> methodMap = mapping.getHandlerMethods();
List<String> urlList = new ArrayList<>();
for (RequestMappingInfo info : methodMap.keySet()){
Set<String> urlSet = info.getPatternsCondition().getPatterns();
// 获取全部请求方式
Set<RequestMethod> Methods = info.getMethodsCondition().getMethods();
System.out.println(Methods.toString());
for (String url : urlSet){
// 加上自己的域名和端口号,就可以直接调用
urlList.add( url);
}
}
System.out.println("获取全部请求方式"+String.join(" ",urlList));
*/
}
}
Spring批量注册bean BeanDefinitionRegistryPostProcessor
于 2023-07-20 11:14:32 首次发布