4

Spring BeanNameUrlHandlerMapping と SimpleUrlHandlerMapping の違いは何ですか?

いくつかのサイトを調べた後、BeanNameUrlHandlerMapping が DispatcherServlet のデフォルトの HandlerMapping であることを理解しました。

また、BeanNameUrlHandlerMapping では、URL を Controller に直接マップできます。

ただし、SimpleUrlHandlerMapping でも同じことができます。

私は何かを知っていますが、それが何かをしなければならないことはあまり明確ではありません

name は受け入れます / でも id は受け入れられません.....しかし、私は混乱しています。

正確な違いは何ですか?SimpleUrlHandlerMapping の必要性は何ですか?

説明してください...ありがとう。

4

1 に答える 1

4

複数のURLを単一のコントローラークラスにマップする場合は、複数のURLを登録する必要があります。これは、SpringIoCを使用するのに適した方法ではありません。

SimpleUrlHandlerMappingは、マップまたはプロパティBeanを使用してURLマッピングを定義する簡単な方法です。これにより、SpringMVCでのURLマッピングが簡素化されます。

BeanNameUrlHandlerMappingの例

<bean name="/hello.htm" class="com.raistudies.ui.comtroller.HelloController"/>

<bean name="/sayHello*" class="com.raistudies.ui.comtroller.HelloController"/>

<bean id="urlHandler" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

重要:

  • URLごとにBeanを定義する必要があります
  • SpringコンテナにはURLごとのBeanがあります。すべてのURLは同じBeanによって提供されますが

SimpleUrlHandlerMappingの例

<bean id="helloController" class="com.raistudies.ui.controller.HelloController"/>

  <bean id="urlHandler" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="urlMap">
            <map>
                <entry key="/hello.htm" value-ref="helloController"/>
                <entry key="/sayHello*" value-ref="helloController"/>
                <entry key="/welcome.html" value-ref="helloController"/>
                <entry key="/welcomeUser*" value-ref="helloController"/>
            </map>
        </property>
    </bean>

重要:

  • 同じコントローラーを使用するURLに単一のBeanを使用する。
  • URLごとにBeanを定義する必要はありません
于 2012-09-19T17:57:43.647 に答える