您的位置:首页 > 编程语言 > Java开发

SpringMVC构建REST接口:第一篇 使用Eclipse构建Maven的SpringMVC项目

2013-05-21 16:35 489 查看


1、建立Maven项目


1.1 选择建立Maven Project

选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project,如图1-1。点击next。



图1-1


1.2 选择项目路径

Use default Workspace location默认工作空间,图1-2。



图1-2


1.3 选择项目类型

在Artifact Id中选择maven-archetype-webapp,图1-3



图1-3


1.4 输入Group ID和 Artifact ID,以及Package

Group ID一般写大项目名称。Artifact ID是子项目名称。

例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。

Package是默认给你建一个包,不写也可以。图1-4



图1-4


1.5 刚建立好后的文件结构如下图



图1-5


2、配置Maven项目


2.1 添加Source文件夹

接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder,

建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。图2-1



图2-1

另外还有方法,src文件夹下,分别建立src\main\java,src\test\java,src\test\resources几个文件夹,然后在Eclipse中按F5(刷新),然后再依次点击各个文件夹的右键,选择built path->use as a Source Folder.

2.2 更改class路径

右键项目(或选择项目,按Alt+Enter),在Properties窗口中Java
Build Path -> Source,下面应该有4个文件夹。src/main/java,src/main/resources,src/test/java ,src/test/resources。

双击每个文件夹的Output
folder,选择路径。

src/main/java,src/main/resources,选择target/classes;

src/test/java ,src/test/resources, 选择target/test-classes;
选上Allow output folders for source folders.

在此处还要更改:

更改文件夹显示的顺序:点击Order and Export。

更改JDK版本:在Libraries双击JRE System Library,要1.6版本。图2-2



图2-2


2.3 把项目变成Dynamic Web项目


2.3.1 右键项目,选择Project Facets,点击Convert to faceted from
图2-3



图2-3


2.3.2 配置Project Facets

更改Dynamic Web Module的Version为2.5。(3.0为Java7的)。

如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。图2-4



图2-4


2.3.3 配置 Modify Faceted Project

点击Further configuration available…,弹出Modify Faceted Project窗口

此处是设置web.xml文件的路径,我们输入src/main/webapp。

Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。


2.4 设置部署程序集(Web Deployment Assembly)

上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图2-5:



图2-5

此处列表是,部署项目时,文件发布的路径。

1,我们删除test的两项,因为test是测试使用,并不需要部署。

2,设置将Maven的jar包发布到lib下。

Add -> Java Build Path Entries -> Maven Dependencies -> Finish

设置完成效果图




3、向maven项目中添加jar包

maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。


3.1 在pom.xml中添加所需要的jar包

使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来dependencies内容。




3.2设置jar包的scope

当添加进入一个jar包后,有一些属性需要设置,最重要的就是scope,它有以下几种取值:

1. compile,缺省值,适用于所有阶段,会随着项目一起发布。

2. provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

3. runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

4. test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

5. system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。


4、构建SpringMVC框架


4.1 编辑web.xml文件

需要添加log4j,字符过滤,Spring 的dispatcher等。
webx.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" >

<!-- 区分项目名称,防止默认重名 -->

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>maven.example.root</param-value>

</context-param>

<!-- Spring的log4j监听器 -->

<listener>

<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

</listener>

<!-- 字符集 过滤器 -->

<filter>

<filter-name>CharacterEncodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CharacterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- Spring view分发器 -->

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

</web-app>


4.2 编写Spring配置文件dispatcher-servlet.xml

如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:

<?xml
version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<mvc:annotation-driven />

<context:component-scan base-package="com.jiahe.rest.demo2" />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/" />

<property name="suffix" value=".jsp" />

</bean>

</beans>


4.3 编写一个Controller层测试类

编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:
package
com.jiahe.rest.demo2.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class GeneralController {

@RequestMapping(value="index.do")

public void index_jsp(Model model){

model.addAttribute("hello", "Hi,SpringMVC");

System.out.println("index.jsp");

}
}


4.4 编写index.jsp页面

首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。

在views下建index.jsp文件

我们使用jstl获取Controlleradd的数据。

Jsp页面代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<c:out value="${hello}"></c:out>

</body>

</html>


5,发布到tomcat


6,测试

访问地址:http://localhost:8080/demo2/index.do
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: