最新の安定バージョンについては、Spring Integration 6.5.2 を使用してください! |
統合グラフコントローラー
アプリケーションが Web ベース(または Web コンテナーが埋め込まれた Spring Boot 上に構築されている)であり、Spring Integration HTTP または WebFlux モジュール(それぞれ HTTP サポートおよび WebFlux サポートを参照)がクラスパスに存在する場合、IntegrationGraphController
を使用して IntegrationGraphServer
を公開できます。REST サービスとしての機能。この目的のために、@EnableIntegrationGraphController
および @Configuration
クラスのアノテーションと <int-http:graph-controller/>
XML 要素が HTTP モジュールで使用可能です。この構成は、@EnableWebMvc
アノテーション(または XML 定義の場合は <mvc:annotation-driven/>
)とともに、IntegrationGraphController
@RestController
を登録します。この構成では、@RequestMapping.path
を @EnableIntegrationGraphController
アノテーションまたは <int-http:graph-controller/>
要素で構成できます。デフォルトのパスは /integration
です。
IntegrationGraphController
@RestController
は、次のサービスを提供します。
@GetMapping(name = "getGraph")
: 最後のIntegrationGraphServer
リフレッシュ以降の Spring Integration コンポーネントの状態を取得します。o.s.i.support.management.graph.Graph
は、REST サービスの@ResponseBody
として返されます。@GetMapping(path = "/refresh", name = "refreshGraph")
: 実際のランタイム状態の現在のGraph
をリフレッシュし、REST レスポンスとして返します。メトリクスのグラフをリフレッシュする必要はありません。グラフが取得されると、リアルタイムで提供されます。グラフが最後に取得されてからアプリケーションコンテキストが変更された場合、リフレッシュを呼び出すことができます。その場合、グラフは完全に再構築されます。
Spring Security および Spring MVC プロジェクトによって提供される標準の構成オプションとコンポーネントを使用して、IntegrationGraphController
のセキュリティとクロスオリジンの制限を設定できます。次の例は、これらのゴールを達成します。
<mvc:annotation-driven />
<mvc:cors>
<mvc:mapping path="/myIntegration/**"
allowed-origins="http://localhost:9090"
allowed-methods="GET" />
</mvc:cors>
<security:http>
<security:intercept-url pattern="/myIntegration/**" access="ROLE_ADMIN" />
</security:http>
<int-http:graph-controller path="/myIntegration" />
次の例は、Java 構成で同じことを行う方法を示しています。
@Configuration
@EnableWebMvc // or @EnableWebFlux
@EnableWebSecurity // or @EnableWebFluxSecurity
@EnableIntegration
@EnableIntegrationGraphController(path = "/testIntegration", allowedOrigins="http://localhost:9090")
public class IntegrationConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/testIntegration/**").hasRole("ADMIN")
// ...
.formLogin();
}
//...
}
便宜上、@EnableIntegrationGraphController
アノテーションは allowedOrigins
属性を提供することに注意してください。これにより、path
への GET
アクセスが提供されます。より高度にするために、標準の Spring MVC メカニズムを使用して CORS マッピングを構成できます。