亚游,23日,日本外相岸田文雄针对俄方媒体关于俄军部署地对舰导弹系统的报道声明称:“将(对俄方的举动)予以密切关注,作出适当的应对”。关于俄方举措是否会影响日俄关系,特别是日俄争议领土和和平条约的缔约谈判,岸田没有明确回答。

对于自己未来的去向,曼萨诺表示,“我会在西班牙先休息一段时间,然后考虑能否留在西班牙工作,如果实在不行的话,也不排除再回到中国。”身无分文怎样白手起家  这位负责人表示,针对现存的问题既要采取措施加强监管,为广大未成年人营造和谐的网络文化环境,同时又要充分重视网络游戏的积极作用和产业价值,支持民族原创网络游戏产业的发展,使内容向上、形式丰富多彩的网络游戏产品居于国内的主流。

发布于 2018-03-24 07:23:23 | 135 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Spring Framework 开源j2ee框架

Spring是什么呢?首先它是一个开源的项目,而且目前非常活跃;它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等


最近因为工作的原因在学习Spring MVC,为了更深入的学习Spring MVC,下面这篇文章主要给大家介绍了关于Spring MVC深入学习之启动初始化过程的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

前言

虽然从学java的第一个程序——helloworld至今,已经有好几个年头了。当时自己找资料,看视频,学习了java的输入输出流,多线程,网络编程等等, 而三大框架(Struts、Hibernate、Spring)基本只是开了个头就出来实习了,尤其对于Spring更是没有进行系统的学习, 虽然在实习的时候通过看项目,基本明白了spring mvc编程的框架是怎么回事,遇到需求知道如何写代码,在哪写代码,但是还是缺乏一个系统的认识。

因为最近公司项目使用 struts2 作为控制层框架,为了实现前后端分离,计划将 struts2 切换为 SpringMVC ,因此,这段时间都在学习新的框架,《Spring实战》是一本好书,里面对 Spring 的原理实现以及应用都说得很透彻,强烈推荐,但是如果想深挖 Spring 的实现,还是要从他的源码入手,这次,就先从 SpringMVC 初始化开始。

  • Web 容器初始化过程
  • SpringMVC的Web.xml配置
  • DispatchServlet初始化

Web容器初始化过程

web容器初始化的过程,其官方文档给出了这样的描述:

  1. Instantiate an instance of each event listener identified by a <listener> element in the deployment descriptor.For instantiated listener instances that implement ServletContextListener, call the contextInitialized() method.
  2. Instantiate an instance of each filter identified by a <filter> element in the deployment descriptor and call each filter instance's init() method.
  3. Instantiate an instance of each servlet identified by a <servlet> element that includes a <load-on-startup> element in the order defined by the load-on-startup element values, and call each servlet instance's init() method.

其初始化的过程实际如下:


SpringMVC 的 web.xml配置

web.xml 配置代码:


<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="/java0b0asun0b0acom/xml/ns/javaee" 
   xmlns:xsi="/www0b0aw30b0aorg/2001/XMLSchema-instance" 
   xsi:schemaLocation="/java0b0asun0b0acom/xml/ns/javaee /java0b0asun0b0acom/xml/ns/javaee/web-app_2_5.xsd"> 
 
 <context-param> 
  <param-name>contextConfigLocation</param-name> 
  <param-value>classpath:applicationContext.xml</param-value> 
 </context-param> 
 
 <listener> 
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
 </listener> 
 
 
 <servlet> 
  <servlet-name>mvc-dispatcher</servlet-name> 
  <servlet-class> 
   org.springframework.web.servlet.DispatcherServlet 
  </servlet-class> 
  <load-on-startup>1</load-on-startup> 
 </servlet> 
                                   
 <servlet-mapping> 
  <servlet-name>mvc-dispatcher</servlet-name> 
  <url-pattern>/</url-pattern> 
 </servlet-mapping> 
 
</web-app> 
  • <listener>标签中定义了spring容器加载器
  • <servlet>标签中定义了spring前端控制器

在 Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener来处理。在ServletContextListener接口中定义了处理ServletContextEvent 事件的两个方法contextInitialized()contextDestroyed()

ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置了这个监听器,启动容器时,就会默认执行它实现的方法。由于在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。

DispatchServlet初始化

在SpringMVC架构中,DispatchServlet负责请求分发,起到控制器的作用。下面详细来解释说明:


  • DispatchServlet名如其义,它的本质上是一个Servlet,子类不断的对HttpServlet父类进行方法扩展
  • HttpServlet有两大核心方法:init()和service()方法。HttpServletBean重写了init()方法,在这部分,我们可以看到其实现思路:公共的部分统一来实现,变化的部分统一来抽象,交给其子类来实现,故用了abstract class来修饰类名。此外,HttpServletBean提供了一个HttpServlet的抽象实现,使的Servlet不再关心init-param部分的赋值,让servlet更关注于自身Bean初始化的实现
  • FrameworkServlet提供了整合web javabean和spring application context的整合方案。在源码中可以看到通过执行initWebApplicationContext()方法和initFrameworkServlet()方法实现
  • DispatchServlet是HTTP请求的中央调度处理器,它将web请求转发给controller层处理,它提供了敏捷的映射和异常处理机制,DispatchServlet转发请求的核心代码在doService()方法中实现

DispatchServlet类和ContextLoaderListener类的关系图:


用ContextLoaderListener初始化上下文,接着使用DispatchServlet来初始化WebMVC的上下文

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对PHPERZ的支持。



相关阅读 :
亚游Spring MVC深入学习之启动初始化过程
Spring MVC深入学习之启动初始化过程
Spring MVC深入学习之启动初始化过程
详解Spring 中如何控制2个bean中的初始化顺序
Spring学习之开发环境搭建的详细步骤
Java事务管理学习之Spring和Hibernate详解
JavaWeb Spring注解Annotation深入学习
JavaWeb Spring依赖注入深入学习
JavaWeb Spring开发入门深入学习
Spring MVC中基于自定义Editor的表单数据处理技巧分享
Spring mvc 接收json对象
spring MVC中传递对象参数示例详解
最新网友评论  共有(0)条评论 亚游发布评论 返回顶部

Copyright © 2007-2017 亚游 All Rights Reserved   冀ICP备14009818号  亚游  广告服务
三分10中1几乎全是空位!郭士强谈到他也无奈 日媒:咖啡文化正在华扎根 中国人饮食不断西化? “技术”本田再发力 多款新车兑现加速电动化承诺 资管巨头贝莱德推首支A股基金 费率不到市场水平一半 上港拥有优先权 徐根宝却为何把梯队转让给申花 技术解盘 如果YouTube是一家独立的公司 它也许比迪士尼更值… 与吉林国资委原副主任王艺新关系密切女子判3年半 俄媒建议海军选购中国军舰:建造速度快 换装武器便捷 工信部部长:中国已经着手研究6G 委员带医疗设备上通道 为普及“猝死第一救命术” 切尔西最争议王牌复活!赛季都快完了他才觉醒
特朗普发推:我们没有和中国进行贸易战 建业官方发文点赞张外龙唤醒建业 24天重拾专治不服 别眨眼!雷霆二少西决对飚 威少看着就流泪了 南昌赛张帅连下8局横扫俄美女 进八强将战朱琳 国象女子等级分世界排名:侯逸凡居文君领跑前两位 叙化武袭击事件被调查 美高官:俄是历史反面教材 俄国防部称已准备好量产萨尔马特重型洲际弹道导弹 劳尔:齐达内该多留皇马几年 所有人都对他满意 日本研究团队发现大型恐龙可能也会“孵蛋” 北京电视台记者金蕾因胃癌去世 年仅38岁 曝巴萨最后通牒巴黎大将:快造反 过期就不买你 杜特尔特无惧美国拒售武:“友国”5千支枪马上到
湖南一脑瘫学生获美国名校博士全奖:托福接近满分 复盘贵州负华夏:恒丰锋霸迷失 拉维奇需支点辅助 韩外长下周出访中亚两国 商讨半岛局势 星巴克停业一下午损失有多大 美媒估算是1200万美元 杭州批发市场营业员:烂果不销毁 卖到餐馆冷饮KTV 普京邀请特朗普 白宫积极回话:接正式邀请愿访俄 八大民主党派中央主席 今天迎来换届后首次亮相 国台办回应万豪将台列为“国家”:要遵循“一中” 中央纪委监察部:去年32件议案建议提案已全部办结 马云说未来的热门行业 服装批发5元到15元 如何创业白手起家 25岁我赚了3个亿 亚游