码迷,mamicode.com
首页 > 编程语言 > 详细

使用Eclipse构建Maven的SpringMVC项目

时间:2015-01-04 22:50:05      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

使用Eclipse构建Maven的SpringMVC项目

? maven的好处:

1 最主要就是自动下载jar包和它所依赖的包

2保证多人开发时jar版本不同的问题

3 文件结构清晰,java文件,资源文件,测试文件都分的很清楚。

将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven项目方法。

?? ? ? ?将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven项目方法。

一、直接建立Maven项目方法

1、建立Maven项目

?? ? ? ?接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:

1.1 选择建立Maven Project

选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project。点击newxt。


技术分享

? ?

? ?

1.2 选择项目路径

Use default Workspace location默认工作空间。


技术分享

? ?

? ?

1.3 选择项目类型

在Artifact Id中选择maven-archetype-webapp


技术分享

? ?

? ?

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

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

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

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


技术分享

? ?

? ?

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


技术分享

? ?

如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。

2、配置Maven项目

接下来就需要更改好多配置了。

2.1 添加Source文件夹

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

建立src/main/java,src/test/java时显示文件已存在,这是吧这两个建成Folder
技术分享


技术分享

? ?

? ?

2.2 更改class路径

右键项目,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.3 把项目变成Dynamic Web项目

? ?

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


技术分享

? ?

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.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,点击进去后,如下图:


技术分享

? ?

? ?

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

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中查找它。

? ?

? ?

通常SpringMVC项目所需要配置scope的jar包如下图:


技术分享

? ?

有的时候发现servlet-api还是被打包到lib下面了,此时肯定会报错。就需要把maven插件中的WTP也安装一下。

Eclipse在线安装路径:http://m2eclipse.sonatype.org/sites/m2e-extras。选择for Eclipse WTP。


技术分享

? ?

? ?

? ?

4、构建SpringMVC框架

? ?

4.1 编辑web.xml文件

? ?

需要添加log4j,字符过滤,Spring 的dispatcher等。

webx.xml代码如下:

? ?

Xml代码 技术分享?技术分享技术分享

  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <web-app?xmlns="http://java.sun.com/xml/ns/javaee"? ??
  3. ?????????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  4. ?????????xsi:schemaLocation="http://java.sun.com/xml/ns/javaee? ??
  5. ?????????????????????????????http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"? ??
  6. ?????????version="2.5"?>??
  7. ???? ??
  8. ????<!--?区分项目名称,防止默认重名?-->??
  9. ????<context-param>??
  10. ????????<param-name>webAppRootKey</param-name>??
  11. ????????<param-value>maven.example.root</param-value>??
  12. ????</context-param>??
  13. ??
  14. ????<!--?Spring的log4j监听器?-->??
  15. ????<listener>??
  16. ????????<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>??
  17. ????</listener>??
  18. ??
  19. ????<!--?字符集?过滤器??-->??
  20. ????<filter>??
  21. ????????<filter-name>CharacterEncodingFilter</filter-name>??
  22. ????????<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>??
  23. ????????<init-param>??
  24. ????????????<param-name>encoding</param-name>??
  25. ????????????<param-value>UTF-8</param-value>??
  26. ????????</init-param>??
  27. ????????<init-param>??
  28. ????????????<param-name>forceEncoding</param-name>??
  29. ????????????<param-value>true</param-value>??
  30. ????????</init-param>??
  31. ????</filter>??
  32. ????<filter-mapping>??
  33. ????????<filter-name>CharacterEncodingFilter</filter-name>??
  34. ????????<url-pattern>/*</url-pattern>??
  35. ????</filter-mapping>??
  36. ??
  37. ????<!--?Spring?view分发器?-->??
  38. ????<servlet>??
  39. ????????<servlet-name>dispatcher</servlet-name>??
  40. ????????<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>??
  41. ????????<init-param>??
  42. ????????????<param-name>contextConfigLocation</param-name>??
  43. ????????????<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>??
  44. ????????</init-param>??
  45. ????????<load-on-startup>1</load-on-startup>??
  46. ????</servlet>??
  47. ????<servlet-mapping>??
  48. ????????<servlet-name>dispatcher</servlet-name>??
  49. ????????<url-pattern>*.do</url-pattern>??
  50. ????</servlet-mapping>??
  51. ??
  52. </web-app>??

<?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代码 技术分享?技术分享技术分享

  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <beans?xmlns="http://www.springframework.org/schema/beans"? ??
  3. ???????xmlns:aop="http://www.springframework.org/schema/aop"? ??
  4. ???????xmlns:context="http://www.springframework.org/schema/context"??
  5. ???????xmlns:mvc="http://www.springframework.org/schema/mvc"? ??
  6. ???????xmlns:tx="http://www.springframework.org/schema/tx"? ??
  7. ???????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  8. ???????xsi:schemaLocation="http://www.springframework.org/schema/aop? ??
  9. ????????http://www.springframework.org/schema/aop/spring-aop-3.0.xsd? ??
  10. ????????http://www.springframework.org/schema/beans? ??
  11. ????????http://www.springframework.org/schema/beans/spring-beans-3.0.xsd? ??
  12. ????????http://www.springframework.org/schema/context? ??
  13. ????????http://www.springframework.org/schema/context/spring-context-3.0.xsd? ??
  14. ????????http://www.springframework.org/schema/mvc? ??
  15. ????????http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd? ??
  16. ????????http://www.springframework.org/schema/tx? ??
  17. ????????http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">??
  18. ??
  19. ????<mvc:annotation-driven?/>??
  20. ????<context:component-scan?base-package="liming.maven.example"?/>??
  21. ??
  22. ????<bean?class="org.springframework.web.servlet.view.InternalResourceViewResolver">??
  23. ????????<property?name="prefix"?value="/WEB-INF/views/"?/>??
  24. ????????<property?name="suffix"?value=".jsp"?/>??
  25. ????</bean>??
  26. ??
  27. </beans>??

<?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="liming.maven.example" />

?

????<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层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:

? ?

Java代码 技术分享?技术分享技术分享

  1. package?liming.maven.example.view; ??
  2. ??
  3. import?org.springframework.stereotype.Controller; ??
  4. import?org.springframework.ui.Model; ??
  5. import?org.springframework.web.bind.annotation.RequestMapping; ??
  6. ??
  7. @Controller??
  8. public?class?GeneralController?{ ??
  9. ??
  10. ????@RequestMapping(value="index.do") ??
  11. ????public?void?index_jsp(Model?model){ ??
  12. ????????model.addAttribute("liming",?"黎明你好"); ??
  13. ????????System.out.println("index.jsp"); ??
  14. ????} ??
  15. }??

package liming.maven.example.view;

?

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("liming", "黎明你好");

????????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页面代码如下:

? ?

Html代码 技术分享?技术分享技术分享

  1. <%@?page?language="java"?contentType="text/html;?charset=UTF-8"?pageEncoding="UTF-8"%>??
  2. <%@?taglib?prefix="c"?uri="http://java.sun.com/jsp/jstl/core"%>??
  3. <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">??
  4. <html>??
  5. ????<head>??
  6. ????????<meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8">??
  7. ????????<title>Insert?title?here</title>??
  8. ????</head>??
  9. ???? ??
  10. ????<body>??
  11. ????????<c:out?value="${liming}"></c:out>??
  12. ????</body>??
  13. </html>??

<%@ 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="${liming}"></c:out>

????</body>

</html>

? ?

? ?

? ?

? ?

5.发布到tomcat

这个就没啥说的了。

Eclipse下Tomcat常用设置:http://limingnihao.iteye.com/admin/blogs/825394

? ?

? ?

6.测试

访问地址:http://localhost:8080/liming.maven.example/index.do

访问的结果来个截图:


技术分享

? ?

? ?

二、建立Dynamic Web project转成Maven项目方法

7、第二种方法DynamicWeb项目转成Mavan

7.1 新建Dynamic Web Project

????依次选择选择File -> New -> Other。在New窗口中选择Web下的Dynamic Web Project。点击next。


技术分享

? ?

7.2 配置项目信息

7.2.1 输入项目信息

首先输入项目名称。

Target runtime 一般选择使用什么容器,tomcat之类的。可以先不选。

Dynamic web module version。就是版本号。选择2.5(3.0是Java7的)。

Configuration 是选择容易的配置。如果Target runtime选择了tomcat。这里对应也是选择tomcat。

Next。


技术分享

7.2.2 配置source和output的folder

此窗口输入需要建立的Source folders。和默认output folder。

这个我们的Source folders等建立完项目后在添加。

output folder可以顺手改成target/classes。


技术分享

? ?

7.2.3 配置web.xml文件的路径


技术分享

? ?

? ?

7.3 转成maven项目

Dynamic web项目建立完后,首先将其转成maven项目。

右键此项目,选择maven -> Enable Dependency Management。弹出的窗口,直接finish就可以了。


技术分享

? ?

7.4 其他配置

接下来的配置工作就和前面的基本一样了。

请参考上面。

2.1添加Source文件夹

2.2更改class路径。

2.3.3 配置 Modify Faceted Project

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

? ?

接着就是构建SpringMVC框架,发布到tomcat,测试。

? ?

? ?

使用Eclipse构建Maven的SpringMVC项目

标签:

原文地址:http://www.cnblogs.com/baixl/p/4202339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!