- 相關(guān)推薦
Java中的Spring入門實(shí)例
引導(dǎo)語:大家知道Java中Spring是什么嗎,讓百分網(wǎng)小編告訴你們吧,以下是百分網(wǎng)小編分享給大家的Java中的Spring入門實(shí)例,希望大家喜歡!
1.Spring是什么
網(wǎng)上對Spring以及使用Spring的好處的解釋鋪天蓋地,常常是各個網(wǎng)站之間互相拷貝,而且還引入了一堆的縮寫,什么IoC、AOP……
我覺得對跟我一樣的初學(xué)者而言,可以這么理解:Spring是基于反射機(jī)制寫的一些包,有了它以后你可以將類的實(shí)例化寫到一個配置文件里,由相應(yīng)的Spring包負(fù)責(zé)實(shí)例化。
假設(shè)你有一個類A,以前你實(shí)例化時要寫A a = new A(),現(xiàn)在不用了,你只要寫一個xml文件,并按Spring指定的格式配置好,它就能通過反射機(jī)制將A的實(shí)例返回給你。
至于使用Spring的好處,我會在下面的實(shí)例中提到。
2. 下載Spring
我第一次下載的是with-docs.zip,覺得解壓后看了一下,Spring自身的jar應(yīng)該是都有了,不過在后面的程序編譯時出現(xiàn):
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
沒有找到相關(guān)的jar包,后來嘗試下載dependencies.zip并在里面找到了com.springsource.org.apache.commons.logging-1.1.1.jar包。
總而言之,我也不知道它們這些release包是怎么組織起來的,汗。
3. 編寫示例
示例包含一個接口IProgrammingLanguage,用于表示編程語言,兩個類JavaLanguage跟PerlLanguage實(shí)現(xiàn)該接口用于表示特定的編程語言Java跟Perl。
另外有一個Developer類,用于表示IT開發(fā)者。最后,是程序入口所在的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() {
// TODO Auto-generated method stub
return "Perl";
}
}
3.4.Developer.java
(這個類用于描述一個開發(fā)人員,它包含一個IProgrammingLanguage類型的成員,用于表示該開發(fā)人員所使用的編程語言。在 Eclipse中選中該成員,右鍵—Source—Generate Getters and Setters…則可以自動生成相應(yīng)的get、set方法,一開始我并沒有去生成這些,但在運(yùn)行時出錯,提示缺少get、set方法。)
代碼
package example;
public class Developer {
public IProgrammingLanguage language;
/**
* @return the language
*/
public IProgrammingLanguage getLanguage() {
return language;
}
/**
* @param language the language to set
*/
public void setLanguage(IProgrammingLanguage language) {
this.language = language;
}
public String getCurrentUsingLanguage() {
return language.whoAmI();
}
}
3.5.添加引用
org.springframework.core-3.0.2.RELEASE.jar
org.springframework.beans-3.0.2.RELEASE.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
3.6.hellospringworld.xml
代碼
3.7.Main.java
代碼
package example;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Resource r = new FileSystemResource("hellospringworld.xml");
BeanFactory f = new XmlBeanFactory(r);
Developer d = (Developer) f.getBean("DeveloperBean");
String s = d.getCurrentUsingLanguage();
System.out.println("The developer is currently using: "+s);
}
}
運(yùn)行此程序可以看到輸出是:
The developer is currently using: Perl
現(xiàn)在,假設(shè)有一天這個Developer不使用Perl而改用Java了,我們需要做什么?我們并不需要改程序,只需要修改xml文件就行了。
【Java中的Spring入門實(shí)例】相關(guān)文章:
Java中synchronized的使用實(shí)例05-31
講解Java的Spring框架中的AOP實(shí)現(xiàn)10-30
Java中Websocket使用實(shí)例解析08-11
解析Java中如何獲取Spring中配置的bean10-19
java中spring的幾個重要類和接口09-10
Java中的MessageFormat.format用法實(shí)例10-23
java中通用的線程池實(shí)例代碼08-27