MVCパターンでは、主に4つのクラスがあります。コントローラー、サービス、サービスのインプットとレポ。サービスインタフェースとサービスimplクラスのコードアーキテクチャspring
サービスはインターフェイスであり、サービスインプリメンテーションはサービスクラスであり、すべての論理コードを含んでいます。構造は次のようになります: -
Service
インタフェースクラス
Service{
public void someMethod();
}
ServiceImpl
クラス
ServiceImpl implements Service{
public void someMethod(){
//do something
}
}
しかし、我々は、コントローラからサービスのimplコードにアクセスしたいとき、我々はサービスのメソッドを呼び出しますクラスとして: -
@Autowired
Service service;
Object obj = service.someMethod();
どのようにコントローラがServiceImpl
クラス
複数のクラスで 'Service'インターフェースを実装するとどうなりますか?誰の実装コードが実行されますか? – viper
'Service'を実装している複数のSpring Beanがある場合、Springはどのアプリケーションを選択するのかわからないため、アプリケーションの起動時にエラーが発生します。どのようなものをSpringに伝えるかは、 '@ Qualifier'や' @ Primary'を使うなどの方法があります。 – Jesper
回答ありがとうございました。しかし、なぜ春はそのようなパターンを使用していますか?私は通常の 'mvc'パターンでは、インタフェースクラスの必要な役割はないと思います。 'ServiceImpl'クラスにいくつかのメソッドを実装させるだけです。 – viper