Oops! Spring Framework Quick Start! (eclipse europa + tomcat 5.5+spring 2.06+lomboz S3.3RC1)

Oops! Spring Framework Quick Start! (eclipse europa + tomcat 5.5+spring 2.06+lomboz S3.3RC1)

Oops! Spring Framework Quick Start!


eclipse europa + tomcat 5.5+spring 2.06+lomboz S3.3RC1


Purpose:

完成这个项目,能够对spring框架有个整体认识,包括IoC之类的。

Prerequisite:

eclipse-java-europa-win32.zip

apache-tomcat- 5.5.23 .exe

tomcatPluginV31.zip

spring-framework- 2.0.6 -with-dependencies.zip

org.objectweb.lomboz-and-prereqs-S-3.3RC1-200708181505.zip


Reference:

http://www.blogjava.net/pixysoft/archive/2007/08/29/141048.html 



Chapter 01
 

新建一个Java Project,项目名为OopsSpringFramework

 

 

 

选择project – properties – Libraries添加以下类库。所有类库可以在spring-framework- 2.0.6 .zip里面找到,包括dist目录和lib目录里面。

 

 

 

src目录下面添加以下文件:



beanRefDataAccess.xml

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
< beans >
    
< bean  id ="helloWorldDAO1"  class ="HelloWorld1"   />
    
< bean  id ="helloWorldDAO2"  class ="HelloWorld2"   />
</ beans >


beanRefFactory.xml

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
< beans >
    
< bean  id ="beanFactory"
        class
="org.springframework.context.support.ClassPathXmlApplicationContext" >
        
< constructor-arg >
            
< list >
                
< value > beanRefDataAccess.xml </ value >
                
< value > beanRefService.xml </ value >
                
< value > beanRefMVC.xml </ value >
            
</ list >
        
</ constructor-arg >
    
</ bean >
</ beans >


beanRefMVC.xml

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
< beans >
    
< bean  id ="helloWorldMVC1"  class ="HelloWorld1"   />
    
< bean  id ="helloWorldMVC2"  class ="HelloWorld2"   />
</ beans >

beanRefService.xml

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
< beans >
    
< bean  id ="helloWorld1"  class ="HelloWorld1"   />
    
< bean  id ="helloWorld2"  class ="HelloWorld2"   />
    
< bean  id ="springDemoConstructor"  class ="SpringDemoConstructor" >
        
< constructor-arg >
            
< value > Spring IDE Constructor </ value >
        
</ constructor-arg >
        
< property  name ="helloWorld" >
            
< ref  bean ="helloWorld1" ></ ref >
        
</ property >
    
</ bean >
    
< bean  id ="springDemoSetter"  class ="SpringDemoSetter" >
        
< property  name ="hello"  value ="Spring IDE Setter"   />
        
< property  name ="helloWorld" >
            
< ref  bean ="helloWorld2" ></ ref >
        
</ property >
    
</ bean >
</ beans >


HelloWorld1.java

public   class  HelloWorld1  implements  IHelloWorld
{
    
public  HelloWorld1()
    {
        
super ();
    }

    
public  String sayHelloWorld()
    {
        
return   " Hello World HelloWorld1 " ;
    }
}

HelloWorld2.java

public   class  HelloWorld2  implements  IHelloWorld
{
    
public  HelloWorld2()
    {
        
super ();
    }

    
public  String sayHelloWorld()
    {
        
return   " Hello World HelloWorld2 " ;
    }
}

IHelloWorld.java

 

public   interface  IHelloWorld
{
    String sayHelloWorld();
}


ISpringDemo.java

public   interface  ISpringDemo
{
    IHelloWorld getHelloWorld();

    String getHello();
}


ServiceFactory.java

import  org.springframework.beans.factory.BeanFactory;
import  org.springframework.beans.factory.access.BeanFactoryLocator;
import  org.springframework.beans.factory.access.BeanFactoryReference;
import  org.springframework.beans.factory.access.SingletonBeanFactoryLocator;

public   final   class  ServiceFactory
{
    
private   static  BeanFactoryLocator bfLocator  =   null ;
    
private   static  BeanFactoryReference bfReference  =   null ;
    
private   static  BeanFactory factory  =   null ;
    
static
    {
        bfLocator 
=  SingletonBeanFactoryLocator.getInstance();
        bfReference 
=  bfLocator.useBeanFactory( " beanFactory " );
        factory 
=  bfReference.getFactory();
    }

    
private  ServiceFactory()
    {
        
super ();
    }

    
public   static  Object getBeanByName( final  String beanName)
    {
        
return  factory.getBean(beanName);
    }
}

SpringDemoConstructor.java

public   class  SpringDemoConstructor  implements  ISpringDemo
{
    
private  String hello;
    
private  IHelloWorld helloWorld;

    
public  SpringDemoConstructor(String hello)
    {
        
this .hello  =  hello;
    }

    
public  String getHello()
    {
        
return  hello;
    }

    
public  IHelloWorld getHelloWorld()
    {
        
return  helloWorld;
    }

    
public   void  setHelloWorld(IHelloWorld helloWorld)
    {
        
this .helloWorld  =  helloWorld;
    }
}

SpringDemoSetter.java

public   class  SpringDemoSetter  implements  ISpringDemo
{
    
private  String hello;
    
private  IHelloWorld helloWorld;

    
public  String getHello()
    {
        
return  hello;
    }

    
public   void  setHello(String hello)
    {
        
this .hello  =  hello;
    }

    
public  IHelloWorld getHelloWorld()
    {
        
return  helloWorld;
    }

    
public   void  setHelloWorld(IHelloWorld helloWorld)
    {
        
this .helloWorld  =  helloWorld;
    }
}


SpringIDETest.java

import  junit.framework.TestCase;

public   class  SpringIDETest  extends  TestCase
{
    
private  IHelloWorld helloWorld  =   null ;
    
private  ISpringDemo springDemo  =   null ;
    
private   final   static  String hello1  =   " Hello World HelloWorld1 " ;
    
private   final   static  String hello2  =   " Hello World HelloWorld2 " ;
    
private   final   static  String helloset  =   " Spring IDE Setter " ;
    
private   final   static  String hellocon  =   " Spring IDE Constructor " ;

    
public   void  testSpringBeans()
    {
        helloWorld 
=  (IHelloWorld) ServiceFactory.getBeanByName( " helloWorld1 " );
        assertEquals(hello1, helloWorld.sayHelloWorld());
        helloWorld 
=  (IHelloWorld) ServiceFactory.getBeanByName( " helloWorld2 " );
        assertEquals(hello2, helloWorld.sayHelloWorld());
    }

    
public   void  testIoCConstructor()
    {
        
//  Constructor
        springDemo  =  (ISpringDemo) ServiceFactory
                .getBeanByName(
" springDemoConstructor " );
        assertEquals(hellocon, springDemo.getHello());
        assertEquals(hello1, springDemo.getHelloWorld().sayHelloWorld());
    }

    
public   void  testIoCSetter()
    {
        
//  Setter
        springDemo  =  (ISpringDemo) ServiceFactory
                .getBeanByName(
" springDemoSetter " );
        assertEquals(helloset, springDemo.getHello());
        assertEquals(hello2, springDemo.getHelloWorld().sayHelloWorld());
    }
}




鼠标右点击OopsSpringFramework,选择 Add Spring Project Nature


 

打开Spring Explorer窗口

 

 

 



SpringExplorer里面右选择项目,properties.



选择
Beans Support,Add xml



 

之后得到以下内容


 

选择Config SetsNew,输入以下内容

 

之后Spring-Explorer出现以下内容



右键点击项目,选择Run as.. JUnit …

 


完成!


你可能感兴趣的:(Oops! Spring Framework Quick Start! (eclipse europa + tomcat 5.5+spring 2.06+lomboz S3.3RC1))