網路中提供Spring教程比較少,稍微好一點的資料有幾百頁,對於初學者的膽量是一大考驗,所以本文的初衷就是讓你最簡單的入手Spring,但是Spring的用途以及簡介在本文不再給出,本文主要介紹如何讓初學者儘快的使用到Spring帶給我們的便利。網友在看完本文後,一定可以第一時間學會如何用Spring架構簡單的Hello World程式。
一、檔案下載
本文建立的項目最低需要架包有spring.jar、log4j-1.2.14.jar、commons-logging-1.1.jar。網友可以到相應的官方網站下載。
Spring官網:http://www.springsource.org/
log4j官網:http://logging.apache.org/log4j/
二、建立項目
1、直接在Eclipse IDE中的File->New->Project,命名為Spring
2、引入三個架包:具體怎麼引入的方法,用過Eclipse的都知道,所以不再提出。
3、建立幾個包以及檔案用於測試,項目的結構1所示。
圖1 項目結構
三、代碼解析
1、介面Action.java
package net.rocket.spring.qs;</p><p>public interface Action {</p><p>public String execute(String str);<br />}<br />
2、繼承類:LowerAction.java以及UpperAction.java
package net.rocket.spring.qs;</p><p>public class LowerAction {</p><p>private String message;</p><p>public void setMessage(String message)<br />{<br />this.message=message;<br />}<br />public String getMessage()<br />{<br />return this.message;<br />}<br />public String execute(String str)<br />{<br />return (getMessage()+str).toLowerCase();<br />}</p><p>}<br />
UpperAction.java
package net.rocket.spring.qs;</p><p>public class UpperAction implements Action{</p><p>private String message;</p><p>public void setMessage(String message)<br />{<br />this.message=message;<br />}<br />public String getMessage()<br />{<br />return this.message;<br />}<br />public String execute(String str)<br />{<br />return (getMessage()+str).toUpperCase();<br />}<br />}<br />
3、測試類別,主函數所在的類testQuickStart.java
package test;<br />import net.rocket.spring.qs.*;<br />import org.springframework.context.ApplicationContext;<br />import org.springframework.context.support.FileSystemXmlApplicationContext;</p><p>public class testQuickStart {<br />public static void main(String args[]){</p><p>ApplicationContext ctx=new FileSystemXmlApplicationContext("bean.xml");<br />Action action=(Action)ctx.getBean("TheAction");<br />System.out.println(action.execute("Rod Jonson"));<br />}<br />}<br />
4、bean.xml:位置處於Spring/bean.xml,這個相當重要,否則會報錯
<?xml version="1.0" encoding="utf-8"?><br /><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"><br /><beans><br /> <description> Spring Quick Start </description><br /> <bean id="TheAction" class="net.rocket.spring.qs.UpperAction"><br /> <property name="message"><br /> <value>HelLo</value><br /> </property><br /> </bean><br /></beans>
5、為了在調試中能觀察到Spring的日誌輸出,在ClASSPaTH中建立log4j.properties檔案,該檔案位於Spring/src/下
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!<br /># For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.<br />log4j.rootLogger=DEBUG, stdout</p><p>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n<br />
四、測試回合
1、運行Main函數所在的類,即可在Console中看到輸出的結果
2009-05-22 17:17:30,390 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'TheAction'
HELLOROD JONSON
五、異常處理以及小結
在調試過程中,我出現的一個異常錯誤如下,希望大家在遇到相同的情況也可以解決:
(1) bean.xml檔案格式錯誤:http://xc403367041.blog.163.com/blog/static/40442622200810325751618/
(2) 架包忘記匯入:本文開始說的三個包都不能夠少,否則會出錯
(3) spring版本問題:本文所測試的版本是Spring 2.0,如果使用者使用的是其他版本,請自己更改命名空間。
至此,你可以自己在Spring的協助下自己建立類和方法了,也初次體會到了分層帶來的便利。