2009年12月17日 星期四

Spring單元測試一點筆記

前一陣子去參加OSSF的Annotation講座
裡面有提到JUnit4作單元測試

下面一個參考網站
http://liyiye.javaeye.com/blog/443239

以往作單元測試的時候都必須去繼承TestCase類別
這無疑阻礙了測試程式的設計,但是使用Annotation為基礎作Unit test的話
不只函式名稱不用被綁死,在設計上也更簡單


2009年12月14日 星期一

[Java]Java呼叫C/C++ DLL

接續上一篇,這一陣子要寫可以動態連結的程式,其實我最先開始想到的就是用windows的DLL(Dynamic-link library )或是Linux的SO(Shared Object)

一來這樣速度快二來這樣子也有個更新的彈性,只是這樣一來可能就無法實現跨平台的優點。
在Java有提供JNI來實驗呼叫c\c++的dll功能

放幾個我參考的網站

一般來說會先寫個.java檔去產生Header。假設今天我一隻程式叫Hello.java
那我可以寫一個批次檔(.bat)去幫我產生要用的header

makeHeader.bat

javac Hello.java
javah -jni Hello
@pause

其中javah這個指令就是用來產生JNI Header,之後產生一個標頭檔叫Hello.h
寫一個.c或是.cpp去實作他產生DLL之後就可以給Java呼叫
不過老實說這樣很不方便,萬一Hello.java要增加新函式就會變得很不方便
因此我會比較建議用JNA+CDT的方式去做,如果要用Windows+Eclipse去開發C++的話,有兩個套件要先裝起來,一個是MinGW,另一個則是CDT


[Java]URLClassLoader運用上的一點筆記

這一陣子接了一個case必須要撈一些網站的資料
由於這是必須多人maintain 的一個系統,要防止對方網頁改版而撈不到資料
因此我想到了Java的dynamic binding功能

在Java原生支援dynamic binding,而他主要又分成Implicit(隱式)explicit(顯式)兩大類

參考資料:http://www.yuloo.com/news/2008-08-27/112873.html