本文主要是指导如何使用Eclipse搭建Maven的SpringWeb工程,默认读者已经懂得J2EE、Maven的基础知识与配置
前言
一. 准备工作
二. 创建Maven项目
三. 修改项目格式
1. 切换java版本
2. src/main/java等资源文件夹不全
3.Deployment Assembly 丢失
四. 编写Hello World
1. 配置pom
2. 编写Spring MVC的代码
3. 配置Tomcat服务器
五. 验证
首先需要下载maven的压缩包,解压,配置本地库;给Eclipse安装maven插件 具体操作方法可参考:安装maven与插件
我的最终配置结果如图:
点击Eclipse的菜单:File->New->Other->Maven 选择 Maven Project 点击Next
选择项目类型,这里一般选择的是maven-archetype-webapp,这里特别要细心,因为可选类型比较多,容易选错,后面造成困扰又返工。选择maven-archetype-quickstart也可以,只是后面可能需要做点小修改
这里是列表文本填写Group Id和Artifact Id,Version:这里是定义你的工程的maven坐标信息,如果你的项目是为了最终导出maven包提供给其他人用,那么当你把包放在仓库中后,这里填写的Group Id和Artifact Id,Version就可以提供给引用方,在他的pom文件里面配置好,就可以下载到你的maven包了。
我的信息如下,version先用系统的默认值
有时候生成的项目格式不够标准,或者相关配置不正确,导致eclipse编辑、编译class或者导出maven包时出错,因此我们要修改相关配置,使项目规范。此步骤并非必须,有的maven项目新建后正常,不需要此步骤。总之操作都根据项目实际情况而定
有的时候需要用到特殊版本,但eclipse的java版本可能并不匹配,尤其是新建了WorkSpace工作空间后,所以需要我们手动切换下。以刚才的项目为例:新建后的JavaJRE版本为1.6,我想切换成1.7。
首先在eclipse中添加JRE1.7的java版本,并且把1.7设为了默认:在window->Preferences->Java->Installed JREs中,点击Add,找到需要的JRE版本的安装路径
之后,右击项目,在弹出的tab中选择最下面的properties,在弹出窗口中,选择Java Build Path->Libraries,可以看到JRE版本是默认的1.6,双击它,弹出的窗口里,换成刚刚找到的1.7()
有时候切换JRE后,会报错:Java compiler level does not match the version of the installed Java project facet,尤其是从低版本切换到高版本的时候。这时候需要修改下Properties里面的配置(具体也可参考:Project facets):
右击项目,在弹出的tab中选择最下面的properties,在弹出窗口中,选择Project Facets,将里面的java的版本切换到对应的level,我切换成了1.7
资源文件夹包括四个:
src/main/java
src/main/resource
src/test/java
src/test/resource
有时候新建工程后,并没有上述全部4个资源文件夹,就需要自己手动新建。新建方法大多程序员都清楚,选择项目,右击,选择New->resource folder 然后缺什么文件夹就填写什么文件夹名,之后点击确定就生成了对应的资源文件夹
特殊情况时,当填写了对应的资源文件夹名时,会报错,说文件夹已经存在了。可是从左边的项目中并不能看到此文件夹:
解决此问题,需要 右击项目,在弹出的tab中选择最下面的properties,在弹出窗口中,选择Java Build Path->source,可以看到这个文件夹的关联是missing,在这里删除掉对应的配置,然后重新新建,就可以了。
需要注意的是,Java Build Path->source这个地方可以设置不同资源文件夹编译后的文件存放的文件位置,在Output folder中设置,此配置可能会影响本地编译测试或最后的打包结果
Deployment Assembly 丢失问题解决
项目第一个测试程序都是hello world ,我们也不例外,编写hello world来测试整个服务正常编写与启动
双击我们刚新建项目的pom.xml,发现里面的dependences中,依赖包只有junit一项,因为我们是spring工程,因此需要把spring相关的dependence加上,如下:
UTF-8
3.2.4.RELEASE
3.8.1
junit
junit
${junitversion}
test
org.springframework
spring-core
${springversion}
org.springframework
spring-web
${springversion}
org.springframework
spring-oxm
${springversion}
org.springframework
spring-tx
${springversion}
org.springframework
spring-jdbc
${springversion}
org.springframework
spring-webmvc
${springversion}
org.springframework
spring-aop
${springversion}
org.springframework
spring-context-support
${springversion}
org.springframework
spring-test
${springversion}
javax.servlet
javax.servlet-api
3.0.1
配置完成后,保存。在工程上,右击,选择maven->Update Project···,下载依赖包,完成后,可以看到
- 如果下载不成功,可以看看maven下载的日志,其中概率很大的两个原因是:maven远程库网络不通;下载产生了.lastUpdated文件在maven本地库中,项目无法正常引用。
- 如果是连不到maven远程库,需要更换maven库的地址或者镜像地址,换成国内的库地址试试(在settings.xml中修改)。
- 如果是生成.lastUpdated文件,则需要删除本地库内的.lastUpdated文件,然后重新Update Project,直到正确下载。
spring包已经正常引用了,因此可以按照spring MVC模式去编写Web代码
每一个java服务都有一个web.xml文件,在WEB-INF文件夹下,配置系统的基本信息,我们先对此文件内容进行修改:
Archetype Created Web Application
spring
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:/spring-mvc.xml
spring
/
上面指定的spring配置文件名为:spring-mvc.xml,放在classpath下,我放在了src/main/resource
之后就是java文件,编写Controller
package org.leisu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorldController {
@RequestMapping(value="/helloWorld")
public String helloWorld(){
return "HelloWorld";
}
}
映射到的jsp文件为 HelloWorld.jsp(此文件名与上面helloWorld()方法返回的字符串一致才可以),在view目录下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Hello World
Hello World
在server中,点击,配置Tomcat服务器,找到本地下载解压好的tomcat地址
将新项目添加到此tomcat的托管工程下
加载完成后,启动服务(绿色三角箭头)
在浏览器中输入地址,得到正确结果,说明程序成功启动