容器及配置那些事

    

前言

    项目中用到的spring框架,知道它是起管理作用的,特点是IOC,AOP。其实它也是一个容器,除了spring还有好多容器。另外,一个程序用到了dubbo服务,用到了mybatis,他们是怎么联系起来的?从页面到controller,从本服务到别的服务,他们是怎么找到彼此的?现在我们就来谈谈容器和配置的那些事。

容器

这里写图片描述

web容器

    程序运行在哪里?其实是在一个个的容器里。最外面那层就是web容器。

servlet容器

    servlet容器是负责处理客户请求的。当客户请求某个资源时,serlet把请求封装到一个servletRequest对象的中,然后调用servlet API中的某个servlet(class),得到数据后再封装到servletResponse对象中传给界面。

ioc容器

    IOC容器是一个抽象容器,它的实现有spring容器及springmvc容器等;其中spring容器是springmvc容器的父容器。

    什么是控制翻转?
    控制是指对对象的生命周期的管理和配置;翻转是指之前都是对象管理自己的创建,应用和消亡等生命周期,先在应用ioc就是把对象的生命周期的管理和配置都交给了ioc容器。

    程序一运行,ioc容器把标有注解的类都实例化到ioc容器中。各个模块需要用到的对象的时候不用自己去实例化,而是ioc容器直接提供给你;这点也是ioc和di的区别,ioc是ioc容器直接把对象推给程序而di是程序需要用到对象的时候自己去容器里找。(个人理解)

调用逻辑

这里写图片描述

    这次项目中用了springmvc, spring-mybatis, dubbo等这些架构,他们是怎么合作的?

    1.程序一启动先去找web.xml,启动web容器,web容器中除了配置了过滤,监听等这些基本的还配置了spring-context。因此,从web找到spring。

    2.spring中管理好多东西,本服务的其他层,如facade, service, dao; 除此之外配置了dubbo, mybatis, mq, redis 还有和数据相关的一些设置。

    到这里我们也都看出来了,spring配置的主要是后台的,facade往后的;那前台界面是怎么传了一个url就找到对应的controller的?controller查出数据又是如何传给界面的?以什么形式? 这个就需要springmvc来配置了。

    springmvc也是继承mvc框架的。其中的c指的是前端控制器dispatcherServlet; v指的是视图解析器viewResolver和视图渲染的view; m是指适配器处理器HandlerAdapter,其实是后台的controller;前端控制器是根据一个叫映射处理器HandlerMapping来找到对应的controller的。

这里写图片描述

小结

    好多框架组合在一起,一开始感觉好神奇,就这么配啊配,我们的代码量就少了好多,方便了好多,尤其是用到一些注解,不用再写某些类的 实例化的规程性的代码了。通过这么梳理,不觉佩服发明这些框架,架构的人。好好学习吧,向伟人致敬。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值