Spring3.0中SpringwebMVC层的注解驱动开发
原理说明参见:
SpringMVC接入Spring框架原理
1.依赖导入
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
2.实现接口接入
告诉Spring根配置类是哪个,子配置类是哪个,以及DispatcherServlet对应的url路径是哪个
在基于注解的体系下开发时,我们要考虑继承
AbstractAnnotationConfigDispatcherServletInitializer 类来接入Spring MVC框架。
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[]{"/"};
}
}
3.配置类
父配置
@Configuration
public class ApplicationConfig {
}
子配置
@Configuration //表明该类是配置类
@EnableWebMvc //对应xml中的<MVC:annotation-driver/>标签
@ComponentScan(basePackages = "com.example.controller")//定义扫描位置
public class SpringMvcConfig {
}
4.controller开发
@Controller
public class DemoController {
@GetMapping("/demo")
@ResponseBody
public String m1(){
return "SpringMvc";
}
}
5.启动服务器结果:

6.视图解析器配置
@Configuration //表明该类是配置类
@EnableWebMvc //对应xml中的<MVC:annotation-driver/>标签
@ComponentScan(basePackages = "com.example.controller")//定义扫描位置
public class SpringMvcConfig {
@Bean
public InternalResourceViewResolver viewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
7.controller请求页面&jsp
@Controller
public class DemoController {
@GetMapping("/demo")
@ResponseBody
public String m1(){
return "SpringMvc";
}
@GetMapping("/demo1")
public String m2(){
return "Spring";
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>123</h1>
</body>
</html>
显示结果:

本文介绍了Spring3.0中SpringwebMVC层的注解驱动开发,包括依赖导入、接口接入、配置类设置、Controller开发、启动服务器后的结果展示、视图解析器配置及Controller请求页面与JSP的交互过程。

1万+

被折叠的 条评论
为什么被折叠?



