Spring3.0中SpringMVC的配置
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--***********************************************************************************************-->
<!--Maven版本-->
<modelVersion>4.0.0</modelVersion>
<!--***********************************************************************************************-->
<!--坐标信息-->
<groupId>com.xyd</groupId>
<artifactId>maven1008</artifactId>
<version>1.0-SNAPSHOT</version>
<!--***********************************************************************************************-->
<!--打包格式-->
<packaging>war</packaging>
<!--***********************************************************************************************-->
<!--外部配置-->
<!--设置jdk格式和编码格式-->
<properties>
<maven.complier.source>1.8</maven.complier.source>
<maven.complier.target>1.8</maven.complier.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--***********************************************************************************************-->
<dependencies>
<!--设置HttpServlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--设置Spring依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
</dependencies>
<!--***********************************************************************************************-->
</project>
1.css等静态资源访问
1.1配置类
ApplicationConfig
@Configuration
public class ApplicationConfig {
}
SpringMvcConfig
对应标签:
<mvc:default-servlet-handler default-servlet-name="default" ></mvc:default-servlet-handler>
实现WebMvcConfigurer
接口,然后重写要配置的方法,这里是配置静态资源解析
@Configuration //表明该类是配置类
@EnableWebMvc //对应xml中的<MVC:annotation-driver/>标签
@ComponentScan(basePackages = "com.example.controller")//定义扫描位置
public class SpringMvcConfig implements WebMvcConfigurer {
// @Bean
// public InternalResourceViewResolver viewResolver(){
// InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
// viewResolver.setPrefix("/WEB-INF/jsp/");
// viewResolver.setSuffix(".jsp");
// return viewResolver;
// }
//配置静态资源解析
//只能获取webapp下的文件
// @Override
// public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
// //对应<mvc:default-servlet-handler default-servlet-name="default" ></mvc:default-servlet-handler>标签
// configurer.enable("default");
// }
//可以获取类路径下的文件和webapp下的文件
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//对应<!--<mvc:resources mapping="/**" location="css"></mvc:resources>-->
registry.addResourceHandler("/**").addResourceLocations("");
//类路径下配置
// registry.addResourceHandler("/**").addResourceLocations("classpath:/css/");
}
//配置视图解析器
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/jsp/",".jsp");
}
}
1.2 容器配置
public class MyWebInit extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
//表明跟容器的配置类
return new Class[]{ApplicationConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
//表明子容器的配置类
return new Class[]{SpringMvcConfig.class};
}
@Override
protected String[] getServletMappings() {
//表明DispatcherServlet的映射路径
return new String[]{"/"};
}
}
1.3 controller
@Controller
public class DemoController {
@GetMapping("/demo1")
public String m2(){
return "Spring";
}
}
1.4 jsp&css
Spring.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<link href="${pageContext.request.contextPath}/background.css" rel="stylesheet">
<head>
<title>Title</title>
</head>
<body>
<h1>123</h1>
</body>
</html>
background.css
body{
background-color: red;
}
1.5 显示结果
2.其余配置
对应接口中其余方法
public interface WebMvcConfigurer {
default void configurePathMatch(PathMatchConfigurer configurer) {
}
default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
}
default void configureAsyncSupport(AsyncSupportConfigurer configurer) {
}
default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
}
default void addFormatters(FormatterRegistry registry) {
}
default void addInterceptors(InterceptorRegistry registry) {
}
default void addResourceHandlers(ResourceHandlerRegistry registry) {
}
default void addCorsMappings(CorsRegistry registry) {
}
default void addViewControllers(ViewControllerRegistry registry) {
}
default void configureViewResolvers(ViewResolverRegistry registry) {
}
default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
}
default void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {
}
default void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
}
default void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
}
default void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
}
default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
}
@Nullable
default Validator getValidator() {
return null;
}
@Nullable
default MessageCodesResolver getMessageCodesResolver() {
return null;
}
}