美文网首页
Bean的工厂创建方式

Bean的工厂创建方式

作者: 宿命99 | 来源:发表于2018-04-26 09:49 被阅读4次

    使用工厂方式创建 Bean。
    PersonBeanFactory

    public class PersonBeanFactory implements FactoryBean<Person> {
        @Override
        public Person getObject() throws Exception {
            return new Person("工厂 Bean 的创建", 1);
        }
    
        @Override
        public Class<?> getObjectType() {
            return Person.class;
        }
    
        @Override
        public boolean isSingleton() {
            return true;
        }
    }
    

    getObject : 获取对象
    getObjectType: 获取对象的类型
    isSingleton: true 单实例 false:多实例

    配置类

    @Configuration
    public class BeanFactoryConfig {
    
        @Bean
        public PersonBeanFactory personFactory() {
            return new PersonBeanFactory();
        }
    
    }
    

    测试代码

        @Test
        public void test8() {
            ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanFactoryConfig.class);
            Object personFactory = ctx.getBean("personFactory");
            System.out.println(personFactory.getClass());
        }
    

    查看 personFactory 的类型,可以判断它是 me.sjl.bean.Person 还是 me.sjl.bean.PersonBeanFactory

    结果


    Person对象

    如果想要获取 工厂 Bean 的对象,使用 getBean("&personFactory") 方式 。加 & 字符

        @Test
        public void test8() {
            ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanFactoryConfig.class);
            Object personFactory = ctx.getBean("&personFactory");
            System.out.println(personFactory.getClass());
        }
    
    工厂对象本身

    相关文章

      网友评论

          本文标题:Bean的工厂创建方式

          本文链接:https://www.haomeiwen.com/subject/fpbwcftx.html