当前位置:网站首页 > R语言数据分析 > 正文

spring web和webmvc有什么区别(springmvc和spring区别)



此文几处有引用别人博客内容,如有侵权表示歉意!

2、spring mvc 也是一个容器,相比spring容器相对较小,是spring 容器的子容器,spring mvc 管理Contorller bean的容器。spring mvc使用WebApplicationContext 类,该类扩展自ApplicationContext.


3、spring 容器和spring mvc 容器之间的关系:
spring 在整体框架的核心概念中,容器思想是其核心思想。 在一个项目应用中容器的个数可以是多个,spring中可以包含多个容器,其中容器之间存在层级关系。其中spring容器和spring mvc 容器就是两个容器,spring容器作为根容器,spring mvc 容器作为子容器,并且子容器可以看到父容器的Bean,父容器中不能看到子容器中的Bean.这是spring自己定义的规则。


①在 spring 配置xml文件时 配置组件扫描包,该功能扫描包下所有的@Component注解,并且自动注入到容器中,@Service、@Controller、@Repository继承自@Component。spring配置主要是为了扫描@Service和@Repository注解。配置如下:

 
    

HandlerMapping是spring mvc中用来处理Request请求URL到具体Controller的,其自身也分成很多种类。
HandlerAdapter是spring mvc中用来处理具体请求映射到具体方法的,其自身也分很多中类
@RequestMapping 这个注解的主要目的就是对具体的Controller和方法进行注册,以方便HandlerMapping用来处理请求映射。但是@RequestMapping必须配合才能使用


在项目中为解决上诉容器之间的关系有如下三种方式:

  1. (推荐)在spring 配置扫描包指定@Service、@Repository所在包的路径,并在spring mvc 配置扫描包的指定@Controller所在包的路径,当然在spring配置扫描时也可以加入@Controller的扫描,但生成了此Bean会一直存储在spring容器中不进行使用,对资源照成浪费。总结:spring mvc容器中必须包含@Controller层级Bean,否则会请求会包404错误
  2. (不推荐)查看spring mvc 源码,在spring mvc 进行初始化时的执行:
 
     

方法isHandler()会判断当前的bean是否为Controller。

 
     

由于initHandlerMotheds()这个方法中handlerMethodsInitialized()主要是控制在哪个容器中获取Bean,默认是不包含父容器,我们可以修改spring mvc 配置文件,配置HandlerMapping的detectHandlerMethodsInAncestorContexts属性为true,(这里注意要根据不同的handlerMapping进行不同的配置),让其检查父容器中的Bean.

 
     

3.可以让spring 容器和spring mvc容器各司其职,spring 容器只负责非@Controller的扫描注册,spring mvc 容器只进行@Controller相关Bean 的扫描注册

到此这篇spring web和webmvc有什么区别(springmvc和spring区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
    
   
  
  

                            

版权声明


相关文章:

  • sore 什么意思(cold sore什么意思)2025-10-23 11:18:10
  • score是什么意思(score是什么意思中文)2025-10-23 11:18:10
  • qpainter绘图(qpainter画曲线图)2025-10-23 11:18:10
  • crna是什么意思医学(cra在医学上是什么意思)2025-10-23 11:18:10
  • traceable什么牌子(tabletpc什么牌子)2025-10-23 11:18:10
  • redis命令行连接(redismanager连接redis)2025-10-23 11:18:10
  • docker发展史(docker诞生于哪一年)2025-10-23 11:18:10
  • airplanechefs官网(airplanechefs官网下载安卓版)2025-10-23 11:18:10
  • pointrcnn训练自己的模型(pointrcnn代码)2025-10-23 11:18:10
  • docker版本(docker版本区别)2025-10-23 11:18:10
  • 全屏图片