在Intellij Idea中使用Maven创建Spring&SpringMVC项目
环境及版本
- Jetbrains Intellij Idea 15.0.6
 - Spring 4.1.6
 - JDK 1.8.0_20
 - Tomcat 8
 - Windows 10
 
从 Maven archetype 创建 Java Web 项目
点击 File > New > Project > Maven,勾选 Create from archetype 并在列表中选择 maven-archetype-webapp 。

随后的步骤自行设置:



随后Maven 会根据默认的 pom.xml 自动导入依赖,为了方便以后 Maven 在我们修改了 pom.xml 后能自动开始配置依赖,我们可以点击 Enable Auto-import 。


Maven 处理完依赖之后就可以配置 Tomcat 来查看效果了。点击右上角的下拉箭头,然后点击加号配置一个新的 Tomcat ,当然也可以使用别的容器。


在此界面中点击 Deployment 标签页,添加一个新的 Artifact。非正式项目选择 war 或者 war exploded 都可以。


随后就可以运行服务器,得到的下过如下:

至此一个 Java Web 项目配置完毕。
设置 Maven 的 pom.xml 导入 Spring 依赖
直接将下列内容覆盖到 pom.xml 中,随后 Maven 会自动更新依赖。
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
 | 
 <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>SpringAndSpringMVC</groupId> 
<artifactId>SpringAndSpringMVC</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>SpringAndSpringMVC Maven Webapp</name> 
<url>http://maven.apache.org</url> 
<properties> 
<spring.version>4.1.6.RELEASE</spring.version> 
</properties> 
<dependencies> 
<!-- spring framework start --> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-core</artifactId> 
<version>${spring.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-web</artifactId> 
<version>${spring.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-webmvc</artifactId> 
<version>${spring.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-test</artifactId> 
<version>${spring.version}</version> 
<scope>test</scope> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-orm</artifactId> 
<version>${spring.version}</version> 
</dependency> 
<!-- spring framework end --> 
<!-- servlet start --> 
<dependency> 
<groupId>javax.servlet.jsp.jstl</groupId> 
<artifactId>javax.servlet.jsp.jstl-api</artifactId> 
<version>1.2.1</version> 
</dependency> 
<dependency> 
<groupId>taglibs</groupId> 
<artifactId>standard</artifactId> 
<version>1.1.2</version> 
</dependency> 
<dependency> 
<groupId>javax.servlet</groupId> 
<artifactId>jstl</artifactId> 
<version>1.2</version> 
</dependency> 
<dependency> 
<groupId>javax.servlet</groupId> 
<artifactId>servlet-api</artifactId> 
<version>2.5</version> 
</dependency> 
<dependency> 
<groupId>javax.servlet.jsp</groupId> 
<artifactId>jsp-api</artifactId> 
<version>2.1</version> 
<scope>provided</scope> 
</dependency> 
<!-- servlet end --> 
<!-- json start --> 
<dependency> 
<groupId>com.google.code.gson</groupId> 
<artifactId>gson</artifactId> 
<version>2.6.2</version> 
</dependency> 
<!-- json end --> 
<dependency> 
<groupId>org.testng</groupId> 
<artifactId>testng</artifactId> 
<version>6.9.10</version> 
</dependency> 
<dependency> 
<groupId>junit</groupId> 
<artifactId>junit</artifactId> 
<version>4.11</version> 
<scope>test</scope> 
</dependency> 
</dependencies> 
<build> 
<finalName>SpringAndSpringMVC</finalName> 
</build> 
</project> 
 | 
配置 web.xml
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
 | 
 <!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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
metadata-complete="true" version="3.0"> 
<filter> 
<filter-name>encodingFilter</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>encodingFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 
<servlet> 
<servlet-name>spring-dispatcher</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>spring-dispatcher</servlet-name> 
<url-pattern>/</url-pattern> 
</servlet-mapping> 
<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> 
<session-config> 
<session-timeout>60</session-timeout> 
</session-config> 
<listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
</web-app> 
 | 
如果你像我一样在 web.xml 中添加了
| 
 1 
2 
3 
 | 
 <listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
 | 
那么你还需要在 WEB-INF 下创建 applicationContext.xml ,其中的内容如下:
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
 | 
 <beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xsi:schemaLocation="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"> 
<mvc:annotation-driven /> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
<property name="prefix" value="/pages/"/> 
<property name="suffix" value=".jsp"/> 
</bean> 
<mvc:resources mapping="/static/**" location="/static/" cache-period="31556926"/> 
<context:component-scan base-package="com.sys.springandspringmvc.controller"/> 
</beans> 
 | 
上述配置文件中,<mvc:annotation-driven /> 用于启用注解配置。
| 
 1 
2 
3 
4 
 | 
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
<property name="prefix" value="/pages/"/> 
<property name="suffix" value=".jsp"/> 
</bean> 
 | 
这个 bean 用于解析 View ,指定了 View 页面的位置及类型(后缀)。
| 
 1 
 | 
 <mvc:resources mapping="/static/**" location="/static/" cache-period="31556926"/> 
 | 
由于 SpringMVC 会对所有请求进行 URL 匹配,而像 .js 、.css 这样的静态文件是没有在 Controller 类中指定 URI 映射的,所以无法获取到。此时需要通过配置 mvc:resources 来将静态文件添加为例外。
| 
 1 
 | 
 <context:component-scan base-package="com.sys.springandspringmvc.controller"/> 
 | 
上述部分则是配置 Spring 以扫描 controller 目录进行依赖注入。
创建包及 Controller
在 main 目录下创建 java 目录(命名随意),此时是无法直接在其中创建包或者 Java 类的,我们必须先将 java 目录设置为代码根目录。右击 java 目录,在 Mark Directory As 中选择第一个 Source Root 。

随后在其中新建包 com.sys.springandspringmvc.controller ,并在包中新建 IndexController 类。内容可以按下面的写:
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
 | 
 package com.sys.springandspringmvc.controller; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
@Controller 
public class IndexController { 
@RequestMapping("/") 
public String index() { 
return "index"; 
} 
} 
 | 
同时在 webapp 目录下新建 pages 和 static 文件夹,然后创建一个 index.jsp ,随便写些内容。
最后的目录结构如下:

测试
运行 Tomcat ,访问 http://127.0.0.1:8080 ,可正常访问,至此整个项目搭建完成。

在Intellij Idea中使用Maven创建Spring&SpringMVC项目的更多相关文章
- 用maven创建Spring MVC项目
		
用maven创建Spring MVC项目 mvn archetype:generate -DgroupId=fry-arthur -DartifactId=spring-mvc-study -Darc ...
 - idea 中利用maven创建java web 项目
		
转自:http://www.linuxidc.com/Linux/2014-04/99687.htm 本文主要使用图解介绍了使用IntelliJ IDEA 12创建Maven管理的Java Web项目 ...
 - IDEA 通过Maven创建Spring MVC项目搭建
		
概述 本篇随笔主要记录内容如下: 1.通过Maven创建基于Spring Framework类库的MVC项目,免去了繁琐的XML配置: 2.在Idea里面配置Tomcat的测试启动项: Maven创建 ...
 - 使用IntelliJ IDEA 15和Maven创建Java Web项目(转)
		
1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...
 - 使用IntelliJ IDEA 15和Maven创建Java Web项目(转)
		
转自:https://blog.csdn.net/myarrow/article/details/50824793 1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和 ...
 - 使用 IntelliJ IDEA 2016和Maven创建Java Web项目的详细步骤及相关问题解决办法
		
Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工作,其 ...
 - IntelliJ IDEA 14和Maven创建java web项目
		
安装Maven 下载安装 去maven官网下载最新版. 解压到安装目录. 配置 右键桌面的计算机图标,属性–>高级系统设置–>环境变量,添加M2_HOME的环境变量,然后将该变量加入的PA ...
 - 在Intellij IDEA中使用Maven的方式将项目导出为jar包
		
前言:由于项目使用maven管理方式,所以在未发布版本的时候,就需要将项目打成jar包,供本地调试使用.注意在使用本地jar包的时候,需要将pom文件中相关jar包的依赖屏蔽,再将jar包加入项目中. ...
 - 使用IntelliJ IDEA 14和Maven创建java web项目
		
参考地址 http://www.cnblogs.com/jifeng/p/4658765.html
 
随机推荐
- strtok - 详细示例解析
			
定义: Defined in header <string.h> 原型: char strtok( char str, const char *delim ); 参数: 2个都是字符串(以 ...
 - Way to MongoDB
			
1.MongoDB术语/概念:database,collection,document,field,indexSQL术语/概念:database,table,row,column,index 2.所有 ...
 - Android Studio Tips
			
1. 可以通过ctrl+shift+a,然后输入reformat,就能看到对应的快捷键. 如果记不得快捷键了,都可以通过ctrl+shift+a来查找. 2. [Androidstudio]的坑之[@ ...
 - jmeter接口测试实战
			
请求方法:get/post 接口请求地址:http://172.22.24.26:8080/fundhouse/external/getdata?name=xxxx &fund_udid=35 ...
 - PHP的pm、pm.max_requests、memory_limit
			
1.php-fpm.conf中的pm pm是来控制php-fpm的工作进程数到底是一次性产生固定不变(static)还是在运行过程中随着需要动态变化(dynamic).众所周知,工作 进程数与服务器性 ...
 - 手机端1px细线公共类
			
手机端1px细线公共类 .borderBottom1px{ position: relative; } .borderBottom1px:after{ content: ""; p ...
 - 企业级项目把.app文件转成.ipa文件的自动化实现
			
将MakeIPA.sh添加到项目的根目录下 此脚本针对企业级项目打包,不会编译项目,在打包前确认项目已经编译完成生成了"XXX.app"文件 使用前需要配置该脚本部分路径才能正确打 ...
 - SpringMVC项目配置
			
一.创建一个maven项目 1.new一个maven项目,选择next,如图:
 - jstl c:choose>、<c:when>和<c:otherwise>标签的简单使用介绍
			
<c:choose>.<c:when>和<c:otherwise>在一起连用,可以实现Java语言中的if-else语句的功能.例如以下代码根据username请求 ...
 - Ubuntu16.04安装MySQLdb
			
buntu 系统下进行的操作 首先安装了pip工具 1 sudo apt-get install python-pip 然后使用 1 sudo pip install mysql-python 安 ...