public abstract class AbstractUrlHandlerMapping extends AbstractHandlerMapping
HandlerMapping
実装の抽象基本クラス。 直接一致をサポートします。登録された "/test" は "/test" と一致し、さまざまなパスパターンが一致します。登録された "/t*" パターンは "/test" と "/team" の両方に一致し、"/test/*" は "/test" のすべてのパスに一致し、"/test/**" は "/test" のすべてのパスに一致します。詳細については、PathPattern
javadoc を参照してください。
すべてのパスパターンを検索して、現在のリクエストパスに最も一致するものを見つけます。最も具体的なパターンは、キャプチャーされた変数とワイルドカードが最も少ない最長パスパターンとして定義されます。
logger
BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターと説明 |
---|
AbstractUrlHandlerMapping() |
修飾子と型 | メソッドと説明 |
---|---|
reactor.core.publisher.Mono<ObjectSE> | getHandlerInternal(ServerWebExchange exchange) 特定のリクエストのハンドラーを検索し、特定のものが見つからない場合は空の Mono を返します。 |
MapSE<PathPattern, ObjectSE> | getHandlerMap() 登録されたパスパターンとハンドラーの読み取り専用ビューを返します。実際のハンドラーインスタンスまたは遅延初期化されたハンドラーの Bean 名の場合があります。 |
protected ObjectSE | lookupHandler(PathContainer lookupPath, ServerWebExchange exchange) 指定された URL ルックアップパスのハンドラーインスタンスをルックアップします。 |
protected void | registerHandler(StringSE[] urlPaths, StringSE beanName) 指定された URL パスに指定されたハンドラーを登録します。 |
protected void | registerHandler(StringSE urlPath, ObjectSE handler) 指定された URL パスに指定されたハンドラーを登録します。 |
void | setLazyInitHandlers(boolean lazyInitHandlers) ハンドラーを遅延初期化するかどうかを設定します。 |
protected void | validateHandler(ObjectSE handler, ServerWebExchange exchange) 現在のリクエストに対して指定されたハンドラーを検証します。 |
formatMappingName, getCorsConfiguration, getCorsProcessor, getHandler, getOrder, getPathPatternParser, hasCorsConfigurationSource, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setOrder, setUseCaseSensitiveMatch, setUseTrailingSlashMatch
getApplicationContext, getMessageSourceAccessor, initApplicationContext, initApplicationContext, isContextRequired, obtainApplicationContext, requiredContextClass, setApplicationContext
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setLazyInitHandlers(boolean lazyInitHandlers)
コントローラーの遅延初期化を許可する場合は、コントローラーを "lazy-init" にして、このフラグを true に設定します。これらを "lazy-init" にするだけでは機能しません。この場合、ハンドラーマッピングからの参照を介して初期化されるためです。
public final MapSE<PathPattern,ObjectSE> getHandlerMap()
public reactor.core.publisher.Mono<ObjectSE> getHandlerInternal(ServerWebExchange exchange)
AbstractHandlerMapping
Mono
を返します。このメソッドは AbstractHandlerMapping.getHandler(org.springframework.web.server.ServerWebExchange)
によって呼び出されます。CORS プリフライトリクエストでは、このメソッドはプリフライトリクエストではなく、URL パス、"Access-Control-Request-Method" ヘッダーからの HTTP メソッド、ヘッダーに基づいて予期される実際のリクエストに一致するものを返す必要があります "Access-Control-Request-Headers" ヘッダーから。
AbstractHandlerMapping
の getHandlerInternal
exchange
- 現在の交換 Mono
(存在する場合)@Nullable protected ObjectSE lookupHandler(PathContainer lookupPath, ServerWebExchange exchange) throws ExceptionSE
直接一致をサポートします。登録された "/test" は "/test" と一致し、さまざまなパスパターンが一致します。登録された "/t*" は、"/test" と "/team" の両方に一致します。詳細については、PathPattern クラスを参照してください。
lookupPath
- ハンドラーがマップされている URLexchange
- 現在の交換 null
ExceptionSE
PathPattern
protected void validateHandler(ObjectSE handler, ServerWebExchange exchange)
デフォルトの実装は空です。たとえば、URL マッピングで表される特定の前提条件を強制するために、サブクラスでオーバーライドできます。
handler
- 検証するハンドラーオブジェクト exchange
- 現在の交換 protected void registerHandler(StringSE[] urlPaths, StringSE beanName) throws BeansException, IllegalStateExceptionSE
urlPaths
- Bean がマッピングされる URLbeanName
- ハンドラー Bean の名前 BeansException
- ハンドラーを登録できなかった場合 IllegalStateExceptionSE
- 競合するハンドラーが登録されている場合 protected void registerHandler(StringSE urlPath, ObjectSE handler) throws BeansException, IllegalStateExceptionSE
urlPath
- Bean がマッピングされる URLhandler
- ハンドラーインスタンスまたはハンドラー Bean name String (Bean 名は、対応するハンドラー Bean に自動的に解決されます)BeansException
- ハンドラーを登録できなかった場合 IllegalStateExceptionSE
- 競合するハンドラーが登録されている場合