当bean实例化时,FactoryBean不会使用

时间:2015-11-03 19:47:11

标签: java spring dependency-injection inversion-of-control factory

我正在调查FactoryBean在spring框架中的工作原理 据我所知,它允许配置实例化过程。

我有以下豆子:

@Component
public class MyInjectionClass {
    String name;
    Integer age;
    //get and set methods
}

@Component
public class MyComponent {

    @Autowired
    MyInjectionClass myInjectionClass; 

    public MyInjectionClass getMyInjectionClass() {
        return myInjectionClass;
    }
}

并关注cutom FactoryBean

@Component
public class MyInjectionClassFactoryBean implements FactoryBean<MyInjectionClass> {
    @Override
    public MyInjectionClass getObject() throws Exception {
        MyInjectionClass myInjectionClass = new MyInjectionClass();
        myInjectionClass.setName("name");
        myInjectionClass.setAge(12);
        return myInjectionClass;
    }

    @Override
    public Class<?> getObjectType() {
        return MyInjectionClass.class;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}

我也在主要方法中编写了以下代码:

MyComponent bean = context.getBean(MyComponent.class);
System.out.println(bean.getMyInjectionClass().getAge());

返回null。

我忘了做什么?

P.S。

我使用@ComponentScan("com.example.domain")

所有bean和FactoryBean位于那里。

解决方案

删除@Component

上方的MyInjectionClass

0 个答案:

没有答案