通过FactoryBean向Spring容器注册组件
-
编写工厂bean(实现FactoryBean接口)
public class Person { } public class PersonFactoryBean implements FactoryBean<Person> { @Override public Person getObject() throws Exception { return new Person(); } @Override public Class<?> getObjectType() { return Person.class; } @Override public boolean isSingleton() { return true; } } -
配置类MainConfig.java
@Configuration public class MainConfig { @Bean public PersonFactoryBean personFactoryBean() { return new PersonFactoryBean(); } } -
编写测试类,控制台打印结果
public class MainTest { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class); //获取person对象 Class<?> bean = applicationContext.getBean("personFactoryBean").getClass(); System.out.println("bean的类型:"+bean); //获取personFactoryBean对象,前缀'&' Class<?> bean2 = applicationContext.getBean("&personFactoryBean").getClass(); System.out.println("bean2的类型:"+bean2); } }