本文介紹如何利用Eclipse插件Spring IDE在Eclipse中的使用。
Eclipse是目前非常流行的開發平台,開放擴充的架構讓很多程式員找到了自己個性化的工作環境。
問題提出:
在采用Spring架構進行系統開發時,Bean的配置檔案XML的書寫、XML檔案的内容校驗及Bean之間的依賴關系檢視等工作,如果能夠采用合适的工具來完成,會成倍提高開發效率。
解決方法:
Spring IDE是Spring官方網站推薦的Eclipse插件,可提供在開發Spring時對Bean定義檔案進行驗證并以可視化的方式檢視各個Bean之間的依賴關系等。
同時,建議結合Eclipse XMLBuddy插件進行XML檔案編輯與校驗,是個不錯的選擇。
安裝說明
JDK:1.5.0 從[url]http://java.sun.com[/url]上去下載下傳安裝
Eclipse:3.1.2 從[url]http://www.eclipse.org[/url] 上去下載下傳解壓
Spring 1.2.8 從[url]http://www.springframework.org[/url] 上去下載下傳解壓
Spring IDE 1.3.2 從[url]http://springide.org[/url] 上去下載下傳
XMLBuddy 2.0.72 從[url]http://www.xmlbuddy.com/[/url] 上去下載下傳
Spring IDE 1.3.2 Update位址為:[url]http://springide.org/updatesite/[/url]
管理技巧
==================================Eclipse使用技巧之插件管理
提示:新下載下傳的插件PlugIn一定不要都放在原始的Eclipse目錄下去,一大堆,累死你:(
- 前提是你已經下載下傳解壓并設定好Eclipse工具,比如解壓在E:\OpenSource\Eclipse\目錄下,以下這個目錄以%ECLIPSE_HOME%來進行表示;
- 此時預設的插件是在%ECLIPSE_HOME%\plugins目錄中的;
-
在%ECLIPSE_HOME%下建立一個PlugInsNew的目錄;
比如:E:\OpenSource\Eclipse\PlugInsNew
-
如果你下載下傳了一個新的插件,比如叫做:XYZ
那麼就在%ECLIPSE_HOME%\PlugInsNew\目錄下建立XYZ目錄,目錄裡面是eclipse目錄,eclipse目錄包含有features與plugins兩個子目錄;結構如下圖所示:
Eclipse插件之Spring IDE(附帶:Eclipse使用技巧之插件管理)==================================Eclipse使用技巧之插件管理 -
把下載下傳的新插件的檔案放在以下相應目錄中;
%ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
%ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
-
建立相關的.link的檔案;
然後在%ECLIPSE_HOME%\links目錄裡建立一個XYZ.link的檔案
内容如是:
path=E:/OpenSource/Eclipse/PlugInsNew/XYZ
就一行這樣的路徑訓示而已。
這樣,如果你下載下傳了多個插件就可以如法炮制建立多個Link檔案,想加載哪個插件就把哪個插件的Link檔案放到%ECLIPSE_HOME%\links的目錄中即可,使用與管理都很友善,建議千萬不要放在預設的安裝目錄中,這樣對于更新Eclipse主程式也友善一些;當然如果你喜歡用Find and Install…進行安裝的話也可以的;
如果上面你的%ECLIPSE_HOME%與此不同,請修改XYZ.link檔案裡的路徑。
-
删除插件,先關閉Eclipse;
删除%ECLIPSE_HOME%\links\XYZ.link檔案即可
删除%ECLIPSE_HOME%\PlugInsNew\XYZ整個目錄及檔案
- 重新啟動Eclipse,這樣就可以了。如果插件沒有生效或者沒有删除,請加上-clean進行啟動Eclipse,即Eclipse.exe –clean
- 插件安裝驗證及記錄詳見:Eclipse的workspace下面的.metadata\.log檔案,比如:%ECLIPSE_HOME%\workspace\.metadata\.log檔案,有問題的話,打開這個檔案看看并進行解決。
确認安裝
此插件安裝方法采用上一節的《Eclipse使用技巧之插件管理》
重新啟動Eclipse後,在Help è About Eclipse SDK è Plug-in Details你可以看到由“Spring IDE Developer”提供的“Spring IDE”版本為“1.3.2”插件及相關的Graph、UI及UI Search插件,如下圖所示:
==================================
相關要求
注意:為了讓Spring IDE插件能夠顯示可視化的Bean結構圖形及Bean之間的依賴關系,需要Eclipse GEF(Graphical Editing Framework)的支援,自己下載下傳并解壓安裝,安裝技巧同上《Eclipse使用技巧之插件管理》。
Spring 1.2系列目前最新的穩定版本為1.2.8,下載下傳時可以選擇包含Spring所依賴的一些開源包的檔案spring-framework-1.2.8-with-dependencies.zip,如果你已經清楚并有了Spring所依賴的相關開源包,就單獨下載下傳spring-framework-1.2.8.zip即可。建議下載下傳前者。
解壓後目錄結構及包的說明如下:
dist目錄下是Spring的釋出包,關于釋出包下面會詳細進行說明;
docs目錄下是相關的文檔,包括有Spring api的javadoc、reference參考指南、Spring的taglib标簽使用檔案及Spring MVC的MVC-step-by-step講解與示例;
lib目錄下是Spring所依賴的第三方開源包;
mock目錄下是Spring輔助應用測試的Mock源程式;
samples目錄下是Spring的示例源程式及簡單的webapp示例架構的示例配置,值得好好學習的有jpetstore及petclinic,當然其它的countries、p_w_picpathdb、tiles-example也可以好好參考一下;
src目錄下是Spring的源程式;
test目錄下Spring的單元測試源程式;
tiger目錄下是Java 1.5 Tiger方面的相關及測試源程式。
Spring包結構說明
接下來詳細說說dist目錄下jar包的相關内容
spring.jar是包含有完整釋出的單個jar包,spring.jar中除了spring-mock.jar裡所包含的内容外其它所有jar包的内容,因為隻有在開發環境下才會用到spring-mock.jar來進行輔助測試,正式應用系統中是用不得這些類的。
除了spring.jar檔案,Spring還包括有其它13個獨立的jar包,各自包含着對應的Spring元件,使用者可以根據自己的需要來選擇組合自己的jar包,而不必引入整個spring.jar的所有類檔案。
spring-core.jar
這個jar檔案包含Spring架構基本的核心工具類,Spring其它元件要都要使用到這個包裡的類,是其它元件的基本核心,當然你也可以在自己的應用系統中使用這些工具類。
spring-beans.jar
這個jar檔案是所有應用都要用到的,它包含通路配置檔案、建立和管理bean以及進行Inversion of Control / Dependency Injection(IoC/DI)操作相關的所有類。如果應用隻需基本的IoC/DI支援,引入spring-core.jar及spring-beans.jar檔案就可以了。
spring-aop.jar
這個jar檔案包含在應用中使用Spring的AOP特性時所需的類。使用基于AOP的Spring特性,如聲明型事務管理(Declarative Transaction Management),也要在應用裡包含這個jar包。
spring-context.jar
這個jar檔案為Spring核心提供了大量擴充。可以找到使用Spring ApplicationContext特性時所需的全部類,JDNI所需的全部類,UI方面的用來與模闆(Templating)引擎如Velocity、FreeMarker、JasperReports內建的類,以及校驗Validation方面的相關類。
spring-dao.jar
這個jar檔案包含Spring DAO、Spring Transaction進行資料通路的所有類。為了使用聲明型事務支援,還需在自己的應用裡包含spring-aop.jar。
spring-hibernate.jar
這個jar檔案包含Spring對Hibernate 2及Hibernate 3進行封裝的所有類。
spring-jdbc.jar
這個jar檔案包含對Spring對JDBC資料通路進行封裝的所有類。
spring-orm.jar
這個jar檔案包含Spring對DAO特性集進行了擴充,使其支援 iBATIS、JDO、OJB、TopLink,因為Hibernate已經獨立成包了,現在不包含在這個包裡了。這個jar檔案裡大部分的類都要依賴spring-dao.jar裡的類,用這個包時你需要同時包含spring-dao.jar包。
spring-remoting.jar
這個jar檔案包含支援EJB、JMS、遠端調用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的類。
spring-support.jar
這個jar檔案包含支援緩存Cache(ehcache)、JCA、JMX、郵件服務(Java Mail、COS Mail)、任務計劃Scheduling(Timer、Quartz)方面的類。
spring-web.jar
這個jar檔案包含Web應用開發時,用到Spring架構時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF內建類、檔案上傳的支援類、Filter類和大量工具輔助類。
spring-webmvc.jar
這個jar檔案包含Spring MVC架構相關的所有類。包含國際化、标簽、Theme、視圖展現的FreeMarker、JasperReports、Tiles、Velocity、XSLT相關類。當然,如果你的應用使用了獨立的MVC架構,則無需這個JAR檔案裡的任何類。
spring-mock.jar
這個jar檔案包含Spring一整套mock類來輔助應用的測試。Spring測試套件使用了其中大量mock類,這樣測試就更加簡單。模拟HttpServletRequest和HttpServletResponse類在Web應用單元測試是很友善的。
如何選擇這些釋出包,決定選用哪些釋出包其實相當簡單。如果你正在建構Web應用并将全程使用Spring,那麼最好就使用單個全部的spring.jar檔案;如果你的應用僅僅用到簡單的Inversion of Control / Dependency Injection(IoC/DI)容器,那麼隻需spring-core.jar與spring-beans.jar即可;如果你對釋出的大小要求很高,那麼就得精挑細選了,隻取包含自己所需特性的jar檔案了。采用獨立的釋出包你可以避免包含自己的應用不需要的全部類。當然你可以采用其它的一些工具來設法令整個應用包變小,節省空間的重點在于準确地找出自己所需的Spring依賴類,然後合并所需的類與包就可以了。Eclispe有個插件叫ClassPath Helper可以幫你找找所依賴的類。
Spring包依賴說明
spring-core.jar需commons-collections.jar,spring-core.jar是以下其它各個的基本。
spring-beans.jar需spring-core.jar/cglib-nodep-2.1_3.jar
spring-aop.jar需spring-core.jar/spring-beans.jar/cglib-nodep-2.1_3.jar/aopalliance.jar
spring-context.jar需
spring-core.jar/spring-beans.jar/spring-aop.jar/commons-collections.jar/aopalliance.jar
spring-dao.jar需spring-core.jar/spring-beans.jar/spring-aop.jar/spring-context.jar
spring-jdbc.jar需spring-core.jar/spring-beans.jar/spring-dao.jar
spring-web.jar需spring-core.jar/spring-beans.jar/spring-context.jar
spring-webmvc.jar需spring-core.jar/spring-beans.jar/spring-context.jar/spring-web.jar
spring-hibernate.jar需
spring-core.jar/spring-beans.jar/spring-aop.jar/spring-dao.jar/spring-jdbc.jar/spring-orm.jar/spring-web.jar/spring-webmvc.jar
spring-orm.jar需
spring-core.jar/spring-beans.jar/spring-aop.jar/spring-dao.jar/spring-jdbc.jar/spring-web.jar/spring-webmvc.jar
spring-remoting.jar需
spring-core.jar/spring-beans.jar/spring-aop.jar/spring-dao.jar/spring-context.jar/spring-web.jar/spring-webmvc.jar
spring-support.jar需
spring-core.jar/spring-beans.jar/spring-aop.jar/spring-dao.jar/spring-context.jar/spring-jdbc.jar
spring-mock.jar需spring-core.jar/spring-beans.jar/spring-dao.jar/spring-context.jar/spring-jdbc.jar
插件介紹
我們簡單地建立一個示例工程,裡面包含有一個接口類與兩個實作該接口的實作類進行示範說明使用的方法。
需要引入spring.jar、commons-logging.jar、log4j.jar
單個引入需要引入spring-core.jar、spring-beans.jar、spring-context.jar
接口類:IHelloWorld.java
public interface IHelloWorld
{
String sayHelloWorld();
}
實作類一:HelloWorld1.java
public class HelloWorld1 implements IHelloWorld
{
public HelloWorld1()
{
super();
}
public String sayHelloWorld()
{
return "Hello World HelloWorld1";
}
}
實作類二:HelloWorld2.java
public class HelloWorld2 implements IHelloWorld
{
public HelloWorld2()
{
super();
}
public String sayHelloWorld()
{
return "Hello World HelloWorld2";
}
}
根據常用的三層與Spring的最佳實踐,将配置檔案分成了四個
beanRefFactory.xml負責總裝,由SingletonBeanFactoryLocator來裝入
通過ClassPathXmlApplicationContext來把其它三個子產品的檔案引入
beanRefDataAccess.xml負責DAO,與資料庫相關的bean都定義在這裡
beanRefService.xml負責Service層的bean定義
beanRefMVC.xml負責Spring MVC方面相關的bean定義等等
以下配置檔案的bean定義為示範所用,各自的内容如下:
beanRefFactory.xml的内容如下:
<xml version="1.0" encoding="UTF-8">
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="beanFactory" class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
<value>beanRefDataAccess.xml</value>
<value>beanRefService.xml</value>
<value>beanRefMVC.xml</value>
</list>
</constructor-arg>
</bean>
</beans>
beanRefDataAccess.xml的内容如下:
<xml version="1.0" encoding="UTF-8">
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloWorldDAO1" class="HelloWorld1"/>
<bean id="helloWorldDAO2" class="HelloWorld2"/>
</beans>
beanRefService.xml的内容如下:
<xml version="1.0" encoding="UTF-8">
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloWorld1" class="HelloWorld1"/>
<bean id="helloWorld2" class="HelloWorld2"/>
<bean id="springDemoConstructor" class="SpringDemoConstructor">
<constructor-arg>
<value>Spring IDE Constructor</value>
</constructor-arg>
<property name="helloWorld">
<ref bean="helloWorld1"></ref>
</property>
</bean>
<bean id="springDemoSetter" class="SpringDemoSetter">
<property name="hello" value="Spring IDE Setter"/>
<property name="helloWorld">
<ref bean="helloWorld2"></ref>
</property>
</bean>
</beans>
beanRefMVC.xml的内容如下:
<xml version="1.0" encoding="UTF-8">
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloWorldMVC1" class="HelloWorld1"/>
<bean id="helloWorldMVC2" class="HelloWorld2"/>
</beans>
右鍵項目工程:可以看到“Add Spring Project Nature”菜單,單擊它
細心的你一定可以看到項目工程SpringIDEDemo前面的圖示變成了一個S的标志,而不是原來的J,當然項目裡與Spring相關的檔案都會在圖示上顯示一個S标志。J
右鍵彈出的菜單裡就會有個“Remove Spring Project Nature”的菜單了。
你選擇這個菜單進行移除後就不能進行以下的相關操作了。
Window è Show View è Other… è 可以看到Spring IDE,打開它,如下所示,所中它并确定。
可以看到如下的視圖,右鍵工程的名稱,在彈出的Properties菜單上點選它
彈出屬性框,讓我們來添加配置檔案
确定後,可以看到剛才選擇的四個配置檔案已經在裡面了,再次确定。
在Spring Beans視圖裡展開工程後,便可以看到增加進來的四個配置檔案了。
也可以将配置檔案放到配置集合裡,如下所示:
這樣确定以後,可以看到四個檔案都屬于Service的節點下面,如下所示。
再次确定後,在Spring Beans視圖裡看到Service節點,展開它,可以看到所有配置檔案裡的bean都在這裡列出來了。
展開顯示兩個定義的bean結點,右鍵其中的一個結點,彈出四個菜點,最後一個就是上面的配置菜單,不再講解了,我們選中“Open Config File”菜單
于是就會自動打開配置檔案,并定位到bean的定義位置上面去了,如下所示,友善進行檢視與改動。
在右鍵彈出的菜單點選中“Open Bean Class”,
就會自動定位到對應的類檔案裡去了,如下所示。
在右鍵彈出的菜單點選中“Show Graph”,
就會把目前這個bean以圖形的方式顯示出來,如下所示。
但是這個示範的檔案僅是一個獨立的bean,沒有任何關聯等,下面會示範關聯等。
在Spring Beans視圖裡展開工程後,選中src/beanRefSerice.xml配置檔案,在右鍵彈出的菜單點選中“Show Graph”
就會把目前整個配置檔案的内容以bean圖形的方式顯示出來,如下所示。
以下示範bean的引用及構造注入與setter注入何關聯等,更多的操作類似了。
定義一個接口類ISpringDemo.java,有兩個方法
public interface ISpringDemo
{
IHelloWorld getHelloWorld();
String getHello();
}
實作類一SpringDemoConstructor.java,含有構造注入及setter注入
public class SpringDemoConstructor implements ISpringDemo
{
private String hello;
private IHelloWorld helloWorld;
public SpringDemoConstructor(String hello)
{
this.hello = hello;
}
public String getHello()
{
return hello;
}
public IHelloWorld getHelloWorld()
{
return helloWorld;
}
public void setHelloWorld(IHelloWorld helloWorld)
{
this.helloWorld = helloWorld;
}
}
實作類二SpringDemoSetter.java,都是setter注入
public class SpringDemoSetter implements ISpringDemo
{
private String hello;
private IHelloWorld helloWorld;
public String getHello()
{
return hello;
}
public void setHello(String hello)
{
this.hello = hello;
}
public IHelloWorld getHelloWorld()
{
return helloWorld;
}
public void setHelloWorld(IHelloWorld helloWorld)
{
this.helloWorld = helloWorld;
}
}
配置檔案beanRefService.xml增加bean定義,成為如下,紅字為新增的
<xml version="1.0" encoding="UTF-8">
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloWorld1" class="HelloWorld1"/>
<bean id="helloWorld2" class="HelloWorld2"/>
<bean id="springDemoConstructor" class="SpringDemoConstructor">
<constructor-arg>
<value>Spring IDE Constructor</value>
</constructor-arg>
<property name="helloWorld">
<ref bean="helloWorld1"></ref>
</property>
</bean>
<bean id="springDemoSetter" class="SpringDemoSetter">
<property name="hello" value="Spring IDE Setter"/>
<property name="helloWorld">
<ref bean="helloWorld2"></ref>
</property>
</bean>
</beans>
注意:
如果bean是定義在同一個檔案裡的可以用
<ref local="helloWorld2"></ref>
如果不是在同一個配置檔案裡的,要用
<ref bean="helloWorld2"></ref>
要不然會報到bean找不到!
這樣配置完成後,我們切換到“Spring Beans”視圖,在beanRefService.xml節點上右鍵打開“Show Graph”菜單,可以看到如下所示:
這時bean裡面簡單的引用關系就表現出來了。
在bean圖上右鍵,會打開三個操作菜單:
Open Java Type即定位到bean的類檔案上面;
Open Config File即定位到bean的xml配置檔案上面;
Show In Beans View即定位到“Spring Beans”的視圖裡的具體某個節點上,如下所示。
此時我們可以在配置集合的Service節點上面右鍵,選擇“Show Graph”
這樣就會顯示出所有的配置檔案集合裡的所有bean檔案及其關聯引用情況,如下圖。
帶圈的P圖示表示是屬性,即setter方法注入,帶圈的C圖示表示構造注入。箭頭表示引用關系了。J
中間一排示範用的四個bean沒有關聯引入,就光杆司令地在那裡排隊了啦J
最下面的帶圈的C後面又跟着一大排參數,表示集合類型的了。如list
Spring IDE提供錯誤檢查功能,比如我在配置檔案中輸入一個不存在的類的名稱,儲存後,就會在邊上出現紅色提示,滑鼠移上去就會出現提示資訊,如下圖所示。
當然也會有Problems視圖裡顯示相應的錯誤資訊,如下圖:
XMLBuddy
由于打開XML檔案時會根據XML檔案裡定義的DTD去網上查找相應的DTD檔案,這樣導至打開的時候會相當慢,特别是如果你的機器上不了外網的話,就更慢了。
解決的辦法有兩個:
一、在本機開啟Web服務(如Tomcat等等),并設定端口為80,然後根據DTD 的目錄結建構立相應的結構,并把DTD檔案放進去。然後在hosts檔案裡把本機的位址映射到相應的DTD指定的網站去,如:
127.0.0.1// [url]www.springframework.org[/url]
這樣打開XML檔案時就會在本機尋找DTD檔案進行驗證,速度就快很多了J
二、打開XMLBuddy插件的安裝目錄,并找到其中的cache目錄,比如:%ECLIPSE_HOME%\PlugInsNew\xmlbuddy\eclipse\plugins\com.objfac.xmleditor_2.0.72\.cache
打開meta.xml檔案,一看就知道怎麼處理了吧,如法炮制,選把DTD檔案拷貝到這個cache目錄裡,再增加内容到meta.xml裡來,比如:
<file>
<pub>-//SPRING//DTD BEAN//EN</pub>
<abs>[url]http://www.springframework.org/dtd/spring-beans.dtd</abs>[/url]
<rel>spring-beans.dtd</rel>
</file>
要增加其它的DTD檔案方法類似,不斷地增加說明與DTD檔案即可。
于是在編輯XML檔案時就會有相關的提示及錯誤提示資訊,可以減少一些書寫XML檔案時發生的低級錯誤了。
測試與運作
先建立一個Log4J的配置檔案log4j.properties,内容如下
# Set root logger level to ERROR and its only appender to R.
log4j.rootLogger = INFO,R
# R is set to be a DailyRollingFileAppender.
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = Application.log
log4j.appender.R.DatePattern = yyyy-MM-dd'.log'
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
再建立一個ServiceFactory.java靜态類,用來做單元測試友善一些
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.access.BeanFactoryLocator;
import org.springframework.beans.factory.access.BeanFactoryReference;
import org.springframework.beans.factory.access.SingletonBeanFactoryLocator;
public final class ServiceFactory
{
private static BeanFactoryLocator bfLocator = null;
private static BeanFactoryReference bfReference = null;
private static BeanFactory factory = null;
static
{
bfLocator = SingletonBeanFactoryLocator.getInstance();
bfReference = bfLocator.useBeanFactory("beanFactory");
factory = bfReference.getFactory();
}
private ServiceFactory()
{
super();
}
public static Object getBeanByName(final String beanName)
{
return factory.getBean(beanName);
}
}
做成靜态的這樣我們可以ServiceFactory .getBeanByName(“beanname”)就可以得到相應的bean了。
測試類SpringIDETest.java代碼如下:
import junit.framework.TestCase;
public class SpringIDETest extends TestCase
{
private IHelloWorld helloWorld = null;
private ISpringDemo springDemo = null;
private final static String hello1 = "Hello World HelloWorld1";
private final static String hello2 = "Hello World HelloWorld2";
private final static String helloset = "Spring IDE Setter";
private final static String hellocon = "Spring IDE Constructor";
public void testSpringBeans()
{
helloWorld = (IHelloWorld)ServiceFactory.getBeanByName("helloWorld1");
assertEquals(hello1,helloWorld.sayHelloWorld());
helloWorld = (IHelloWorld)ServiceFactory.getBeanByName("helloWorld2");
assertEquals(hello2,helloWorld.sayHelloWorld());
}
public void testIoCConstructor()
{
//Constructor
springDemo = (ISpringDemo)ServiceFactory.getBeanByName("springDemoConstructor");
assertEquals(hellocon,springDemo.getHello());
assertEquals(hello1,springDemo.getHelloWorld().sayHelloWorld());
}
public void testIoCSetter()
{
//Setter
springDemo = (ISpringDemo)ServiceFactory.getBeanByName("springDemoSetter");
assertEquals(helloset,springDemo.getHello());
assertEquals(hello2,springDemo.getHelloWorld().sayHelloWorld());
}
}
Run As JUnit Test之,綠色打勾全部通過就收工走人了。。。J
當然也可以打開Application.log檔案檢視輸出一些什麼資訊。
使用總結
此插件的功能不錯:)對于Spring這樣優雅的架構來說,再加上這個助手,真的是很美很美了,美美地喝上一杯咖啡吧。