Maven学习系列(二) 学会看mvnrepository及springmvc简单实例

来源:互联网 发布:slack是什么软件 编辑:程序博客网 时间:2024/05/22 04:32

使用Maven进行开发的时候,比较关键的一个问题就是如何寻找我项目上某某框架、工具、*jar所要依赖的其他jar,OK,有了mvnrepository就帮你大忙了,建议立即访问一下大笑 http://mvnrepository.com/ 

下面以一个springmvc的简单项目进行说明。打开http://mvnrepository.com/ 显示如下



点击E.g右面的spring,mvnrepository会帮你罗列出spring所有的内容

点击

Spring Web MVC 
Spring Web MVC
org.springframework » spring-webmvc

选择一个版本,当前最新版是3.2.2 release ,OK

在中间部分会显示


复制Maven选项卡的内容,

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.2.RELEASE</version>
</dependency>
 

新建一个Maven Project


设置路径


选择Maven项目类型


填写Group ID和Artifact ID,这里的Group Id就是大项目的id,Arifact Id就是该项目的Id。

修改jdk版本为1.6

此时,新建项目的pom文件内容如下:

<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>mvn-test-pringmvc</groupId>  <artifactId>mvn-test-pringmvc</artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>mvn-test-pringmvc 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>  </dependencies>  <build>    <finalName>mvn-test-pringmvc</finalName>  </build></project>

在http://mvnrepository.com 中继续查找spring-web的pom

然后把spring-web和spring-webmvc的dependency添加到项目的pom文件中,

完成后如下:

<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>mvn-test-springmvc</groupId><artifactId>mvn-test-springmvc</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>mvn-test-springmvc 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><version>3.2.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.2.2.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version><type>jar</type></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>servlet-api</artifactId><version>6.0.36</version></dependency></dependencies><build><finalName>mvn-test-springmvc</finalName></build></project>


修改项目为完整的web项目

右键单击项目>属性,找到下面的这个


点击那个Convert to faceted from...,勾选Dynamic Web Module,然后OK


发现多了WebContent这样的一个文件夹,复制WebContent/WEB-INF/web.xml到src/main/webapp/WEB-INF下,覆盖原来的web.xml

删除WebContent文件夹。修改项目的编译路径。

打开如下配置,


test的代码可以不用发布,所以可以把test文件夹删掉,/WebContent已经不存在了,所以也可以删掉。也许会有人问,那lib目录哪去了,项目编译的话,lib怎么加载,OK,这里点击Add...,选择

把maven dependencies添加到发布环境中,最终结果如下,


打开web.xml写以前常写的springmvc的配置吧,一个dispather,一个 ContextLoaderListener


<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  <display-name>mvn-test-springmvc</display-name>   <listener>         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>     </listener>     <servlet>         <servlet-name>springmvc</servlet-name>         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     </servlet>     <servlet-mapping>         <servlet-name>springmvc</servlet-name>         <url-pattern>/</url-pattern>     </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>




这样的话,spring就会到WEB-INF下寻找applicationContext.xml和springmvc-servlet.xml 所以还要添加这个文件,复制一个以前的springmvc项目,简单修改一下,如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-3.2.xsd      http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-3.2.xsd      http://www.springframework.org/schema/mvc      http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">          <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->    <mvc:annotation-driven />    <!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->    <context:component-scan base-package="com.mvn.sprinmvc.controller" />    <!-- 添加JSP视图处理 -->     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>        <property name="prefix" value="/WEB-INF/jsp/"/>        <property name="suffix" value=".jsp"/>    </bean>    <mvc:default-servlet-handler /></beans>

添加 applicationContext.xml 到WEB-INF目录下,内容如下:

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"               xmlns:aop="http://www.springframework.org/schema/aop"               xmlns:tx="http://www.springframework.org/schema/tx"               xmlns:context="http://www.springframework.org/schema/context"               xmlns:p="http://www.springframework.org/schema/p"                 xmlns:cache="http://www.springframework.org/schema/cache"                 xsi:schemaLocation="                    http://www.springframework.org/schema/beans                    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"></beans>

保存,右键项目>Run as > maven install 把需要的jar下载下来,执行成功后,控制台输出 BUILD SUCCESS

此时maven已经把需要的jar都下载到你本地的仓库中了而且已经为项目添加了引用,如图


编写一个简单的controller,HelloController 

package com.mvn.sprinmvc.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HelloController {@RequestMapping("hello")public String hello(HttpServletRequest request){request.setAttribute("result","mvn -springmvc");return "springmvc";}}



在WEB-INF下新建一个jsp文件夹,新建一个springmvc.jsp,内容如下:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!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>mvn springmvc</title></head><body>${result}</body></html>

打开webapp 下的 index.jsp,添加如下内容:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%String context = request.getContextPath()+"/";out.print(context);%><!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>mvn springmvc</title></head><body><a href="<%=context %>hello">go</a></body></html>

然后就可以了


参考:Eclipse maven构建springmvc项目  http://www.cnblogs.com/fangjins/archive/2012/05/06/2485459.html