xxxatt的专栏

要活的好像明天就要死去一样!

FACTORY模式在SPRING中的实现

业务接口:

public   interface  Hello  {   
    
public   void  print();   
}
  

两个不同的BEAN实现:

public   class  TestBean  implements   Hello {         
        
public   void  print()  {   
        System.out.println(
" this is test " );   
    }
   
}
 

public   class  TestBean1  implements   Hello {       
    
public   void  print()  {   
        System.out.println(
" this is test1 " );   
    }
   
}
  


工厂类:

public   class  SimpleFactoryBean   {   
    
private  Hello testBean;  
    
private  Hello testBean1;   

    
public  Hello getTestBean()  {   
        
return  testBean;   
    }
   
  
    
public   void  setTestBean(Hello testBean)  {   
        
this .testBean  =  testBean;   
    }
   
  
    
public  Hello getTestBean1()  {   
        
return  testBean1;   
    }
   
  
    
public   void  setTestBean1(Hello testBean1)  {   
        
this .testBean1  =  testBean1;   
    }
   
  
    
public  Hello createBean( int  i) {   
         
if  (i == 1 return  testBean;   
         
if  (i == 2 return  testBean1;   
         
return   null ;   
     }
    
}
 

 
在SPRING中的配置文件:

< bean id = " factory "   class = " org.appfuse.dao.hibernate.SimpleFactoryBean " >   
    
< property name = " testBean "  ref = " testBean " />   
     
< property name = " testBean1 "  ref = " testBean1 " />     
</ bean >   
< bean id = " testBean "   class = " org.appfuse.dao.TestBean " />   
< bean id = " testBean1 "   class = " org.appfuse.dao.TestBean1 " />  

测试代码:

public   void  testBean()  throws  Exception  {   
      FactoryBean b
= (FactoryBean)ctx.getBean( " &simple " );   
     SimpleFactoryBean test;   
    Hello hello;   
    test
= (SimpleFactoryBean)ctx.getBean( " factory " );   
    hello
= test.createBean( 2 );   
    hello.print();        
}
  
以上代码可以实现根据参数的不同,返回不同的具体类,同时在你的代码里面可以完全不依赖于spring框架。这正是spring的优势所在。 
阅读更多
个人分类: spring框架相关
上一篇spring 中的 OpenSessionInViewFilter
下一篇Spring的XML配置引入XML Schema语法简化配置
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭