Javaコードの作成(2)
今回はデータベースの代わりにProductデータを保存するクラスを作成します。EclipseのProject Explorerからdemoパッケージを右クリックし、New→Classを選択します。

New Java Class画面で、NameにProductStoreを入力し、Superclassにjava.util.ArrayList<Product>を入力して、Finishボタンを押下します。
作成されたファイルProductStoreを以下のように修正します。@Componentを付与し、Spring上でBean id:storeとして管理されるようにします。
package demo;
import java.util.ArrayList;
import org.springframework.stereotype.Component;
@Component("store")
public class ProductStore extends ArrayList<Product> {
private static final long serialVersionUID = -2656699492233321360L;
}
サービスクラスとして、インターフェースProductServiceと実装クラスProductServiceImplを作成します。EclipseのProject Explorerからdemoパッケージを右クリックし、New→Interfaceを選択します。

nameをProductServiceにしてFinishを押下すると、ProductService.javaファイルが作成されますので、以下のように編集します。
package demo;
public interface ProductService {
/* Product登録メソッド */
public void regiseterProduct(Product product);
/* Product取得メソッド */
public Product[] getProducts();
}
次に、ProductServiceの実装クラスであるProductServiceImplを作成します。EclipseのProject Explorerからdemoパッケージを右クリックし、New→Classを選択します。

nameをProductServiceImplにしてFinishを押下すると、ProductServiceImpl.javaファイルが作成されますので、以下のように編集します(Springに自動的に登録させるため、@Serviceアノテーションを付与します。また、@RemoteServiceアノテーションはCurl ORBのセキュリティ制御のために付与します)。
package demo;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.curlap.orb.security.RemoteService;
@RemoteService /* Curl ORBアクセス制御アノテーション */
@Service("productService") /* Springサービスアノテーション */
public class ProductServiceImpl implements ProductService {
/* ProductStoreをインジェクト */
@Resource
private ProductStore store;
public void regiseterProduct(Product product) {
store.add(product);
}
public Product[] getProducts() {
return store.toArray(new Product[]{});
}
}
これで、外部に公開するサービス:ProductService(実装クラス:ProductServiceImpl)とデータクラス:Product、仮データベース:ProdctStoreが作成されました。この時点でTomcatサーバを起動します。

上記画面で、Tomcatサーバを起動します。
ここまでの説明ではJavaが主体でしたので、まだCurlは関係ありません。次ページ以降でCurl部分について実装していきます。

