设为首页 收藏本站
查看: 801|回复: 0

[经验分享] 利用maven构建一个spring mvc的helloworld实例

[复制链接]

尚未签到

发表于 2017-2-28 08:37:01 | 显示全部楼层 |阅读模式
  刚开始学习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如图
DSC0000.png

DSC0001.png

  配置好后我们就需要配置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用例编写完毕

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348167-1-1.html 上篇帖子: HTML5 WebSocket 应用示例 下篇帖子: Appfuse使用中遇到的问题及解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表