利用maven構建一個spring mvc的helloworld實例


剛開始學習maven和spring mvc,學的雲里霧里的

這里提供一個hello world實例,記錄自己的學習之路

首先看maven官網的介紹

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

Maven 是一個項目管理和構建自動化工具。但是對於我們程序員來說,我們最關心的是它的項目構建功能。所以這里我們介紹的就是怎樣用 maven 來滿足我們項目的日常需要。
Maven 使用慣例優於配置的原則 。

Maven 的安裝

Maven 官網的下載鏈接是 : http://maven.apache.org/download.html 。
下載后可以解壓至C盤,比如我的是C:\apache-maven-3.3.9

截至本篇博文書寫之前,maven最新版是3.3.9

然后配置環境變量:M2_HOME   配置的值為C:\apache-maven-3.3.9,也就是你maven的解壓目錄

然后再path路徑配置入%M2_HOME%\bin

至此,maven安裝完畢

 

安裝完成后,在命令行運行下面的命令:     

$ mvn -v 

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: C:\apache-maven-3.3.9
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_91\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

到這一步,我們先不急着進入下一步,安裝還只進行了一半

maven的默認配置文件在maven安裝根目錄下的conf目錄里面的settings.xml

我們將此文件拷貝到用戶目錄下面的.m2目錄里面,並用文本編輯器打開

修改里面的字段

 <localRepository>E:\maven\repository</localRepository>

此字段代表maven的倉庫配置,maven會將所有的依賴下載到這里

接下來是鏡像,經過測試,位於UK的這個鏡像倉庫下載速度比較理想,可以參考以下配置

<mirrors>
 <mirror>
      <id>UK</id>
      <name>UK Central</name>
      <url>http://uk.maven.org/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>     
 </mirrors>

 

接下來我們用 maven 來建立最著名的“Hello World!”程序 :)

1.創建一個web項目,可以利用以下命令創建一個web項目

mvn archetype:generate -DgroupId=top.scorpion.springmvc -DartifactId=springmvc -DarchetypeArtifactId=maven-archetype-webapp

先不要在意上面的參數是干什么的,我們先在命令行里面運行

這里需要注意,我們可以在命令行里面將目錄切換至myeclipse的工程目錄下

我們等一下將會利用myeclipse創建一個springmvc項目

首次運行上面的命令可能需要大概5分鍾時間,運行完后,會在你當前的目錄下創建一個java web項目,並在你的maven倉庫下載一些基礎的依賴文件

2.將我們創建的項目導入myeclipse

在myeclipse的項目瀏覽視圖點擊右鍵,選擇import,導入maven project

將我們剛才創建的額maven項目導入

導入后我們需要配置一下,首先是myeclipse

假如myeclipse沒有集成maven插件,我們可以百度一下,將此插件安裝

目前,我用的myeclipse2015已經集成了這個插件

這樣,我們就可以在myeclipse里面配置我們自己的maven了

點擊window--preferences如圖

配置好后我們就需要配置maven的核心文件了pom.xml,加入一些依賴,並配置一些啟動參數

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>imooc-arthur</groupId>
  <artifactId>spring-mvc-study</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>spring-mvc-study Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>
        
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${commons-lang.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
        <exclusions>
            <exclusion>
                <artifactId>slf4j-api</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions> 
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
  </dependencies>
  
  <properties>
      <commons-lang.version>2.6</commons-lang.version>
      <slf4j.version>1.7.21</slf4j.version>
      <spring.version>4.3.0.RELEASE</spring.version>
  </properties>
  
  <dependencyManagement>
      <dependencies>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-framework-bom</artifactId>
              <version>${spring.version}</version>
              <type>pom</type>
              <scope>import</scope>
          </dependency>
      </dependencies>
  </dependencyManagement>
  
  <build>
      <plugins>
          <plugin>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-maven-plugin</artifactId>
              <version>9.3.10.v20160621</version>
        </plugin>
      </plugins>
      <finalName>spring-mvc-study</finalName>
  </build>

</project>

配置完pom.xml后,我們還需要配置springmvc的配置文件mvc-dispatcher-servlet.xml

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

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop.xsd
         http://www.springframework.org/schema/mvc
         http://www.springframework.org/schema/mvc/spring-mvc.xsd
         http://www.springframework.org/schema/tx
         http://www.springframework.org/schema/tx/spring-tx.xsd">
    <context:annotation-config/>
        <context:component-scan base-package="top.scorpion.mvcdemo.controller">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
        
        <mvc:annotation-driven/>
    <!-- 這里我們指定了view視圖層的定義-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsps/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    

</beans>   

 

當然我們的核心文件web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  
  <servlet>
      <servlet-name>mvc-dispatcher</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
      <servlet-name>mvc-dispatcher</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
  
</web-app>

在web.xml中我們指定了springmvc的核心配置文件的目錄/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml

以及mvc-dispatcher

最后我們可以編寫一個測試用例hellospringmvc

package top.scorpion.mvcdemo.controller;

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

@Controller
@RequestMapping("/hello")
public class HelloMvcController
{
    @RequestMapping("/mvc")
    public String HelloMvc()
    {
        return "home";
    }
}

至此,所有配置文件和測試用例准備完畢

接下來我們要運行我們的測試用例

我們在pom.xml中配置了一個web容器,jetty

jetty可以運行我們的web app

打開命令行,進入工程目錄,輸入mvn jetty:run

當出現如下代碼,說明我們的依賴以及jetty已經正確配置

[INFO] jetty-9.3.10.v20160621
[INFO] No Spring WebApplicationInitializer types detected on classpath
log4j:WARN No appenders could be found for logger (org.springframework.web.servlet.DispatcherServlet).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[INFO] Initializing Spring FrameworkServlet 'mvc-dispatcher'
[INFO] Started o.e.j.m.p.JettyWebAppContext@12db3386{/,file:///E:/myeclipse/spring-mvc-study/src/main/webapp/,AVAILABLE}
{file:///E:/myeclipse/spring-mvc-study/src/main/webapp/}
[INFO] Started ServerConnector@6296474f{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[INFO] Started @5910ms
[INFO] Started Jetty Server

這樣maven就會自動下載我們配置的依賴已經啟動jetty

然后在瀏覽器輸入http://localhost:8080/hello/mvc

至此,hello world用例編寫完畢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM