体会:Java语言应用越来越广泛, 相对应的技术框架也在不断的优化与完善中,尤其是一些主流框架ssh与ssm效率很高;

Spring是一个轻型容器,其核心是bean工厂,用以构造我们所需要的Model;在这基础上面提供了Aop(Aspect-Oriented Programming)面向切面编程;用它来提供非管理环境下的事务管理,安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。

1.开源框架;

2.IOC(控制反转) 将类的创建和依赖关系写在配置文件中,由配置文件注入,实现松耦合;

3.AOP将安全、事物等逻辑功能单独出来,可以灵活使用;利用spring配置文件将这些功能插进去,实现按照切面编程,提供代码的复用度!


上面的是springMVC的工作原理图:
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。

7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。

体会:在真正的项目开发中springMvc还是比较好用,体现出框架的一些灵活性!

联系:

在框架的使用中,Spring类似于一个具有多种特性,也可以说是多种功能模块的应用平台,(特性就比如IoC,AOP,事务处理,持久化驱动等等),并且可以用来与其他一些优秀并流行的开源框架进行快速的整合。对于一个完整的WEB框架或应用平台来说,MVC模型的模块一定是必不可少的,而SpringMVC就是建立在Spring应用平台之上的MVC模型。

了解SpringMVC之前,首先要了解如何将IoC模块如何应用于WEB项目中:

以Tomcat为例,IoC容器通常在WEB容器初始化的时候就选择去载入。其中自然涉及到web.xml中的几个属性:

  • DispatcherServlet 
    用于分发请求,一般在WEB容器的初始化阶段就开始初始化

  • context-param: 
    指定SpringIoC容器读取Bean定义的XML文件

  • ContextLoaderListener: 
    SpringMVC的启动类,负责完成IoC容器在WEB环境中的启动工作

对于ContextLoaderListener:

存在理由:为了在WEB容器中建立IoC容器 
具体:实现了ServletContextListener,提供了与Servlet生命周期相结合的回调,就类似于Servlet初始化与销毁的contextInitialized()方法与contextDestory()方法。

实际上IoC容器的载入过程由ContextLoader完成,其中分为两步:

  1. 在WEB容器中建立起双亲IoC容器
  2. 生成相应的WebApplicationContext并将其初始化,如果在上下文初始化过程中没有指定IoC容器,将使用默认的XmlWebApplicationContext作为WEB环境中使用的IoC容器。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐