发表于: 2017-08-26 23:48:53

1 890



今天完成的任务

1.翻译jetty的启动过程
心血来潮,突然想研究一下用命令行启动jetty时“跳出来的”一大串日志到底写的什么东西
把用命令行启动jerry的记录复制,然后翻译了一下
D:\Program Files\jetty>java -jar start.jar
启动jetty
2017-08-26 09:13:17.126:INFO::main: Logging initialized @604ms
日志初始化耗时604ms
2017-08-26 09:13:17.174:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended.  See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html
这个jetty的实例并不是运行在单独的jetty基目录上,这是不推荐的。可参考...
2017-08-26 09:13:17.307:INFO:oejs.Server:main: jetty-9.2.9.v20150224
jetty版本jetty-9.2.9.v20150224
2017-08-26 09:13:17.321:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/D:/Program%20Files/jetty/webapps/] at interval 1
线程:自动扫描应用 - jetty支持热部署,默认开启的自动扫描的间隔为1秒
2017-08-26 09:13:19.909:INFO:springmvc:main: 1 Spring WebApplicationInitializers detected on classpath
线程:springmvc的main线程 - 类路径发现(war包,解析war包,发现)1个spring的WebApplicationInitializers
WebApplicationInitializer是Spring MVC提供的一个接口,它会查找所有基于代码的配置,并应用他们来初始化Sevlet 3版本以上的web容器
2017-08-26 09:13:20.310:INFO:springmvc:main: Initializing Spring root WebApplicationContext
线程:springmvc的main线程 - 初始化Spring的根网页应用上下文(也就是ApplicationContext.xml)
0    [main] INFO  org.springframework.web.context.ContextLoader  - Root WebApplicationContext: initialization started
线程:上下文加载器 - 开始初始化根网页应用上下文
20   [main] INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext  - Refreshing Root WebApplicationContext: startup date [Sat Aug 26 09:13:20 CST 2017]; root of context hierarchy
线程:注解配置网页应用上下文 - 重构根应用上下文(这里不太理解):重构时间...;(root of context heerarchy不会翻译
98   [main] INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext  - Registering annotated classes: [class user.util.RootConfig]
线程:注解配置网页应用上下文 - 注册注解类[class user.util.RootConfig]
389  [main] INFO  org.springframework.web.context.ContextLoader  - Root WebApplicationContext: initialization completed in 387 ms
线程:上下文加载器 - 根网页应用上下文初始化完毕
2017-08-26 09:13:20.784:INFO:springmvc:main: Initializing Spring FrameworkServlet 'dispatcher'
线程:springmvc的mian线程 - 正在初始化Spring的前端控制器DispatcherServlet
487  [main] INFO  org.springframework.web.servlet.DispatcherServlet  - FrameworkServlet 'dispatcher': initialization started
线程:(调用)Spring框架-web(这个jar包的)servlet类的DispatcharSerlvet方法 - 初始化(前端控制器)(jar包、类、方法可能不准确)
487  [main] INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext  - Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Sat Aug 26 09:13:20 CST 2017]; parent: Root WebApplicationContext
线程:支持注解配置网页应用上下文的方法 - 根据父(类)Root WebApplicationContext去配置dispatcher-servlet的WebApplicationContext
503  [main] INFO  org.springframework.web.context.support.AnnotationConfigWebApplicationContext  - Registering annotated classes: [class user.util.WebConfig]
线程:支持注解配置网页应用上下文的方法 - 注册注解类[WebConfig]
863  [main] INFO  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping  - Mapped "{[/],methods=[GET]}" onto public java.lang.String user.controller.HomeController.home()
线程:springweb-servlet-mvc-方法-注解-请求映射处理器映射(设置) - 映射URL"/"的GET方法到HomeController.home()方法上
1206 [main] INFO  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter  - Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Sat Aug 26 09:13:20 CST 2017]; parent: Root WebApplicationContext
没看懂这个过程
1448 [main] INFO  org.springframework.web.servlet.DispatcherServlet  - FrameworkServlet 'dispatcher': initialization completed in 961 ms
Dispatcher初始化完成(961ms)
2017-08-26 09:13:21.760:INFO:oejsh.ContextHandler:main: Started
线程:上下文处理器的main线程 - 开始
o.e.j.w.WebAppContext@617be11e{/springmvc,file:/C:/Users/J.w/AppData/Local/Temp/jetty-0.0.0.0-8080-springmvc.war-_springmvc-any-7622602655418452279.dir/webapp/,AVAILABLE}{D:\Program Files\jetty\webapps\springmvc.war}
2017-08-26 09:13:21.806:INFO:oejs.ServerConnector:main: Started ServerConnector@55fa0b27{HTTP/1.1}{0.0.0.0:8080}
2017-08-26 09:13:21.822:INFO:oejs.Server:main: Started @5301ms

然后把上面的过程捋一捋,画了一个思维导图

以上就是基于Java代码配置的Spring MVC的一个过程。

把图画出来后,头脑清晰多了。大体的思路抓住了,更清晰的东西还要回头再看一次。


2.尝试用IDEA创建一个基于XML配置的Spring MVC

这两天用了IDEA几次,感觉比Eclipse智能一些,但还不太习惯,操作得慢了一些

IDEA有一个查看依赖关系的功能,通过这个功能,我知道了完成一个Spring MVC项目,最少需要8个jar包


遇到的问题

分不清Root WebApplicationContext和WebApplicationContext是什么东西?

回答:

简单的理解是Root WebApplicationContext就是Spring的ApplicationContext.xml,

WebApplicationContext是特殊的ApplicationContext,前者支持主题解析并且能够识别绑定的Dispatcher。

两个是继承关系:

父配置Root WebApplicationContext用来加载非Web组件(datasource、jdbcTemplate等)

子配置WebApplicationContext用来加载Web组件(Controller、视图解析器)

子配置WebApplicationContext可以继承父配置Root WebApplicationContext里的Bean,反过来不行


收获

前几天看书是懵懵懂懂的,今天是开始理解原理了


明天的计划

还是先用XML配置的方式去实现环境编写REST接口

把XML方式弄好以后再考虑用JAVA代码配置环境的方式去写REST接口


进度

当前进度 任务2步骤2

任务开始时间 2017.8.22

预计提交时间 2017.8.29

禅道 http://task.ptteng.com/zentao/my-task.html


返回列表 返回列表
评论

    分享到