spring mvc的web.xml中这个地方的classpath是什么意思

spring mvc的web.xml中这个地方的classpath是什么意思,第1张

首先这个是 webxml方式定义参数传给Servlet。

因此,<param-value></param-value>的解释是接收这个参数的servlet执行的。

dispatchservlet的这个参数是定义配置文件的位置的。

而spring中对资源文件的处理做了抽象化,可以用符合 URI规范的方式声明文件位置,

具体的实现类会解析这个字符串,(可以看spring的Resource相关的文档)

根据里面的声明 来使用合适的方式读取。 classpath:开头的意思是说从 classpath中寻找目标文件。

web application的classpath包含 WEB-INF/lib下的所有jar包和WEB-INF/classes目录

SpringBoot项目中或者 Spring项目中配置 <context:component-scan base-package="comexampledemo" />

,那么在IOC 容器初始化阶段(调用beanFactoryPostProcessor阶段) 就会采用ClassPathBeanDefinitionScanner进行扫描包下 所有类,并将符合过滤条件的类注册到IOC 容器内。Mybatis 的Mapper注册器(ClassPathMapperScanner) 是同过继承ClassPathBeanDefinitionScanner,并且自定义过滤器规则来实现的。具体的 调用过程并不会在这里说明,只是想在这里描述ClassPathBeanDefinitionScanner是如何 扫描 和 注册BeanDefinition的。

ClassPathBeanDefinitionScanner作用就是将指定包下的类通过一定规则过滤后 将Class 信息包装成 BeanDefinition 的形式注册到IOC容器中。

过滤器用来过滤 从指定包下面查找到的 Class ,如果能通过过滤器,那么这个class 就会被转换成BeanDefinition 注册到容器。

如果在实例化ClassPathBeanDefinitionScanner时,没有说明要使用用户自定义的过滤器的话,那么就会采用下面的默认的过滤器规则。

注册了 @Component 过滤器到 includeFiters ,相当于 同时注册了所有被 @Component 注释的注解,包括 @Service , @Repository , @Controller ,同时也支持java EE6 的 javaxannotationManagedBean 和 JSR-330 的 @Named 注解。

实际执行包扫描,进行封装的函数是findCandidateComponents,findCandidateComponents定义在父类中。ClassPathBeanDefinitionScanner的主要功能实现都在这个函数中。

通过自定义的扫描器,扫描指定包下所有被@MyBean 注释的类。

通过对ClassPathBeanDefinitionScanner的分析,终于揭开了Spring 的类扫描的神秘面纱,其实,就是对指定路径下的 所有class 文件进行逐一排查,对符合条件的 class ,封装成 BeanDefinition注册到IOC 容器。

理解ClassPathBeanDefinitionScanner的工作原理,可以帮助理解Spring IOC 容器的初始化过程。

同时对理解MyBatis 的 Mapper 扫描 也是有很大的帮助。

因为 MyBatis 的MapperScannerConfigurer的底层实现也是一个ClassPathBeanDefinitionScanner的子类。就像我们自定义扫描器那样,自定定义了 过滤器的过滤规则。

网络的问题。多数是网络连接异常导致。

1、首先打开电脑检查网络。

2、其次打开springboot进行测试网络连接是否异常。

3、最后点击xml重新加载classpath即可。

以上就是关于spring mvc的web.xml中这个地方的classpath是什么意思全部的内容,包括:spring mvc的web.xml中这个地方的classpath是什么意思、Spring 的类扫描器分析 - ClassPathBeanDefinitionScanner、springboot的xml加载不到classpath等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9508422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存