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");
    }
    }

    结果:

  • 相关阅读:
    Java之三元运算符
    Linux之用户和用户组管理指令
    Java之键盘输入语句Scanner
    进程同步和进程互斥
    Java之运算符优先级
    Java之单分支和双分支程序流程基本使用
    Python chr 函数 Python零基础入门教程
    Python globals 函数 Python零基础入门教程
    Python filter 函数 Python零基础入门教程
    Python locals 函数 Python零基础入门教程
  • 原文地址:https://www.cnblogs.com/lifan12589/p/14252380.html
Copyright © 2011-2022 走看看