は、私は次のような戦略を持って、私は春を使用していると言う...Strategyパターン
インタフェース
public interface MealStrategy {
cook(Meat meat);
}
まず戦略
@Component
public class BurgerStrategy implements
MealStrategy {
@Autowired CookerDao cookeryDao;
@Override
public void cook(Meat meat) {
cookeryDao.getBurger(meat);
}
}
次戦略...
@Component
public class SausageStrategy implements
MealStrategy {
@Autowired CookerDao cookeryDao;
@Override
public cook(Meat meat) {
return cookeryDao.getSausage(meat);
}
}
Cont EXT ...
@Component
@Scope("prototype")
public class MealContext {
private MealStrategy mealStrategy;
public void setMealStrategy(MealStrategy strategy) {
this.strategy = strategy;
}
public void cookMeal(Meat meat) {
mealStrategy.cook;
}
}
は今、コンテキストがコンポーネントであるべき...のように、このような状況は、MVCコントローラを介してアクセスされていた
@Autowired
private MealContext mealContext;
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody Something makeMeal(Meat meat) {
mealContext.setMealStrategy(new BurgerStrategy())
mealContext.cookMeal(meat);
}
を言うの?私がするときは、loadOnStartupというエラーが出ます。それは、あなたが期待していたように、戦略が可能なnonUniqueBeanです。すべての豆は上記のようなコンポーネントである必要がありますか、または私の注釈が間違っていますか?
私の最大の質問は、本当にSpring MVCアプリケーションのようなコンテキストを使用できますか?私が@Scope(プロトタイプ)を使用している問題は、Daoが注入されないので、戦略のcookeryDaoコールがnullポインタを返すことを意味します。
私は春を使用して上記のパターンを実装し、スレッドセーフでもありますか?私は何をしようとしていますか?
あなたの問題は何ですか?すべてこれが私のために働く – morgano
私はそれがスレッドの安全性を持っているかどうかを知りたがっています。 – david99world
また、私は '新しい'を行ったので、これは動作しません。 – david99world