网站建设需要多少钱小江,专业做网站公司排名,伊川网站建设,电影网站建设基本流程文章目录 目的1、创建初始化类#xff0c;代替web.xml2、创建SpringConfig配置类#xff0c;代替spring的配置文件3、创建WebConfig配置类#xff0c;代替SpringMVC的配置文件4、测试功能 目的
使用配置类和注解代替web.xml和SpringMVC配置文件的功能
1、创建初始化类代替web.xml2、创建SpringConfig配置类代替spring的配置文件3、创建WebConfig配置类代替SpringMVC的配置文件4、测试功能 目的
使用配置类和注解代替web.xml和SpringMVC配置文件的功能
1、创建初始化类代替web.xml
在Servlet3.0环境中容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类如果找到的话就用它来配置Servlet容器。 Spring提供了这个接口的实现名为SpringServletContainerInitializer这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成。Spring3.2引入了一个便利的WebApplicationInitializer基础实现名为AbstractAnnotationConfigDispatcherServletInitializer当我们的类扩展了AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候容器会自动发现它并用它来配置Servlet上下文。
public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 指定spring的配置类* return*/Overrideprotected Class?[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}/*** 指定SpringMVC的配置类* return*/Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{WebConfig.class};}/*** 指定DispatcherServlet的映射规则即url-pattern* return*/Overrideprotected String[] getServletMappings() {return new String[]{/};}/*** 添加过滤器* return*/Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter encodingFilter new CharacterEncodingFilter();encodingFilter.setEncoding(UTF-8);encodingFilter.setForceRequestEncoding(true);HiddenHttpMethodFilter hiddenHttpMethodFilter new HiddenHttpMethodFilter();return new Filter[]{encodingFilter, hiddenHttpMethodFilter};}
}2、创建SpringConfig配置类代替spring的配置文件
Configuration
public class SpringConfig {//ssm整合之后spring的配置信息写在此类中
}3、创建WebConfig配置类代替SpringMVC的配置文件
Configuration
//扫描组件
ComponentScan(com.atguigu.mvc.controller)
//开启MVC注解驱动
EnableWebMvc
public class WebConfig implements WebMvcConfigurer {//使用默认的servlet处理静态资源Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}//配置文件上传解析器Beanpublic CommonsMultipartResolver multipartResolver(){return new CommonsMultipartResolver();}//配置拦截器Overridepublic void addInterceptors(InterceptorRegistry registry) {FirstInterceptor firstInterceptor new FirstInterceptor();registry.addInterceptor(firstInterceptor).addPathPatterns(/**);}//配置视图控制/*Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController(/).setViewName(index);}*///配置异常映射/*Overridepublic void configureHandlerExceptionResolvers(ListHandlerExceptionResolver resolvers) {SimpleMappingExceptionResolver exceptionResolver new SimpleMappingExceptionResolver();Properties prop new Properties();prop.setProperty(java.lang.ArithmeticException, error);//设置异常映射exceptionResolver.setExceptionMappings(prop);//设置共享异常信息的键exceptionResolver.setExceptionAttribute(ex);resolvers.add(exceptionResolver);}*///配置生成模板解析器Beanpublic ITemplateResolver templateResolver() {WebApplicationContext webApplicationContext ContextLoader.getCurrentWebApplicationContext();// ServletContextTemplateResolver需要一个ServletContext作为构造参数可通过WebApplicationContext 的方法获得ServletContextTemplateResolver templateResolver new ServletContextTemplateResolver(webApplicationContext.getServletContext());templateResolver.setPrefix(/WEB-INF/templates/);templateResolver.setSuffix(.html);templateResolver.setCharacterEncoding(UTF-8);templateResolver.setTemplateMode(TemplateMode.HTML);return templateResolver;}//生成模板引擎并为模板引擎注入模板解析器Beanpublic SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {SpringTemplateEngine templateEngine new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver);return templateEngine;}//生成视图解析器并未解析器注入模板引擎Beanpublic ViewResolver viewResolver(SpringTemplateEngine templateEngine) {ThymeleafViewResolver viewResolver new ThymeleafViewResolver();viewResolver.setCharacterEncoding(UTF-8);viewResolver.setTemplateEngine(templateEngine);return viewResolver;}}4、测试功能
RequestMapping(/)
public String index(){return index;
}