1

Web アプリケーションのルーティングと URL を定義するために yaml、xml、またはプロパティ ファイルなどの 1 つのファイルの 1 つの場所で Web アプリケーションのルーティングを行い、URL を個々のメソッドまたは関数と接続することは良い考えのように思えます。フレームワークwebapp2はそのようなもので、そのように扱うのは簡単です。正規表現を使用した URL ルーティング スキームは、yaml で定義された読みやすさのように見えます。

handlers:
- url: /(amazonas.*|acre.*|alagoas.*|roraima-*|mato_grosso_do_sul*|pernambuco.*|bahia.*|rio_grande_do_sul.*|sao_paulo.*|goias.*|paraiba.*|piaui.*|ceara.*|amapa.*|tocantins.*|rondonia.*|sergipe.*|para.*|maranhao.*|rio_de_janeiro.*|rio_grande_do_norte.*|distrito_federal.*|espirito_santo.*|minas_gerais.*|parana.*|santa_catarina.*|rio_grande_do_sul.*)
  script: br.app

- url: /obrigado.txt
  static_files: static/obrigado.txt
  upload: static/obrigado.txt
  secure: optional
  expiration: "24h"

- url: /ai/cat_tmpl/0
  script: montao.app

Struts もルーティングに xml を使用していました。ただし、Spring には、すべてのルーティングを 1 か所に集める良い方法がありません。いくつかは xml ファイルにあり、いくつかは注釈として (ハンドラーのメソッド宣言のすぐ上に書き込まれます)、いくつかは urlrewrite などのプラグインでオーバーライドできます。

Spring webapp のルーティングを 1 か所に集められないのはなぜですか? それはより良いデザインとより高い結束ではないでしょうか? また、1 つの Web アプリケーションに対して複数の Web コンテキストを使用できないことが問題になる場合もあります。サーブレットの仕様では、webapp に対して複数の webcontext を許可しておらず、それは全単射である必要があるようです。なんで?

4

1 に答える 1

3

Spring MVC は、別のルーティング インフラストラクチャをプラグインできるほど柔軟です。springmvc-routerを見てください。

リバース ルーティングは Spring 4.1 以降で利用可能です ( SPR-5579を参照) - ただし、フレームワークでこのようなものを見たい場合は、SPR-5757に投票できます。

于 2014-10-12T12:27:52.470 に答える