发表于: 2017-08-23 23:28:04
3 1032
一、今日完成
1.学习使用 Jetty Maven plugin
首先把jetty-maven-plugin基本配置添加到pom.xml的<plugins>元素定义中:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.6.v20170531</version>
</plugin>
IDEA会自动把 Jetty插件集成到侧边栏,方便直接调用相关命令。
Jetty目前由Eclipse基金会托管;不同版本适用的Servlet 和Java的版本也不相同,具体配置参见《Jetty Version Comparison Table》(http://wiki.eclipse.org/Jetty/Starting/Jetty_Version_Comparison_Table)
其中,contextPath、defaultsDescriptor、overrideDescriptor、tempDirectory、baseResource、resourceBases、baseAppFirst、containerIncludeJarPattern和webInfIncludeJarPattern这几个参数适用于配置WebApp,今天仅了解基本概念,具体配置方法计划在接下来做任务中学习。
2.学习在pom.xml设置依赖项的版本
之前学习过程过中,有时候会出现Maven引入依赖项的版本不正确或者互相不兼容导致各种玄学类问题,今天从一位师兄那里学到一个便捷的方法。昨天练习使用Spring创建一个REST接口的web service,其中需要引入spring-webmvc、spring-core、spring-beans、spring-context、spring-web依赖项,惯用做法是通过<version>元素分别声明各自版本;新的办法如下:
首先在<properties>元素中声明spring版本,
<spring.version>4.2.10.RELEASE</spring.version>
然后在 <dependencies>元素中作如下声明:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency
即可避免因输入错误或者版本不兼容带来的问题。
3.学习使用Spring MVC创建Web程序的方法
1)MVC模式是一个分层的体系结构,分别是模型(model)、视图(view)和控制器(controller)。主要的流程如下图所示。而Spring MVC是Spring的一个子项目,集成了Spring的合兴功能,比如最近学的依赖注入(setter注入和构造函数注入)、管理Bean等。
2)Spring MVC的核心是Dispatcher Servlet,一个主要的Servlet,负责处理所有请求,对它的定义包含在Web程序的部署描述符文件,即src/main/webapp/WEB-INF目录下的web.xml文件。一般定义如下:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.mvc</url-pattern>
</servlet-mapping>
其中,servlet-mapping包含了url-pattern定义。在Servlet初始化阶段,首先查找一个配置XML文件,以便获取Spring应用程序上下文(即WebApplicationContexe的实现,WebApplicationContexe接口扩展自ApplicationContexe接口),即这里的springmvc-servlet.xml,然后启动并运行。
4.重新安装Tomcat并配置环境变量,运行前天创建的RESR接口程序,成功;虽然并没有看到什么可视化的成果。
二、明日计划
1.主讲小课堂,继续整理PPT、相关的背景资料与代码展示。
2.复习前面学习的Spring IoC容器的配置与创建、依赖注入方法;对这些知识点有所遗忘。
三、遇到的问题
1)本周开始学习Spring和REST接口,知识点和代码都是按照工具书的来学习的,虽然我把每个点都看过两遍以上,并且写了代码,但是仅仅知道了有这样一种framework,它是怎么用的,但是具体怎么用并不熟练,甚至学习的一些知识点有遗忘了。
2)Java代码编写并没有类似web开发那样有一个直观的动态的可视化展示,来获得成果反馈;目前顶多可以写一些测试类,检查类的对象和方法能否成功调用,log4j配置文件是否创建了相应级别的日志文件。而这也是编写和调试出一段相对完整的代码块前提前,类似今天学习的定义Servlet,至少目前而言是一个很无聊的东西,在没拉出来遛一遛以前,是骡子是马未可知。
四、收获
收货在今日所学中已阐明,在此不啰嗦了。
评论