当前位置: 首页 > news >正文

(全注解开发)学习Spring-MVC的第三天

全注解开发

 第一部分 :

1.1 消除spring-mvc.xml

 这些是原来spring-mvc.xml配置文件的内容

 <!--1、组件扫描, 使@Controller可以被扫描到--><context:component-scan base-package="com.itheima.controller"/><!--2、非自定义的Bean, 文件上传解析器--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"/><property name="maxUploadSize" value="5000000"/></bean><!--3、非Bean的配置--><!--mvc的注解驱动 ,向容器中注入功能性的bean(映射器适配器等)--><mvc:annotation-driven/><!--向容器中注册静态资源处理器--><mvc:default-servlet-handler/><!--配置拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><bean class="com.itheima.interceptors.MyInterceptor1"></bean></mvc:interceptor></mvc:interceptors>

 我们来用配置类来代替

1 组件扫描代替

@ComponentScan({"com.itheima.controller"})

2 非自定义bean代替

    @Beanpublic CommonsMultipartResolver multipartResolver(){CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();multipartResolver.setDefaultEncoding("UTF-8");multipartResolver.setMaxUploadSize(5000000);return multipartResolver;}

3 非bean的配置

 <mvc:annotation-driven/>mvc注解驱动 :

在配置类上加@EnableWebMvc即可 , 注解自带这个功能

其余两个配置 , 需要新建一个WebMvcConfigurer类 , 去实现相关功能

 具体步骤如下

@Component
public class MyWebMvcConfigurer implements WebMvcConfigurer {@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {//开启默认的Servlet处理器configurer.enable();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {//添加一个拦截器,并配置拦截路径registry.addInterceptor(new MyInterceptor1()).addPathPatterns("/**");}
}

1.2 加载核心配置类

 (不重要 , 当学习消除web.xml时 , 这些会被替代

两部 , 1 定义一个类注册核心配置类 ,2 在web.xml记载核心配置类 )

  第二部分 :

消除web.xml

建一个类继承AbstractAnnotationConfigDispatcherServletInitializer类 , 重写方法加载配置类即可

代码如下


public class MyAbstractAnnotationConfigDispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {@Override//提供Spring容器的核心配置类protected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}@Override//提供SpringMVC容器的核心配置类protected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMVCConfig.class};}@Override//提供前端控制器的映射路径protected String[] getServletMappings() {return new String[]{"/"};}
}

http://www.lryc.cn/news/305752.html

相关文章:

  • 设计模式学习笔记 - 面向对象 - 7.为什么要多用组合少用继承?如何决定该用组合还是继承?
  • RocketMQ生产环境常见问题分析与总结
  • 前端打包工具的发展历程、思路(grunt,gulp,webpack,vite)
  • 利用Python将文件夹下多个txt文本写入到同一个excel中(每一个文件占一行)
  • 通过Colab部署Google最新发布的Gemma模型
  • spring中@validate注解使用
  • 停车场管理(C语言)
  • 探索无限:Sora与AI视频模型的技术革命 - 开创未来视觉艺术的新篇章
  • 375FPS! 谷歌提出MaskConver“重校正用于全景分割的纯卷积模型
  • leetcode初级算法(python)- 数组
  • 重新定义音乐创作:ChatGPT与未来音乐产业的融合
  • 人工智能绘画的时代下到底是谁在主导,是人类的想象力,还是AI的创造力?
  • [HTML]Web前端开发技术29(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • 文本编辑器markdown语法
  • 【C++】类和对象之拷贝构造函数篇
  • Mybatisplus 传参参数为自定义sql, 使用条件构造器作为参数
  • C#与VisionPro联合开发——TCP/IP通信
  • spring Boot快速入门
  • FPGA SERDESE2 (SDR收发仿真)
  • Java异常体系结构核心解析-Throwable
  • Android MediaRecorder 相关
  • Spring中关于事务的一些方方面面
  • LiveQing视频点播流媒体RTMP推流服务功能-支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务
  • LabVIEW串口通信的激光器模块智能控制
  • 全球最受欢迎的DAWFL Studio 21.2.3.4004 中文破解版强悍来袭
  • 【uni-app】常用组件和 API
  • 基于springboot+vue的安康旅游网站(前后端分离)
  • monaco脚本编辑器 在无界中使用 鼠标点击不到
  • react中修改state中的值无效?
  • 在Node.js中如何实现用户身份验证和授权