首页 > 其他分享 >SpringMVC学习笔记(五)

SpringMVC学习笔记(五)

时间:2022-09-21 02:55:59浏览次数:83  
标签:return SpringMVC spring 配置 笔记 学习 new Class

注解配置MVC

使用配置类和注解联合使用的方式代替xml配置文件

 

在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类, 如果找到的话就用它来配置Servlet容器。 Spring提供了这个接口的实现,名为 SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配 置的任务交给它们来完成。Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为 AbstractAnnotationConfigDispatcherServletInitializer,当我们的类扩展了 AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候,容器会自 动发现它,并用它来配置Servlet上下文。

下面的类是用来被servlet扫描的,用来代替web.xml的

里面配置了替代spring的IOC的配置文件的类,和替代mvc的IOC的配置文件的类

以及配置了dispatcher的有效路径和过滤器

public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer { 

/*** 指定spring的配置类*/
@Override
protected Class<?>[] getRootConfigClasses() {
  return new Class[]{SpringConfig.class};
}

/*** 指定SpringMVC的配置类 * @return */
@Override
protected Class<?>[] getServletConfigClasses() {
  return new Class[]{WebConfig.class};
}

/*** 指定DispatcherServlet的映射规则,即url-pattern * @return */
@Override
protected String[] getServletMappings() {
  return new String[]{"/"};
}

/*** 添加过滤器 * @return */
@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和mvc的配置类

这两个类里面包含在IOC文件里面的一切信息

需要在类前添加Configuration注解,指定为配置类

@Configuration 
public class SpringConfig {

//ssm整合之后,spring的配置信息写在此类中
}

 

 

 

 

SpringMVC执行流程

 

标签:return,SpringMVC,spring,配置,笔记,学习,new,Class
From: https://www.cnblogs.com/darkpar/p/16711726.html

相关文章

  • 昨天学习:宏任务与微任务,JS执行机制,执行栈,事件循环,同步异步执行顺序
    宏任务由宿主(浏览器,Node)发起;微任务由JS本身发起。宏任务的具体事件为scrpit(整体代码),setTimeout,setInterval,等。微任务的具体事件为Promise,等。JS执行机制:先处理主线程上......
  • 201-CH32V307(RISC-V)学习开发-以太网例程-DHCP
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/LearnCH32V307VCT6"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>DHC......
  • nextTick原理学习
    一、为什么用nextTick(1)js执行原理Eventloop首先js是单线程的,所谓单线程,就是同一时间只能处理一件事情。JS中的任务分为同步任务和异步任务,其中异步任务分为宏任务和微任......
  • 200-CH32V307(RISC-V)学习开发-以太网例程-网络指示灯GPIO选择, 检测网线连接状态
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/LearnCH32V307VCT6"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> ......
  • python学习随笔
    python本周学习随笔一、打开Pycharm,新建项目1.创建名为hello.py文件(Python文件以.py后缀结尾)2.在hello.py中输入以下内容print("helloworld")3.在代码区域右键,选......
  • MarkDown学习
    MarkDown学习二级标题三级标题四级标题 字体hallo,world!hallo,world!hallo,world!hallo,world!引用学习MarkDown,努力学习IT。分割线图片![截图][https://i03pi......
  • 字符编码笔记:ASCII,Unicode 和 UTF-8
    一、ASCII码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说......
  • hadoop学习
    大数据技术要解决的难题——海量数据要如何存储,海量数据要如何处理?海量数据的存储问题不是现在才有的,在很早之前就用NFS(网络文件系统)将数据分开存储来解决海量数据的存......
  • 积性函数笔记
    积性函数:定义设f(n)为积性函数,n=ab且(a,b)=1,有f(n)=f(a)*f(b)完全积性函数n=ab,即有f(n)=f(a)*f(b),不要求(a,b)=1;常见函数\(\epsilon,\phi,d,\sigma,I,\mu,Id\)迪......
  • MySQL数据库笔记
    1.操作数据库1.1创建数据库createdatabase数据库名如果想数据库没有就创建,有就不创建可以执行这句话sqlcreatedatabaseifnotexists数据库名1.2删除数据库......