當前位置: 首頁IT技術 → SimpleFactoryBean類實現(xiàn)FactoryBean接口的三個方法

SimpleFactoryBean類實現(xiàn)FactoryBean接口的三個方法

更多
  1. public class SimpleFactoryBean implements FactoryBean {   
  2.         private boolean flag;   
  3.        
  4.         public Object getObject() throws Exception {   
  5.             if (flag) {   
  6.                 return new Date();   
  7.             }   
  8.             return new String("false");   
  9.         }   
  10.        
  11.         @SuppressWarnings("unchecked")   
  12.         public Class getObjectType() {   
  13.             return flag ? Date.class : String.class;   
  14.         }   
  15.        
  16.         public boolean isSingleton() {   
  17.             return false;   
  18.         }   
  19.        
  20.         public void setFlag(boolean flag) {   
  21.             this.flag = flag;   
  22.         }   
  23.     }   
  24.        
  25.     <bean id="factoryBeanOne" class="com.study.demo.factorybean.SimpleFactoryBean" >   
  26.         <property name="flag">   
  27.             <value>true</value>   
  28.         </property>   
  29.     </bean>   
  30.        
  31.     <bean id="factoryBeanTwo" class="com.study.demo.factorybean.SimpleFactoryBean" >   
  32.         <property name="flag">   
  33.             <value>false</value>   
  34.         </property>   
  35.     </bean>   
  36.        
  37.     public class MainTest {   
  38.         public static void main(String[] args) {   
  39.             Resource res = new ClassPathResource("bean.xml");   
  40.             BeanFactory factory = new XmlBeanFactory(res);   
  41.             System.out.println(factory.getBean("factoryBeanOne").getClass());   
  42.             System.out.println(factory.getBean("factoryBeanTwo").getClass());   
  43.         }   
  44.     }  

通過簡單的測試可知,該類輸出如下:
class java.util.Date
class java.lang.String
也就是說,容器通過getBean方法返回的不是FactoryBean本身,而是FactoryBean實現(xiàn)類中getObject()方法所返回的對象。

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)