当前位置: 首页 > 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[]{"/"};}
}

相关文章:

  • 雷卯推荐多种SMB30J 3000W TVS
  • 酷开科技丨新年新玩法!酷开系统壁纸模式给客厅“换”新
  • 学习数据节构和算法的第13天
  • 【PHP进阶】Redis批处理缓存
  • AI绘画与修图:重塑数字艺术的新纪元
  • MedicalGPT 训练医疗大模型,实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)
  • vue2与vue3的diff算法有什么区别
  • 带你快速学习Python数据类型转换
  • 《PCI Express体系结构导读》随记 —— 第I篇 第3章 PCI总线的数据交换(8)
  • Linux Driver | 设备树开发之初识设备树
  • Android14 InputManager-ANR原理
  • 华清远见作业第四十一天——Qt(第三天)
  • Redis高性能原理
  • 掌握Docker:让你的应用轻松部署和管理
  • 使用openai-whisper实现语音转文字
  • 深入了解以太坊
  • es6--symbol
  • hadoop集群管理系统搭建规划说明
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Linux后台研发超实用命令总结
  • Python 基础起步 (十) 什么叫函数?
  • windows-nginx-https-本地配置
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 将 Measurements 和 Units 应用到物理学
  • 国内开源镜像站点
  • ​Python 3 新特性:类型注解
  • #includecmath
  • #Java第九次作业--输入输出流和文件操作
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (ibm)Java 语言的 XPath API
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (转)项目管理杂谈-我所期望的新人
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ../depcomp: line 571: exec: g++: not found
  • ./configure、make、make install 命令
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net Core 中间件验签
  • .Net IOC框架入门之一 Unity
  • .NET Remoting学习笔记(三)信道
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .net下的富文本编辑器FCKeditor的配置方法
  • .NET业务框架的构建
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • [ABC294Ex] K-Coloring
  • [Android 13]Input系列--获取触摸窗口
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [BT]BUUCTF刷题第9天(3.27)
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [Hive] INSERT OVERWRITE DIRECTORY要注意的问题