Spring 具有 Spring MVC 的数据 REST:将 RepositoryRestMvcConfiguration 添加到现有的 DispatcherServlet
Spring Data REST with Spring MVC: Adding RepositoryRestMvcConfiguration to existing DispatcherServlet
我有一个现有的 Spring MVC 应用程序,带有 DispatcherServlet 和基于 XML 的配置。
现在我想集成 Spring Data REST,但我不知道如何以干净的方式执行此操作。我添加了
<context:component-scan>...</context:component-scan>
因此找到了我的 RestController,但我未能添加 RepositoryRestMvcConfiguration 配置。我尝试了注释驱动的方法,但它不起作用
@Configuration
public class RestConfiguration extends RepositoryRestMvcConfiguration {
...
}
和
<bean class="com.mypackage.rest.RestConfiguration" />
该方法也不起作用。
我也在web.xml
中尝试了以下方法
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.mypackage.rest.RestConfiguration</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
奇怪的是,调用了一个用@PostConstruct 注释的方法,而不是 configure* 方法。
在 docs for Spring Data REST 中有一章解释了如何在代码中将 Spring Data REST 添加到 Spring MVC 应用程序。它还说
The equivalent of the above in a standard web.xml will also work identically to this configuration if you are still in a servlet 2.5 environment.
你是怎么做到的?
幸好在Section 11.2中有说明。如果在第 2.5 节中有一个指向第 11.2 节的参考就好了:-/
In Java, this would look like:
import org.springframework.context.annotation.Import;
import org.springframework.data.rest.webmvc.RepositoryRestMvcConfiguration;
@Configuration
@Import(RepositoryRestMvConfiguration.class)
public class MyApplicationConfiguration {
…
}
In XML this would look like:
<bean class="org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration"/>
我有一个现有的 Spring MVC 应用程序,带有 DispatcherServlet 和基于 XML 的配置。
现在我想集成 Spring Data REST,但我不知道如何以干净的方式执行此操作。我添加了
<context:component-scan>...</context:component-scan>
因此找到了我的 RestController,但我未能添加 RepositoryRestMvcConfiguration 配置。我尝试了注释驱动的方法,但它不起作用
@Configuration
public class RestConfiguration extends RepositoryRestMvcConfiguration {
...
}
和
<bean class="com.mypackage.rest.RestConfiguration" />
该方法也不起作用。
我也在web.xml
中尝试了以下方法<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.mypackage.rest.RestConfiguration</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
奇怪的是,调用了一个用@PostConstruct 注释的方法,而不是 configure* 方法。
在 docs for Spring Data REST 中有一章解释了如何在代码中将 Spring Data REST 添加到 Spring MVC 应用程序。它还说
The equivalent of the above in a standard web.xml will also work identically to this configuration if you are still in a servlet 2.5 environment.
你是怎么做到的?
幸好在Section 11.2中有说明。如果在第 2.5 节中有一个指向第 11.2 节的参考就好了:-/
In Java, this would look like:
import org.springframework.context.annotation.Import;
import org.springframework.data.rest.webmvc.RepositoryRestMvcConfiguration;
@Configuration
@Import(RepositoryRestMvConfiguration.class)
public class MyApplicationConfiguration {
…
}
In XML this would look like:
<bean class="org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration"/>