zoukankan      html  css  js  c++  java
  • 组件注册-使用FactoryBean注册组件

    创建一个实现了FactoryBean<T>接口的类

    public class ColorFactoryBean implements FactoryBean<Color> {
    
        public Color getObject() throws Exception {
            System.out.println("调用了getObject方法");
            return new Color();
        }
    
        public Class<?> getObjectType() {
            return Color.class;
        }
    
        public boolean isSingleton() {
            return true;
        }
    }

    配置类中通过@Bean注册这个实现类

        @Bean
        public ColorFactoryBean colorFactoryBean() {
            return new ColorFactoryBean();
        }
        @Test
        public void test04() {
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainConfig2.class);
            getDefinitionName(context);
            Object bean = context.getBean("colorFactoryBean");
            Object bean1 = context.getBean("colorFactoryBean");
            System.out.println("bean的类型 " + bean.getClass());
        }
    colorFactoryBean
    调用了getObject方法
    bean的类型 class com.yyc.bean.Color

    因为isSingleton()方法返回的是true,所以getObject()创建出来的bean是单实例的;虽然注册到容器中的是colorFactoryBean,但是取出来的事泛型color。如果真的需要取出colorFactoryBean,则id应为&colorFactoryBean。

  • 相关阅读:
    vue 文件分段上传
    深度clone
    js 导出excel
    js 校验
    设计模式原则
    多态
    数据库sql
    Redis快速入门
    C#中使用Redis学习二 在.NET4.5中使用redis hash操作
    在c#中使用servicestackredis操作redis
  • 原文地址:https://www.cnblogs.com/AyasatoMayoi/p/10914291.html
Copyright © 2011-2022 走看看