2

私はWeldを初めて使用し、その概念に頭を悩ませようとしています。私はSpringの経験が少しあり、Guiceの経験はないので、DIフレームワークの初心者です。

これはCDIを紹介するチュートリアルですが、Webアプリのコンテキストです。これがJavaSEだけでどのように機能するかを知りたいです。次のクラスを作成しましたが、Java SEアプリでDefaultItemDaoクラス(またはその他の代替)を使用してItemProcessorのexecuteメソッドをテストする方法がわかりません。

クラスは次のとおりです。

public class Item {
    private int value;
    private int limit;

    public Item(int v, int l) {
        value = v;
        limit = l;
    }

    public int getValue() {
        return value;
    }
    public void setValue(int value) {
        this.value = value;
    }
    public int getLimit() {
        return limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    @Override
    public String toString() {
        return "Item [value=" + value + ", limit=" + limit + "]";
    }
}


import java.util.List;

public interface ItemDao {
    List<Item> fetchItems();
}

import java.util.ArrayList;
import java.util.List;

public class DefaultItemDao implements ItemDao {

@Override
public List<Item> fetchItems() {
    List<Item> results = new ArrayList<Item>(){{
        add(new Item(1,2));
        add(new Item(2,3));
    }};
    return results;
}

}


import java.util.List;

import javax.inject.Inject;

public class ItemProcessor {
@Inject
private ItemDao itemDao;

public void execute() {
    List<Item> items = itemDao.fetchItems();
    for (Item item : items) {
        System.out.println("Found item: "+item);
    }
}
}

また、ItemProcessorクラスのテストクライアントを作成する方法がわかりません。誰かがCDIで書く方法を理解するのを手伝ってもらえますか?

ありがとう、クマール

4

1 に答える 1