posts - 32,comments - 8,trackbacks - 0

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 …

 


完成!


posted on 2007-08-30 10:11 张辰 阅读(873) 评论(0)  编辑  收藏 所属分类: Dr. Oops

只有注册用户登录后才能发表评论。


网站导航: