2016-08-05 1 views
2

@Componentクラスで@RestControllerクラスをautowireする必要があり春 - 私が好きなように同じMavenの親モジュールの下にウェブとコアプロジェクトの組み合わせを持っている

親 - ウェブ(com.parent.test.web) - コア(com.parent.test.core)

私は、Webモジュール

WebプロジェクトのサンプルからのAPIの一部を呼び出すためにコアプロジェクトのWebモジュールの依存関係を参照してくださいしたいと思い、

com.test.parent.web 

public interface RestInterface { 
    public ResponseEntity load(); 
} 

@RestController 
public class RestInterfaceImpl implements RestInterface { 

    @Override 
    @RequestMapping(value = "/getData", method = RequestMethod.GET, produces = APPLICATION_JSON) 
    public @ResponseBody ResponseEntity<Object> load() { 

    } 
} 
プロジェクトは、同じ親ポンポンモジュール内で開発されているので

コアプロジェクトのサンプル、

com.test.parent.core 

@Component 
public class CoreImpl implements CoreInterface { 

    // Is this possible to autowire 
    @Autowired 
    private RestInterface restInterface; 

    public boolean getOptions() { 
     ResponseEntity<Object> results = restInterface.load(); 
     for (Object o : results) { 
      //TODO 
     } 
    } 
} 

。すべてのプロジェクトはスプリングブーツジャーにグループ化され、同じ環境に展開されます。そこで、Webプロジェクトの依存関係をコアプロジェクトに取り込み、コアプロジェクト内のWebクラスをスキャンしようと考えています。

、私はいくつかのことに明確に取得したいのですが、

  • は、それは良いアプローチですか?
  • 良いアプローチであれば、どのように実装できますか?
  • そうでない場合、正しいアプローチは何ですか?
+0

コアプロジェクトに依存関係としてWebモジュールプロジェクトを追加してもよろしいですか?また、APIを呼び出すために依存関係を追加する必要はありません。そしてあなたはその見出しを何とかしていたのですか? –

+0

はい。私はインタフェースをWebモジュールuriにアクセスする依存関係と呼んでいます。 WebモジュールのSpring BeanクラスをSpring Coreプロジェクトにautowiringしています。 – user3095047

答えて

4

IMHOこれは間違いなく正しいアプローチです。関心の分離の原則では、コントローラーは要求からパラメーターを取る小さなコードでなければならず、はビジネスクラスに渡し、結果を表示するビューに転送します。

コントローラのいくつかのメソッドをコアクラスから呼び出す必要がある場合は、その中にビジネスメソッドを持つFat Ugly Controllerがあることを意味します。正しい方法は、Webパーツ=>コントローラをビジネスパート=>サービスレイヤから分離することです。

このようにして、(今はシン)コントローラとそのメソッドを呼び出す必要がある他のコアクラスの両方でautowiredされるサービスBeanを作成します。

+0

私たちがWebsocketを使用していて、コントローラーでSimpMessagingTemplateをオートワイヤーしたい場合(これは明らかにサービスクラスにautowiredできません - この問題は今ではありません)、次に送信するためにアプリケーション内からコントローラーメソッドを呼び出す必要がありますWebSocket経由のSimpMessagingTemplateは他の場所へ? - アプリケーション内でREST呼び出しをシミュレートしていましたが、これをサービスに実装したかったのですが、動作させることができませんでした – Sytham

関連する問題