spring學習筆記:開始使用spring

來源:互聯網
上載者:User

這幾天終於閑下來了,回頭翻了一下以前看過的spring企業開發,發現很多知識點都忘記了。決定把spring再複習一遍,於是頭腦中迸出一個想法:把學習的進度記錄下來,和初學者一起分享spring的學習經驗。
spring的好處不用多說,無數的大中小企業都在用它。關於spring的理念一搜一大片,所以我也不想羅嗦,如果你還沒有接觸過spring, 建議先google一下以便於對spring有一個gross的瞭解。
萬事開頭難,從寫一個spring控制台程式開始;
第一步:搭配學習環境; 我在家使用的是MyEclipse6.5Integration Environment,並且MyEclipse6.5內建了jre, 所以連jre都不用安裝了。在xunlei上有下載,但是如果你也使用MyEclipse,希望你可以明白為什麼MyEclipse內建的jre可以工作。

建立一個web project, 名字就叫作springapp。

右鍵點擊springapp,察看java build path -> libraries屬性:

 

正如你所看到的,開發環境自動把jre system lib放到本項目了, 所以內建的jre可以work,不過你開始可以點擊Java Compiler來切換jre;如果你還不會安裝jdk和jre, 建議你自己安裝一個試試看。
第二步:擷取spring; 在http://www.springsource.org/download下面選擇下載最新的•Spring Framework 2.5.6.SEC01 ,建議下載spring-framework-2.5.6.SEC01-with-dependencies.zip,因為這個版本包含所有spring源碼和第三方依賴包。必要的時候察看spring源碼很重要。
解壓剛下載的spring包。這個包有幾個很重要的檔案夾, 我用紅色的標記出來。

第三步:拷貝必要的jar包; 把dist/modules下面的spring-beans,spring-context,spring-core,spring-orm, spring-jdbc, spring-web,spring-webmvc都拷貝到WebRoot/WEB-INF/lib下面;之所以拷貝這麼多jar包,是因為他們都將很快被用到, 等你有經驗之後你就知道哪些jar包都有哪些用處, 就可以隨便添加,減少了。
第四步:編寫bean定義檔案;在src根目錄下面建一個bean-test.xml,

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="myBook" class="model.Book"> <property name="id" value="000002" /> <property name="name" value="Thinking in java" /> <property name="author" value="Bruce Eckel" /> <property name="price" value="2222" /> </bean> </beans>

spring2.55 bean定義檔案的命名空間臭長臭長,不容易記住,但是也沒有必要記住,在spring解壓目錄下面有sample,在裡面找一個applicationContext.xml,把內容拷貝過來,把裡面去掉裡面配置的bean和注釋。

在src目錄下面建立一個package,叫做model,以後所有的域對象都放在這個package裡面;在裡面建立一個pojo(普通的java bean),叫作Book;並且給他一個有參建構函式和toString方法以方便測試。

package model; public class Book { private String id; private String name; private String author; private double price; public Book() {} public Book(String id, String name, String author, double price) { this.id = id; this.name = name; this.author = author; this.price = price; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String toString(){ return "id: " + id + "/nname: " + name + "/nauthor: " + author + "/nprice: " + price + "/n"; } }

然後在bean-test.xml中配置一個bean,如上面xml檔案所示,
第五步:寫第一個主程式; 叫做TestSpring.java; 我喜歡把所有的測試類別都放在一個叫做test的package裡面

package test; import model.Book; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestSpring { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("bean-test.xml"); Book book = (Book)context.getBean("myBook"); System.out.println(book.toString()); } }

運行代碼,發現拋錯,是找不到LogFactory,這是因為spring使用了apache的commons-logging包來寫日誌。在spring解壓目錄的lib/jakarta-commons下面把commons-logging, commons-dbcp, commons-io, commons-pool都拷貝到WEB-INF/lib目錄,因為剩下幾個jar也很快就會被用到。以後因為缺少jar包報錯的事情還會有很多,要隨即應變,把jar包拷貝過來即可。
現在程式可以運行了,並且列印出了book的資訊。

現在我們來分析一下這個spring控制台程式。

添加幾個jar包,寫一個設定檔,然後寫一個主程式,spring已經開始運行了,看來沒有想象中的神秘;這個程式作了這樣幾個工作:啟動一個IOC容器,ApplicationContext就是我們的IOC容器,這個容器從指定的classpath下面的設定檔中讀取bean配置,並且執行個體化他們,然後context.getBean("bean name")就可以得到想要的bean, 然後就可以使用這個bean. 這個程式與傳統的程式最大的不同,就是不再使用new來創造對象, 就是說對象之間的依賴關係不再明文寫在代碼中,而是採用設定檔來配置他們,然後由IOC容器來裝配他們,這就是spring最重要的概念之一:依賴注入.

明天將繼續講IOC容器.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.