一、創建maven項目
(1)選擇 file > new > project
(2)填寫對應信息,一路點擊next
配置自己本地的maven,繼續next
命名項目名(隨意寫,但要易懂),點擊 finish
(3)自動加載maven
配置web的xml
等待maven加載完畢,見下圖說明maven創建成功
二、搭建編碼結構
maven配置完畢后,需搭建項目結構,為編碼做准備,下面簡單給一些文件夾結構供參考,當然不一定非要以下面方式搭建。
(1) 既然我們使用的是springMVC,就需要將springmvc的相關配置加載到項目中去
選中項目,右鍵選中 Add Framework Support
勾選中 springMVC ,勾選Download 點擊OK
現在,idea正在加載springMVC的相關jar包
加載完畢后,左側的項目結構列表中會多出來一個lib的文件夾,我們可以將其刪除(因為我們有maven的pom文件導入jar包)
(2)為編碼搭建項目結構列表
首先我們先看下目前的項目結構情況。
ok,接下來在此基礎上開始添加文件夾,各個功能的文件夾以及編碼習慣因人而異,下面給出一些參考。
<1>. 在main目錄下創建java文件夾,其下分別創建commonutil,controller,dao,service,mapper文件夾,用於存放和管理后台代碼;
<2>. 在main目錄下創建resources文件夾,用於存放資源文件。
<3>. 在src目錄下創建test文件夾,用於存放單元測試代碼。
<4>. 在webapp文件夾下創建res文件夾,其下依次創建js,css,img文件夾,用於存放相應類型的文件。
<5>. 在WEB-INF文件夾下創建views文件夾,用於存放jsp頁面文件。
完成創建的完整項目結構見下圖:
(3)結構搭建完畢,我們需要給每個文件夾賦予編碼權限,否則右鍵是創建不了java文件的。
選擇“File -> Project Structure”,打開對話框,點擊java文件夾,選擇Sources,點擊resources文件夾,選擇Resources,點擊test文件夾,選擇Test Resources。
點擊apply ,點擊ok ,接下來就可以創建java文件了
(4)配置maven的pom文件,前面我們說過可以將lib文件夾刪除,在這里直接自動讓maven導入jar包即可
pom配置如下:
<?xml version="1.0" encoding="UTF-8"?> <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>MavenDemo2</groupId> <artifactId>test.maven</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>test.maven Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <!-- junit測試包--> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!--日志包--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.8.0-alpha2</version> </dependency> <!--mysql驅動包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> <!-- JDBC連接池 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!-- DruidDataSource,本工程的dataSource配置使用的Druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version> </dependency> <!--spring相關包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.10</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.10</version> </dependency> <!-- 支持jsp相關包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <!--servlet/jsp api start--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> </dependency> <!-- Mybatis管理 start --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.33</version> </dependency> </dependencies> <build> <finalName>test.maven</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.20.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
(5)配置web,xml文件
web.xml配置如下:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 5 version="3.1"> 6 7 <display-name>Archetype Created Web Application</display-name> 8 <!--配置首頁--> 9 <welcome-file-list> 10 <welcome-file>index.jsp</welcome-file> 11 </welcome-file-list> 12 <!--配置springmvc DispatcherServlet--> 13 <servlet> 14 <servlet-name>springMVC</servlet-name> 15 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 16 <init-param> 17 <!--配置dispatcher.xml作為mvc的配置文件--> 18 <param-name>contextConfigLocation</param-name> 19 <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 20 </init-param> 21 <load-on-startup>1</load-on-startup> 22 <async-supported>true</async-supported> 23 </servlet> 24 <servlet-mapping> 25 <servlet-name>springMVC</servlet-name> 26 <url-pattern>/</url-pattern> 27 </servlet-mapping> 28 <!--把applicationContext.xml加入到配置文件中--> 29 <context-param> 30 <param-name>contextConfigLocation</param-name> 31 <param-value>/WEB-INF/applicationContext.xml</param-value> 32 </context-param> 33 <listener> 34 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 35 </listener> 36 </web-app>
(6)配置dispatcher-servlet.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:mvc="http://www.springframework.org/schema/mvc" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 7 <!--此文件負責整個mvc中的配置--> 8 9 <!--啟用spring的一些annotation --> 10 <context:annotation-config/> 11 12 <!-- 配置注解驅動 可以將request參數與綁定到controller參數上 --> 13 <mvc:annotation-driven/> 14 15 <!--靜態資源映射--> 16 <!--本項目把靜態資源放在了webapp的statics目錄下,資源映射如下--> 17 <mvc:resources mapping="/css/**" location="/res/css/"/> 18 <mvc:resources mapping="/js/**" location="/res/js/"/> 19 <mvc:resources mapping="/image/**" location="/res/img/"/> 20 <mvc:default-servlet-handler /> <!--這句要加上,要不然可能會訪問不到靜態資源,具體作用自行百度--> 21 22 <!-- 對模型視圖名稱的解析,即在模型視圖名稱添加前后綴(如果最后一個還是表示文件夾,則最后的斜杠不要漏了) 使用JSP--> 23 <!-- 默認的視圖解析器 在上邊的解析錯誤時使用 (默認使用html)- --> 24 <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 25 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 26 <property name="prefix" value="/WEB-INF/views/"/><!--設置JSP文件的目錄位置--> 27 <property name="suffix" value=".jsp"/> 28 <property name="exposeContextBeansAsAttributes" value="true"/> 29 </bean> 30 31 <!-- 自動掃描裝配 --> 32 <context:component-scan base-package="controller"/> 33 34 </beans>
(7)配置applicationContext.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 6 7 <context:component-scan base-package="java"/> 8 9 </beans>
(8)配置jsp頁面
在views文件夾下新建一個jsp頁面

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>welcome</title> 5 </head> 6 <body> 7 訪問成功 8 </body> 9 </html>
(9)創建一個controller層的Java文件

1 package controller; 2 import org.springframework.stereotype.Controller; 3 import org.springframework.web.bind.annotation.RequestMapping; 4 5 @Controller 6 @RequestMapping("/home") 7 public class DemoController { 8 9 @RequestMapping("/index") 10 public String getStr(){ 11 return "index"; 12 } 13 }
至此,項目結構搭建完畢。
三、配置tomcat(至關重要)
(1)點擊 Edit Configurations
(2)配置tomcat
在右側Server選項卡中,“Configure”可以配置服務器的名字,自己隨意填寫就好,當然同時可以配置端口號、瀏覽器等信息。
至此,有些細心的人會發現,上圖出現了警告 Warning: No artifacts configured
(3)ok,我們先解決它,暫且把tomcat放一邊。
<1> 打開項目構建配置頁面
<2> 配置如下:
<3> 點擊ok
繼續點擊ok
選中 Directory Content , 選中自己的項目,點擊ok
(4)接下來,我們在回到配置tomcat的頁面,繼續(1)操作,選中Deployment選項卡,點擊右側的加號,選中Artifact
在右側的 斜杠/ 后面加上自己的項目名稱,點擊apply 點擊ok
關閉窗口,至此配置結束。
四、運行項目
點擊運行
出現下圖,項目搭建成功(這個是springmvc默認訪問的index頁面)
還記得我們之前創建的views下面的index頁面嗎?
若想指定訪問成功自己的index頁面,我們可以在瀏覽器輸入: http://localhost:8080/AdminDemo/home/index
其中AdminDemo是我的項目名,讀者可以根據自己起的名字修改即可,當然后面的home和index是對應的controller路徑,讀者也可以自行修改。
ok,至此一個springMVC的項目結構搭建完畢。
本文參考(1):https://www.cnblogs.com/wulisz/p/9371977.html
本文參考(2):http://www.pianshen.com/article/5928200638/