广告
返回顶部
首页 > 资讯 > 精选 >SpringMVC使用注解配置方式是什么
  • 147
分享到

SpringMVC使用注解配置方式是什么

2023-06-30 16:06:01 147人浏览 泡泡鱼
摘要

本篇内容主要讲解“springMVC使用注解配置方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springmvc使用注解配置方式是什么”吧!SpringMVC注解配置方式使用配置类和注

本篇内容主要讲解“springMVC使用注解配置方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习springmvc使用注解配置方式是什么”吧!

SpringMVC注解配置方式

使用配置类和注解代替 WEB.xml 和 SpringMVC配置文件 的功能。

一、创建初始化类

在 Servlet3.0 环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置 Servlet 容器。

Spring 提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成。

Spring3.2 引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer,
当我们的类扩展了AbstractAnnotationConfigDispatcherServletInitializer并将其部署到 Servlet3.0 容器的时候,容器会自动发现它,并用它来配置 Servlet 上下文。

这里新建一个工程来演示。

SpringMVC使用注解配置方式是什么

pom.xml里的依赖可以复制之前的内容,web.xml 和 SpringMVC 已经不需要再进行创建了。

package com.pingguo.mvc.config;import org.springframework.web.filter.CharacterEncodingFilter;import org.springframework.web.filter.HiddenHttpMethodFilter;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;import javax.servlet.Filter;public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {        @Override    protected Class<?>[] getRootConfiGClasses() {        return new Class[]{SpringConfig.class};    }        @Override    protected Class<?>[] getServletConfigClasses() {        return new Class[]{WebConfig.class};    }        @Override    protected String[] getServletMappings() {        return new String[]{"/"};    }        @Override    protected Filter[] getServletFilters() {        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();        encodingFilter.setEncoding("UTF-8");        encodingFilter.setForceRequestEncoding(true);        HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();        return new Filter[]{encodingFilter, hiddenHttpMethodFilter};    }}

初始化类里面要指定 spring的配置类、SpringMVC的配置类,给创建出来即可,记得带上@Configuration注解,标记为配置类。

SpringMVC使用注解配置方式是什么

其实就是把之前各种配置文件里的内容转到配置类里了,这些都会在项目启动时候初始化。另外,返回的都是数组,所以每个类里都可以返回多个配置。

二、spring的配置类

当使用SSM整合之后,spring的配置信息写在spring的配置类中,这里暂时用不到,写出来无妨。

package com.pingguo.mvc.config;import org.springframework.context.annotation.Configuration;@Configurationpublic class SpringConfig {}

三、WebConfig 配置类

这个配置类是代替之前 springMVC.xml 配置文件里的内容:

  • 扫描组件

  • 视图解析器

  • view-controller

  • default-servlet-handler

  • mvc注解驱动

  • 文件上传解析器

  • 异常处理

  • 拦截器

// 标识当前类为配置类@Configuration// 扫描组件@ComponentScan("com.pingguo.mvc")// mvc 注解驱动@EnableWebMvcpublic class WebConfig {    //配置生成模板解析器    @Bean    public 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;    }    //生成模板引擎并为模板引擎注入模板解析器    @Bean    public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {        SpringTemplateEngine templateEngine = new SpringTemplateEngine();        templateEngine.setTemplateResolver(templateResolver);        return templateEngine;    }    //生成视图解析器并未解析器注入模板引擎    @Bean    public ViewResolver viewResolver(SpringTemplateEngine templateEngine) {        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();        viewResolver.setCharacterEncoding("UTF-8");        viewResolver.setTemplateEngine(templateEngine);        return viewResolver;    }}

有了这几样,就可以写一个index页面测试一下了,写出页面和controller类。

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8">    <title>index首页</title></head><body><h2>首页</h2></body></html>

控制器:

@Controllerpublic class TestController {    @RequestMapping("/")    public String index() {        return "index";    }}

设置下部署,启动可以打开首页。

SpringMVC使用注解配置方式是什么

剩余配置

接下来,需要 WebConfig 类实现一个接口WebMvcConfigurer,来重写里面的方法。

配置 default-servlet-handler

@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer {    //使用默认的servlet处理静态资源 default-servlet-handler    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {        configurer.enable();    }... ...

配置 拦截器

继续增加。

... ...     //配置拦截器    public void addInterceptors(InterceptorReGIStry registry) {        TestInterceptor firstInterceptor = new TestInterceptor();        registry.addInterceptor(firstInterceptor).addPathPatterns("/**");    }... ...

拦截器还是要像之前的那样创建,这里就创建了一个拦截器 TestInterceptor :

public class TestInterceptor implements HandlerInterceptor {    public boolean preHandle(httpservletRequest request, HttpServletResponse response, Object handler) throws Exception {        return true;    }    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {    }    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {    }}

配置 view-controller

当仅做视图跳转时候可以使用这个配置。

//配置视图控制    public void addViewControllers(ViewControllerRegistry registry) {        registry.addViewController("/").setViewName("index");    }

配置文件上传解析器

... ...    //配置文件上传解析器    @Bean    public MultipartResolver multipartResolver(){        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();        return commonsMultipartResolver;    }... ...

配置异常处理

//配置异常映射    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {        SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver();        Properties prop = new Properties();        prop.setProperty("java.lang.ArithmeticException", "error");        //设置异常映射        exceptionResolver.setExceptionMappings(prop);        //设置共享异常信息的键        exceptionResolver.setExceptionAttribute("ex");        resolvers.add(exceptionResolver);    }

里面的功能与之前使用配置文件实现的一样,可以逐一测试一下。

到此,相信大家对“SpringMVC使用注解配置方式是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: SpringMVC使用注解配置方式是什么

本文链接: https://www.lsjlt.com/news/330373.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringMVC使用注解配置方式是什么
    本篇内容主要讲解“SpringMVC使用注解配置方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringMVC使用注解配置方式是什么”吧!SpringMVC注解配置方式使用配置类和注...
    99+
    2023-06-30
  • SpringMVC使用注解配置方式
    目录SpringMVC注解配置方式一、创建初始化类二、spring的配置类三、WebConfig 配置类剩余配置SpringMVC注解配置方式 使用配置类和注解代替web.xml和S...
    99+
    2022-11-13
  • 使用纯javaconfig来配置springmvc方式
    目录1、使用mavan新建一个webmvc项目2、新建好了项目后3、编辑pom.xml使用maven来引入项目依赖包4、先来看看基本项目完成后的web.xml是什么样子的5、先在sr...
    99+
    2022-11-12
  • Quartz注解方式怎么配置
    本篇内容主要讲解“Quartz注解方式怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Quartz注解方式怎么配置”吧!一:目录结构二:统一配置文件context-datasource.p...
    99+
    2023-06-04
  • 使用springmvc配置视图解析器和重定向方式
    目录springmvc配置视图解析器和重定向为什么需要配置视图解析器配置步骤解决配置视图解析器带来的问题重定向配置多个视图解析器springmvccontrollerspringmv...
    99+
    2022-11-12
  • SpringBoot使用@PostConstruct注解导入配置方式
    目录使用@PostConstruct注解导入配置使用@PostConstruct注解,完成静态对象注入为什么static对象不可直接使用@Autowired注入?@PostConst...
    99+
    2022-11-12
  • 详解SpringMVC拦截器配置及使用方法
    本文介绍了SpringMVC拦截器配置及使用方法,分享给大家,具体如下:常见应用场景日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接...
    99+
    2023-05-31
    spring mvc 拦截器
  • SpringMVC实现RESTful风格:@PathVariable注解的使用方式
    目录1、RESTful简介2、SpringMVC实现RESTful风格2.1 @PathVariable注解2.2 修改SpringMVC的前端控制器配置3、静态资源访问问题3.1 ...
    99+
    2022-11-12
  • springboot yml配置文件值的注入方式是什么
    这篇文章跟大家分析一下“springboot yml配置文件值的注入方式是什么”。内容详细易懂,对“springboot yml配置文件值的注入方式是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够...
    99+
    2023-06-26
  • SpringMVC适配器模式作用范围是什么
    这篇文章主要介绍“SpringMVC适配器模式作用范围是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC适配器模式作用范围是什么”文章能帮助大家解决问题。HandlerAdapt...
    99+
    2023-07-06
  • Spring CORS 跨域使用与原理(@CrossOrigin注解,Java配置类方式,xml方式)
    Spring CORS 跨域使用与原理(@CrossOrigin注解,Java配置类方式,xml方式) 出于安全原因,浏览器禁止AJAX调用当前源之外的资源。 跨域资源共享(CORS)是由大多数...
    99+
    2023-09-15
    java spring xml spring boot 服务器
  • Git配置用户签名的方式是什么
    本文小编为大家详细介绍“Git配置用户签名的方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Git配置用户签名的方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、为什么要创建用户签名作为版本控...
    99+
    2023-06-30
  • 怎么使用Idea搭建全注解式开发的SpringMVC项目
    这篇“怎么使用Idea搭建全注解式开发的SpringMVC项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Idea...
    99+
    2023-07-05
  • FeignMultipartSupportConfig上传图片配置方式是什么
    这篇文章主要介绍FeignMultipartSupportConfig上传图片配置方式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!FeignMultipartSupportConfig上传图片配置在对应的bo...
    99+
    2023-06-29
  • redis@Cacheable注解以及过期时间设置方式是什么
    redis@Cacheable注解以及过期时间设置方式是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。原理解释 友情链接  手写redis @ Ca...
    99+
    2023-06-22
  • Java SpringAOP技术中注解方式是什么
    这篇文章主要为大家展示了“Java SpringAOP技术中注解方式是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java SpringAOP技术中注解方式是什么”这篇...
    99+
    2023-06-29
  • Spring使用@Autowired注解实现自动装配方式
    目录Spring支持注解配置引入注解依赖启用注解使用@Autowired注解实现自动装配1、IOC容器配置2、实体类使用@Autowired注解注入属性3、测试结果@Autowire...
    99+
    2022-11-12
  • MyBatis配置与CRUD使用的方法是什么
    本篇内容主要讲解“MyBatis配置与CRUD使用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis配置与CRUD使用的方法是什么”吧!namespace:命名空间 必须绑...
    99+
    2023-07-05
  • Spark SQL配置及使用的方法是什么
    本篇内容介绍了“Spark SQL配置及使用的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!XY个人记SparkSQL是...
    99+
    2023-06-21
  • vue.config.js常用配置方法是什么
    这篇文章主要介绍“vue.config.js常用配置方法是什么”,在日常操作中,相信很多人在vue.config.js常用配置方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue.config.js...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作