第4篇:Spring Hello World 實(shí)例

Hello World 實(shí)例

讓我們使用 Spring 框架開始實(shí)際的編程。在你開始使用 Spring 框架編寫第一個(gè)例子之前,你必須確保已經(jīng)正確地設(shè)置了 Spring 環(huán)境,正如在?Spring——環(huán)境設(shè)置?教程中如所說的泊愧。假設(shè)你有了解一些有關(guān) Eclipse IDE 工作的知識(shí)铺呵。

因此缎谷,讓我們繼續(xù)編寫一個(gè)簡單的 Spring 應(yīng)用程序稍味,它將根據(jù)在 Spring Beans 配置文件中配置的信息輸出 “Hello World废麻!” 或其他信息。

第 1 步:創(chuàng)建 Java 項(xiàng)目

第一步是使用 Eclipse IDE 創(chuàng)建一個(gè)簡單的 Java 項(xiàng)目模庐。按照選項(xiàng)?File -> New -> Project烛愧,最后從向?qū)Я斜碇羞x擇?Java Project?向?qū)А,F(xiàn)在掂碱,使用向?qū)Т翱趯⒛愕捻?xiàng)目命名為?HelloSpring怜姿,如下所示:

一旦你的項(xiàng)目創(chuàng)建成功后,將在?Project Explorer?看到下面的內(nèi)容:

第 2 步:添加必需的庫

第二步讓我們添加 Spring 框架和通用的日志 API 庫到我們的項(xiàng)目中疼燥。為了做到這個(gè)沧卢,在你的項(xiàng)目名稱?HelloSpring?上單擊右鍵,然后在快捷菜單上按照下面可用的選項(xiàng):Build Path -> Configure Build Path?顯示 Java 構(gòu)建路徑窗口醉者,如下所示:

現(xiàn)在但狭,在?Libraries?標(biāo)簽中使用可用的?Add External JARs?按鈕,添加從 Spring 框架和通用日志安裝目錄下面的核心 JAR 文件:

commons-logging-1.1.1

spring-aop-4.1.6.RELEASE

spring-aspects-4.1.6.RELEASE

spring-beans-4.1.6.RELEASE

spring-context-4.1.6.RELEASE

spring-context-support-4.1.6.RELEASE

spring-core-4.1.6.RELEASE

spring-expression-4.1.6.RELEASE

spring-instrument-4.1.6.RELEASE

spring-instrument-tomcat-4.1.6.RELEASE

spring-jdbc-4.1.6.RELEASE

spring-jms-4.1.6.RELEASE

spring-messaging-4.1.6.RELEASE

spring-orm-4.1.6.RELEASE

spring-oxm-4.1.6.RELEASE

spring-test-4.1.6.RELEASE

spring-tx-4.1.6.RELEASE

spring-web-4.1.6.RELEASE

spring-webmvc-4.1.6.RELEASE

spring-webmvc-portlet-4.1.6.RELEASE

spring-websocket-4.1.6.RELEASE

第 3 步:創(chuàng)建源文件

現(xiàn)在讓我們?cè)?HelloSpring?項(xiàng)目下創(chuàng)建實(shí)際的源文件撬即。首先立磁,我們需要?jiǎng)?chuàng)建一個(gè)名為?com.tutorialspoint?的包。在 package explore 區(qū)域中的?src?上點(diǎn)擊右鍵剥槐,并按照選項(xiàng):New -> Package唱歧。

接下來,我們?cè)诎?com.tutorialspoint 下創(chuàng)建?HelloWorld.java?和?MainApp.java?文件才沧。

這里是?HelloWorld.java?文件的內(nèi)容:

packagecom.tutorialspoint;publicclass HelloWorld {privateString message;public void setMessage(String message){this.message? = message;? }public void getMessage(){? ? ? System.out.println("Your Message : "+ message);? }}

下面是第二個(gè)文件?MainApp.java?的內(nèi)容:

packagecom.tutorialspoint;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclass MainApp {public static void main(String[] args) {? ? ? ApplicationContext context =newClassPathXmlApplicationContext("Beans.xml");? ? ? HelloWorld obj = (HelloWorld) context.getBean("helloWorld");? ? ? obj.getMessage();? }}

關(guān)于主要程序有以下兩個(gè)要點(diǎn)需要注意:

第一步是我們使用框架 API?ClassPathXmlApplicationContext()?來創(chuàng)建應(yīng)用程序的上下文迈喉。這個(gè) API 加載 beans 的配置文件并最終基于所提供的 API,它處理創(chuàng)建并初始化所有的對(duì)象温圆,即在配置文件中提到的 beans挨摸。

第二步是使用已創(chuàng)建的上下文的?getBean()?方法來獲得所需的 bean。這個(gè)方法使用 bean 的 ID 返回一個(gè)最終可以轉(zhuǎn)換為實(shí)際對(duì)象的通用對(duì)象岁歉。一旦有了對(duì)象得运,你就可以使用這個(gè)對(duì)象調(diào)用任何類的方法。

第 4 步:創(chuàng)建 bean 的配置文件

你需要?jiǎng)?chuàng)建一個(gè) Bean 的配置文件锅移,該文件是一個(gè) XML 文件熔掺,并且作為粘合 bean 的粘合劑即類。這個(gè)文件需要在?src?目錄下創(chuàng)建非剃,如下圖所示:

通常開發(fā)人員保存該文件的名稱為?Beans.xml?文件置逻,當(dāng)然你也可以設(shè)置成任何你喜歡的名稱。但是你必須確保這個(gè)文件在 CLASSPATH 中是可用的备绽,并在主應(yīng)用程序中使用相同的名稱券坞,而在 MainApp.java 文件中創(chuàng)建應(yīng)用程序的上下文鬓催。

Beans.xml 用于給不同的 bean 分配唯一的 ID,并且控制不同值的對(duì)象的創(chuàng)建恨锚,而不會(huì)影響 Spring 的任何源文件宇驾。例如,使用下面的文件猴伶,你可以為 “message” 變量傳遞任何值课舍,因此你就可以輸出信息的不同值,而不會(huì)影響的 HelloWorld.java和MainApp.java 文件他挎。讓我們來看看它是如何工作的:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"? ? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"? ? xsi:schemaLocation="http://www.springframework.org/schema/beans

? ? http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="helloWorld" class="com.tutorialspoint.HelloWorld"><property name="message" value="Hello World!"/></bean></beans>

當(dāng) Spring 應(yīng)用程序被加載到內(nèi)存中時(shí)筝尾,框架利用了上面的配置文件來創(chuàng)建所有已經(jīng)定義的 beans,并且按照標(biāo)簽的定義為它們分配一個(gè)唯一的 ID办桨。你可以使用標(biāo)簽來傳遞在創(chuàng)建對(duì)象時(shí)使用不同變量的值忿等。

第 5 步:運(yùn)行程序

一旦你完成了創(chuàng)建源代碼和 bean 的配置文件后,就可以準(zhǔn)備編譯和運(yùn)行你的程序了崔挖。為了做到這個(gè)贸街,請(qǐng)保持 MainApp.Java 文件標(biāo)簽是有效的,并且在 Eclipse IDE 中使用可用的 Run 選項(xiàng)狸相,或使用?Ctrl + F11?編譯并運(yùn)行你的應(yīng)用程序?MainApp薛匪。如果你的應(yīng)用程序一切都正常,將在 Eclipse IDE 控制臺(tái)打印以下信息:

YourMessage : Hello World!

恭喜你脓鹃,你已經(jīng)成功地創(chuàng)建了你的第一個(gè) Spring 應(yīng)用程序逸尖。通過更改 “message” 屬性的值并且保持兩個(gè)源文件不變,你可以看到上述 Spring 應(yīng)用程序的靈活性瘸右。下一步娇跟,我們開始在接下來的幾個(gè)章節(jié)中做一些更有趣的事情。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苞俘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子龄章,更是在濱河造成了極大的恐慌吃谣,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做裙,死亡現(xiàn)場(chǎng)離奇詭異岗憋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锚贱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門仔戈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事监徘『凡” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵耐量,是天一觀的道長。 經(jīng)常有香客問我滤港,道長廊蜒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任溅漾,我火速辦了婚禮山叮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘添履。我一直安慰自己屁倔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布暮胧。 她就那樣靜靜地躺著锐借,像睡著了一般。 火紅的嫁衣襯著肌膚如雪往衷。 梳的紋絲不亂的頭發(fā)上钞翔,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音席舍,去河邊找鬼布轿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛来颤,可吹牛的內(nèi)容都是我干的汰扭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼福铅,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼萝毛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滑黔,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤珊泳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拷沸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體色查,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年撞芍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秧了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡序无,死狀恐怖验毡,靈堂內(nèi)的尸體忽然破棺而出衡创,到底是詐尸還是另有隱情,我是刑警寧澤晶通,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布璃氢,位于F島的核電站,受9級(jí)特大地震影響狮辽,放射性物質(zhì)發(fā)生泄漏一也。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一喉脖、第九天 我趴在偏房一處隱蔽的房頂上張望椰苟。 院中可真熱鬧,春花似錦树叽、人聲如沸舆蝴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洁仗。三九已至,卻和暖如春性锭,著一層夾襖步出監(jiān)牢的瞬間京痢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工篷店, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祭椰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓疲陕,卻偏偏與公主長得像方淤,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蹄殃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355