使用 Eclipse 构建 Maven3.0 + SpringMVC 项目(一.完成框架搭建)

准备工具: eclipse 3.6   +  maven 3.0  +  apache-tomcat-7.0.29

一.

  1. 建立一个项目 File -> New ->Projec ->  Maven Project -> Use default Workspace location ->  maven-archetype-webapp
  2. 然后设置 GroupID 和 ArtifactID  ,  package name 有没有无所谓。 点击  Finish; 进入下一步;

 

二.

  1. 接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。(如果不能创建则表示已有)右键项目根目录点击New -> Source Folder 建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。
  2. Source Folder 建立完毕以后,需要去修改一下OutPut Folder 的路径;右键项目根目录点击 Build Path -> Configure Build Path -> Source(如图进行修改)

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

    src/test/java ,src/test/resources, 选择target/test-classes;

  3. 此处并没有设置完,我们要进入 右边菜单的Project Facets , 点击Convert to Facet Form...   ;勾选并更改Dynamic Web Module的Version为2.5。
    如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。
  4. 点击右边Runtimes 勾选
  5. 点击下方的链接: Further Configuration available。 弹出Modify Faceted Project窗口,此处是设置web.xml文件的路径,我们输入src/main/webapp。Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。
  6. 点击OK  ->  OK退出设置;

 

三.

  1. 右键项目根目录点击Properties。  点击Deployment Assembly . 删除test的两项,因为test是测试使用,并不需要部署。
  2. 设置将Maven的jar包发布到lib下。Add -> Java Build Path Entries -> Maven Dependencies -> Finish;
  3. 点击OK退出。至此我们的基本环境搭建完毕;

四.

  1. 使用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内容。(这里我对jar的理解不够,只能贴上我在项目中常用的jar包);
  2. 当你发现你缺少一个jar包时你可以单独添加,方法如下:
  3. 注意单独添加需要设置它的Scope 。最重要的就是scope,它有以下几种取值:
    1. compile,缺省值,适用于所有阶段,会随着项目一起发布。
    2. provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
    3. runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
    4. test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
    5. system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
      
        <groupId>myblog</groupId>
        <artifactId>myblog</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
      
        <name>myblog</name>
        <url>http://maven.apache.org</url>
      
        <dependencies>
          <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.11</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <!-- springframe start -->
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-core</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context-support</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-beans</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jdbc</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-web</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-webmvc</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-orm</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-aspects</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-instrument</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-oxm</artifactId>
                  <version>${org.springframework.version}</version>
              </dependency>
              <!-- springframe end -->
              <!-- 模板引擎 velocity start -->
              <dependency>
                  <groupId>org.apache.velocity</groupId>
                  <artifactId>velocity</artifactId>
                  <version>1.7</version>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>org.apache.velocity</groupId>
                  <artifactId>velocity-tools</artifactId>
                  <version>1.4</version>
                  <scope>compile</scope>
              </dependency>
              <!-- Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML, 
                  它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web 开发架构提供模板服务(template 
                  service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发 -->
      
              <!-- 日志文件管理包 -->
              <!-- log start -->
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-api</artifactId>
                  <version>1.6.1</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-log4j12</artifactId>
                  <version>1.6.1</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <!-- log end -->
              <dependency>
                  <groupId>org.apache.ant</groupId>
                  <artifactId>ant-apache-log4j</artifactId>
                  <version>1.8.2</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>dom4j</groupId>
                  <artifactId>dom4j</artifactId>
                  <version>1.6.1</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>commons-digester</groupId>
                  <artifactId>commons-digester</artifactId>
                  <version>2.1</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <!-- mybatis核心包 -->
              <dependency>
                  <groupId>org.mybatis</groupId>
                  <artifactId>mybatis</artifactId>
                  <version>3.1.1</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <!-- mybatis/spring包 -->
              <dependency>
                  <groupId>org.mybatis</groupId>
                  <artifactId>mybatis-spring</artifactId>
                  <version>1.1.1</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>com.kenai.nbpwr</groupId>
                  <artifactId>org-apache-commons-dbcp</artifactId>
                  <version>1.2.2-201002241055</version>
                  <type>nbm</type>
                  <scope>compile</scope>
              </dependency>
              <!-- mysql驱动包 -->
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.14</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>com.caucho</groupId>
                  <artifactId>hessian</artifactId>
                  <version>4.0.7</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>jaxen</groupId>
                  <artifactId>jaxen</artifactId>
                  <version>1.1.4</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>org.json</groupId>
                  <artifactId>json</artifactId>
                  <version>20090211</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>quartz</groupId>
                  <artifactId>quartz</artifactId>
                  <version>1.5.2</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>com.googlecode.xmemcached</groupId>
                  <artifactId>xmemcached</artifactId>
                  <version>1.3.6</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>fastjson</artifactId>
                  <version>1.1.13</version>
              </dependency>
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>druid</artifactId>
                  <version>0.2.10</version>
              </dependency>
              <dependency>
                  <groupId>jstl</groupId>
                  <artifactId>jstl</artifactId>
                  <version>1.2</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>net.sourceforge</groupId>
                  <artifactId>pinyin4j</artifactId>
                  <version>2.5.0</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>com.kenai.nbpwr</groupId>
                  <artifactId>org-apache-commons-io</artifactId>
                  <version>1.3.1-201002241208</version>
                  <type>nbm</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>commons-fileupload</groupId>
                  <artifactId>commons-fileupload</artifactId>
                  <version>1.2.2</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>org.apache.poi</groupId>
                  <artifactId>poi-ooxml</artifactId>
                  <version>3.7</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>org.apache.poi</groupId>
                  <artifactId>poi-ooxml-schemas</artifactId>
                  <version>3.7</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>simpleimage</artifactId>
                  <version>0.1</version>
              </dependency>
              <dependency>
                  <groupId>com.sun.media</groupId>
                  <artifactId>jai_codec</artifactId>
                  <version>2012117</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              <dependency>
                  <groupId>javax.media</groupId>
                  <artifactId>jai_core</artifactId>
                  <version>2012117</version>
                  <type>jar</type>
                  <scope>compile</scope>
              </dependency>
              
               <dependency>
                  <groupId>org.codehaus.jackson</groupId>
                  <artifactId>jackson-core-lgpl</artifactId>
                  <version>1.8.1</version>
              </dependency>
              <dependency>
                  <groupId>org.codehaus.jackson</groupId>
                  <artifactId>jackson-mapper-lgpl</artifactId>
                  <version>1.8.1</version>
              </dependency>
        </dependencies>
        <properties>
              <org.springframework.version>3.2.0.RELEASE
              </org.springframework.version>
          </properties>
          <build>
              <finalName>myblog</finalName>
          </build>
      </project>
      pom.xml

       

 五.编辑web.xml文件;

  1.  路径:/myblog/src/main/webapp/WEB-INF/web.xml
  2.  需要添加log4j,字符过滤,Spring 的dispatcher等等。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        id="WebApp_ID" version="2.5">
        <display-name>Archetype Created Web Application</display-name>
        <!-- Spring字符集过滤器 -->
        <filter>
            <filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <!-- Spring的log4j监听器 -->  
        <listener>  
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
        </listener> 
    
        <!-- springMVC核心配置 -->
        <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>
    web.xml

六.编辑Spring的配置文件dispatcher-servlet.xml ;

    1. 路径:/myblog/src/main/webapp/WEB-INF/dispatcher-servlet.xml ;(可以随意,只要在web.xml中填上对应的正确的路径就OK)
        <init-param>  
                  <param-name>contextConfigLocation</param-name>  
                  <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>  
            </init-param>
    2. 如要添加MVC驱动、注解检测、视图解析等。

 

 七.编辑一个用来测试的Controller层测试类 App.java;

  1. 路径:/myblog/src/main/java/myblog/myblog/App.java ;
  2. 此类只有一个方法做地址映射,并向页面传递一个数据。
    package myblog.myblog;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * Your first JSP page!
     *
     */
    @Controller
    public class App 
    {
          @RequestMapping(value="index.do")  
            public void index_jsp(Model model){  
                model.addAttribute("jerry", "It's your first page!");  
                System.out.println("index.jsp");  
            } 
    }
    App.java

     

八.编辑一个简单的index.jsp 页面;

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

  2. 在views下建index.jsp文件我们使用jstl获取Controlleradd的数据。

    <%@ 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>First Page</title>  
        </head>  
          
        <body>  
            <c:out value="${jerry}"></c:out>  
        </body>  
    </html>
    index.jsp

     

 九.发布和测试:

  1. 发布到Tomcat 上;
  2. 浏览器输入http://localhost:8080/myblog/index.do 进行测试。

 十.相关截图:

 

posted @ 2014-04-30 09:33  Jerry_China  阅读(187)  评论(0)    收藏  举报