仅使用XML配置的

时间:2015-04-28 05:37:49

标签: java xml spring rest spring-mvc

我一直只使用XML配置来制作MVC Web应用程序(没有注释)。

现在我想用Spring创建一个RESTful Web服务,但我找不到任何不使用注释的教程。

有没有办法构建只有XML配置的RESTful Web服务? 或者我必须使用注释吗?

例如,您可以仅使用如下所示的XML配置部署MVC模式Web应用程序。

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>

   <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver" id="springParameterMethodNameResolver">
    <property name="paramName" value="action"/>
   </bean>

   <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
       <map>
            <entry key="/test.do" >
                <ref bean="testController"  />
            </entry>
            <entry key="/rest/test">
                <ref bean="testRESTController"/>
            </entry>
        </map>

    </property>
   </bean>

   <!-- My Beans -->
   <bean id="testMethodNameResolver" class="com.rhcloud.riennestmauvais.spring.test.TestMethodNameResolver">
   </bean>

   <!-- Test -->
   <bean class="com.rhcloud.riennestmauvais.spring.test.TestController" id="testController">
        <property name="delegate" ref="testDelegate"/>
        <property name="methodNameResolver" ref="testMethodNameResolver"></property>
        <!-- <property name="methodNameResolver" ref="springParameterMethodNameResolver"></property> -->
   </bean>
   <bean class="com.rhcloud.riennestmauvais.spring.test.TestDelegate" id="testDelegate">
   </bean>

但是,当我尝试为URL映射方法时,我遇到了障碍 HTTP方法:POST,网址:/student/1/Adam - 以便我可以添加学生 网址格式如下:/[resource]/[id]/[name]

我可以通过在条目键中放置一个模式来将/student/1/Adam映射到控制器,如:

<entry key="/student/regex-to-allow-number/regex-to-allow-string">

但是我应该如何解析控制器中的URI?

我可以使用String.split()或类似的东西解析URI,但我想知道是否已经有一些解决方案,以便我可以避免重新发明轮子。

1 个答案:

答案 0 :(得分:-1)

<?xml version="1.0" encoding="UTF-8"?>

	<beans xmlns="http://www.springframework.org/schema/beans"
	 xmlns:context="http://www.springframework.org/schema/context"
	 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xmlns:p="http://www.springframework.org/schema/p"
	 xsi:schemaLocation="
		http://www.springframework.org/schema/beans    
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
        
 		<context:component-scan base-package="com.apmc.rest" />
 		<mvc:annotation-driven />
 		
    </beans>

这是rest-servlet.xml。必须使用DispatcherServlet类

在web.xml中配置此文件

<servlet>
 	<servlet-name>rest</servlet-name>
 	<servlet-class>
  		org.springframework.web.servlet.DispatcherServlet
 	</servlet-class>
 	<load-on-startup>2</load-on-startup>
 </servlet>

 <servlet-mapping>
 	<servlet-name>rest</servlet-name>
 	<url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

上面的代码在web.xml中写入 load-on-startup 1给出spring-security.xml和spring-config.xml