如何使用纯基于Java的配置配置Spring MVC?
我有一个非常简单的Spring MVC设置。我的应用程序上下文。xml是这样的:<mvc:annotation-driven />
<mvc:resources mapping="/css/**" location="/css/" />
<context:property-placeholder location="classpath:controller-test.properties" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/views/" p:suffix=".jsp" />
我的网络。xml目前是这样的:
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我试图将此设置转换为纯基于Java的配置。我搜索过网络,到目前为止,我找到了一些东西,解释了(一些什么)如何进行Java配置,但没有解释如何在环境中注册Java配置,即web上下文
到目前为止,我对@Configuration的了解是:
@Configuration
@EnableWebMvc
@PropertySource("classpath:controller.properties")
@ComponentScan("com.project.web")
public class WebSpringConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**").addResourceLocations("/css/");
}
@Bean
public ViewResolver configureViewResolver() {
InternalResourceViewResolver viewResolve = new InternalResourceViewResolver();
viewResolve.setPrefix("/WEB-INF/views/");
viewResolve.setSuffix(".jsp");
return viewResolve;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
configurer.enable();
}
}
如何在web容器中注册?我正在使用最新的spring(4.02)
谢谢
# 1 楼答案
基于Java的配置,无需向^{添加任何元素WebApplicationInitializer非常适合与Spring基于代码的
@Configuration
类一起使用WebApplicationInitializer«接口将在
Servlet 3.0+ environments
中实现,以便以编程方式配置ServletContext,而不是(或可能与)传统web。基于xml的方法<强>Implementations of this SPI will be detected automatically by SpringServletContainerInitializer, which itself is bootstrapped automatically by any Servlet 3.0 container
Using Servlet Spec 3.0 of Tomcat 7Spring 3.2中列出了一些实现WebApplicationInitializer的抽象类,这些抽象类将由SrevletContainer自动检测
将Spring
4.1.6.RELEASE
版本与模块core, web, webmvc, beans
一起使用基于Java的配置,为Spring提供静态资源Spring Boot
列出了一个示例控制器:
WEB-INF/web.xml