@serviceクラスから@controllerクラスを呼び出すことをお勧めしますか?春のサービスクラスから別のコントローラを呼び出す
現在、別のコントローラ(Spring Boot Project)から直接コントローラを呼び出していますので、間に@serviceレイヤーを導入する予定です。
私に知らせてください
@serviceクラスから@controllerクラスを呼び出すことをお勧めしますか?春のサービスクラスから別のコントローラを呼び出す
現在、別のコントローラ(Spring Boot Project)から直接コントローラを呼び出していますので、間に@serviceレイヤーを導入する予定です。
私に知らせてください
私はサービス層からコントローラを直接呼び出すことはありません。循環依存関係が発生する可能性があります。
私はobserver patternを依存性注入によって使用します。コントローラーがインターフェースを実装するとき、それをあなたのサービスにオートワイヤーすることができます。
public interface Observer {
void eventHappened();
}
@Controller
public class YourController implements Observer {
}
@Service
public class YourService {
@Autowired
private Observer o;
// call o.eventHappened() somewhere in your code
}
あなたのコントローラはまた、あなたのサービスへの参照を持っている場合は、あなたがオブザーバーを登録するために使用することができますInitializingBeanを使用する必要があります。
返信ありがとうが、私はここで言及するために逃した私は2つの異なるコントローラについて話している。 コントローラAはサービスクラスを呼び出します。サービスクラスはコントローラBを呼び出します – JavaC
同じパターンを適用できます。 – Schrieveslaach
ありがとう!!同じものを実装しようとするだろう – JavaC
*なぜ*別のコントローラを呼びますか?これは、通常、基本的なOOモデリングの問題を示しています。 – chrylis