我正在调查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。
我忘了做什么?
我使用@ComponentScan("com.example.domain")
所有bean和FactoryBean
位于那里。
删除@Component
MyInjectionClass