首页 > 代码库 > Spring MVC 配置笔记--基于JavaConfig
Spring MVC 配置笔记--基于JavaConfig
配置 DispatcherServlet
通过继承抽象类AbstractAnnotationConfigDispatcherServletInitializer
来自动配置 DispatcherServlet 和 Spring 应用上下文(不需在 xml 中配置)
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { ? // 指定 Spring 应用上下文配置类(主要配置 web 组件的 Bean) @Override protected Class<?>[] getServletConfigClasses() { return new Class[]{WebConfig.class}; } // 相对应的另一个应用上下文配置类(应用中的其他 Bean) @Override protected Class<?>[] getRootConfigClasses() { return new Class[]{RootConfig.class}; } ? // 将 DispatcherServlet 映射到 "/" @Override protected String[] getServletMappings() { return new String[]{"/"}; } }
其中 WebConfig 主要配置 web 组件相关的 Bean,如控制器、视图解析器以及处理映射器等,内容大致如下
@Configuration // 标志这个类为配置类 @EnableWebMvc // 启用注解驱动的 Spring MVC,同xml配置方式的<mvc:annotation-driven> @ComponentScan("spitter.web") // 扫描这个包中的 Bean 组件 public class WebConfig extends WebMvcConfigurerAdapter{ ? /** * 配置视图解析器 */ @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); resolver.setExposeContextBeansAsAttributes(true); return resolver; } ? /** * 配置静态资源的处理 */ @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } // 其他 web 相关 Bean 等... }
RootConfig 配置除 web 组件外的其他 Bean,内容大致如下
@Configuration // 配置扫描的包,以及过滤条件 @ComponentScan(basePackages = {"spitter"}, excludeFilters = { @Filter(type = FilterType.ANNOTATION, value = http://www.mamicode.com/EnableWebMvc.class)}) public class RootConfig { // Bean 等 }
添加 Controller 等
可以在相应位置添加对应 Controller 、jsp 文件等
列一个简单的 Controller
@Controller @RequestMapping("/") public class HomeController { @RequestMapping(method = RequestMethod.GET) public String home() { return "home"; } }
文件结构
文件整体结构如下:
Spring MVC 配置笔记--基于JavaConfig
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。