Spring Bootでプロジェクトのリクエストパスを確認する方法
Spring Bootのプロジェクトでは、以下の方法でリクエストのパスを参照できます。
- Spring Boot Actuatorを使う:Spring Boot ActuatorはSpring Bootアプリケーションの監視と管理に使うモジュールです。リクエストパスを含め、アプリケーションの様々な情報を公開するエンドポイント(/actuator)を提供します。下記の依存をpom.xmlファイルに追加することで使用できます:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
アプリケーションの設定ファイル(例: application.properties)でActuatorを有効にする。
management.endpoints.web.exposure.include=*
有効にしたら、http://localhost:8080/actuator/mappings にアクセスして、すべてのリクエストパスを確認できます。
- Spring BootのWebMvcConfigurerを使う:Spring Bootアプリにおいて、WebMvcConfigurerインターフェースを実装してリクエストパスをカスタマイズできます。構成クラスに@EnableWebMvcアノテーションを付与し、addViewControllersメソッドを実装します。
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("hello");
}
}
上の例では、/path が hello というビューにマップされます。
- RequestMappingHandlerMappingを使用する:アプリ内の全コントローラーの要求パスをRequestMappingHandlerMappingで取得できます。コードでRequestMappingHandlerMappingを注入し、getHandlerMethodsメソッドを呼び出します。
@Autowired
private RequestMappingHandlerMapping handlerMapping;
public void printRequestMappings() {
Map<RequestMappingInfo, HandlerMethod> handlerMethods = handlerMapping.getHandlerMethods();
for (RequestMappingInfo info : handlerMethods.keySet()) {
Set<String> patterns = info.getPatternsCondition().getPatterns();
for (String pattern : patterns) {
System.out.println(pattern);
}
}
}
コントローラーのすべてのリクエストパスは、printRequestMappingsメソッドを呼び出すことでプリントできます。
Spring Bootプロジェクトのリクエストパスを調べる一般的な3つの方法をご紹介しました。実際の流れに応じて、使用するメソッドを選択できます。