zoukankan      html  css  js  c++  java
  • springBoot 手动注入Bean

    1.创建一个DefinitionRegistryPostProcessor :

    package com..aop_mybatis;
    
    import org.springframework.beans.BeansException;
    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.RootBeanDefinition;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class DefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory arg0)throws BeansException {
    
        }
    
        /**
         * 先执行postProcessBeanDefinitionRegistry方法
         * 在执行postProcessBeanFactory方法
         */
        @Override
        public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
                throws BeansException {
            // 第一种 : 手动注入
            // 注册bean
            registerBean(registry, "hello", HelloWord.class);
            registerBean(registry, "helloWord", HelloWord.class);
        }
        /**
         注册bean
         **/
        private void registerBean(BeanDefinitionRegistry registry, String name, Class<?> beanClass) {
            RootBeanDefinition bean = new RootBeanDefinition(beanClass);
            registry.registerBeanDefinition(name, bean);
        }
    }

    2.测试能否在spring上下文获取该bean:

    @SpringBootApplication
    public class ApplicationBoot {
        public static void main(String[] args) {
            ApplicationContext applicationContext = SpringApplication.run(ApplicationBoot.class);
            HelloWord helloWord = applicationContext.getBean("hello", HelloWord.class);
            System.out.println(helloWord.say());
        }
    }


    3.测试类:

    package com..aop_mybatis;
    
    public class HelloWord {
    
    public void say() {
    System.out.println("111");
    }
    }

    结果:

  • 相关阅读:
    解决项目迁移至Kubernetes集群中的代理问题
    gorm系列-简单入门
    py操作mongodb总结
    zabbix添加监控项以及常用的键值
    监控服务器cpu、磁盘、模板以及自定义key
    Zabbix+Grafana打造高逼格监控系统
    基于Docker的Mysql主从复制搭建
    rbac权限管理
    Django的认证系统
    Django 中间件
  • 原文地址:https://www.cnblogs.com/lifan12589/p/14252380.html
Copyright © 2011-2022 走看看