BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping之间的区别
问题内容:
Spring BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping有什么区别?
经过一些站点后,我了解到BeanNameUrlHandlerMapping是DispatcherServlet的默认HandlerMapping。
同样在BeanNameUrlHandlerMapping中,您可以直接将URL与Controller映射。
但是使用SimpleUrlHandlerMapping也可以完成相同的操作。
我知道一些但不是很清楚的事情,它与
名称接受/但id无法.....但是我很困惑。
确切的区别是什么?SimpleUrlHandlerMapping有什么需要?
请解释…谢谢。
问题答案:
如果要映射多个URL映射到单个控制器类,则必须注册多个URL,这不是使用Spring IoC的好方法。
SimpleUrlHandlerMapping是使用映射或属性Bean定义URL映射的简单方法。这简化了Spring MVC中的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"/>
重要:
- 有必要为每个网址定义一个bean
- spring容器有一个通过URL的bean。尽管所有网址都由同一个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