我想在我的java web services应用程序中使用spring框架(部署为战争)。它没有用户界面或可见的面孔"对用户来说,没有实现ui框架。只是服务。那么..我需要一个WebApplicationContext来加载我的bean配置吗?或者只是使用ClassPathXmlApplicationContext并将返回的上下文存储在单例中以供后续使用?在这种情况下推荐的模式是什么?
答案 0 :(得分:0)
我正在写一个休息服务(但我也有一个带有javascript的html页面,用于记录服务)。我认为这与您需要的类似,但如果您想接受不同的标题(json等),则需要添加更多内容。我只需要一些文件就可以完成所有工作。
这是我的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="testing-services" version="2.5" metadata-complete="true"
xmlns="..." xmlns:xsi="..."
xsi:schemaLocation="...">
<display-name>Testing Services</display-name>
<description>Services for selenium</description>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:persistence-config.xml
classpath:transactions-config.xml
classpath:testing-service-config.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/assets/pages/testing-service.html</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
我有一个几乎为空的mvc-servlet.xml(它有一个空的beans
标签)。
从testing-service-config.xml
引用的web.xml
是:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="..."
xmlns:xsi="..."
xmlns:context="..."
xsi:schemaLocation="...">
<context:component-scan base-package="com.myorg.app"/>
</beans>
最后,一个spring配置类,TestingServiceConfiguration:
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import static org.springframework.http.MediaType.TEXT_HTML;
@Configuration
@EnableWebMvc
@ComponentScan({"com.myorg.app"})
public class TestingServiceConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.ignoreAcceptHeader(true);
configurer.favorParameter(false);
configurer.favorPathExtension(false);
configurer.defaultContentType(TEXT_HTML);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
}
}