在Java世界有一件事情需要習以爲常,就是經常會跑出一堆縮寫、概念出來,什麼Spring、Struts、Hibernate等等等等,這種情況談不上好,你得花時間熟悉;也不能說是缺點,畢竟它帶來新鮮跟樂趣。
最近稍微接觸了一些Spring的皮毛,寫了個例子,希望對初初初學者有用,高手指正。
1.Spring是什麼
網上對Spring以及使用Spring的好處的解釋鋪天蓋地,常常是各個網站之間互相拷貝,而且還引入了一堆的縮寫,什麼IoC、AOP……
我覺得對跟我一樣的初學者而言,可以這麼理解:Spring是基於反射機制寫的一些包,有了它以後你可以將類的實例化寫到一個配置文件裏,由相應的Spring包負責實例化。
假設你有一個類A,以前你實例化時要寫A a = new A(),現在不用了,你只要寫一個xml文件,並按Spring指定的格式配置好,它就能通過反射機制將A的實例返回給你。
至於使用Spring的好處,我會在下面的實例中提到。
2. 下載Spring
spring-framework-3.0.3.RELEASE-dependencies.zip |
(sha1) |
155.7 MB |
spring-framework-3.0.3.RELEASE-with-docs.zip |
(sha1) |
45.0 MB |
spring-framework-3.0.3.RELEASE.zip |
(sha1) |
21.4 MB |
我第一次下載的是with-docs.zip,覺得解壓後看了一下,Spring自身的jar應該是都有了,不過在後面的程序編譯時出現:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
沒有找到相關的jar包,後來嘗試下載dependencies.zip並在裏面找到了com.springsource.org.apache.commons.logging-1.1.1.jar包。
總而言之,我也不知道它們這些release包是怎麼組織起來的,汗。
3. 編寫示例
示例包含一個接口IProgrammingLanguage,用於表示編程語言,兩個類JavaLanguage跟PerlLanguage實現該接口用於表示特定的編程語言Java跟Perl。
另外有一個Developer類,用於表示IT開發者。最後,是程序入口所在的Main類。
3.1.接口IProgrammingLanguage.java
package example;
public interface IProgrammingLanguage {
public String whoAmI();
}
3.3.JavaLanguage.java
代碼
package example;
public class JavaLanguage implements IProgrammingLanguage {
@Override
public String whoAmI() {
// TODO Auto-generated method stub
return "Java";
}
}
3.3.PerlLanguage.java
代碼
package example;
public class PerlLanguage implements IProgrammingLanguage {
@Override
public String whoAmI(www.ttays.com) {
// TODO Auto-generated method stub
return "Perl";
}
}