1. 程式人生 > >【Spring註解】FactoryBean註冊

【Spring註解】FactoryBean註冊

5.FactoryBean

自定義Cat的工廠物件 CatFactoryBean

/**
 * @author GaoYuzhe
 * @date 2018/3/13.
 */
public class CatFactoryBean implements FactoryBean<Cat> {
    /**
     * 返回一個Car物件,當前物件會加入到容器中
     * @return
     * @throws Exception
     */
    public Cat getObject() throws Exception {
        System.out.println("CatFactoryBean...getObject..."
); return new Cat(); } /** * 返回型別 * @return */ public Class<?> getObjectType() { return Cat.class; } /** * 是否為單例 * @return */ public boolean isSingleton() { return false; } }

配置類

**
 * @author GaoYuzhe
 * @date
2018/3/13. */ @Configuration public class FactoryConfig { @Bean public CatFactoryBean catFactoryBean(){ return new CatFactoryBean(); } }

測試類

**
 * @author GaoYuzhe
 * @date 2018/3/13.
 */
public class FactoryConfigTest {

    @Test
    public void catFactoryBean() {
        AnnotationConfigApplicationContext annotationConfigApplicationContext = new
AnnotationConfigApplicationContext(FactoryConfig.class); //獲取工廠建立的物件 Object catFactoryBean = annotationConfigApplicationContext.getBean("catFactoryBean"); System.out.println("工廠建立的物件:"+catFactoryBean.getClass()); //beanName前加'&',獲取工廠本身 Object catFactory = annotationConfigApplicationContext.getBean("&catFactoryBean"); System.out.println("工廠物件本身:"+catFactory.getClass()); } }

執行結果