申明:部分內容參見別人的博客,沒有任何的商業用途,只是作為自己學習使用。(大佬博客)
一、相關環境
- eclipse :eclipse-jee-oxygen-3-win32-x86_64(下載地址)
-Maven:maven-3.5.3
- jdk :1.8
- tomcat:7.0
-mysql :5.5.4
-spring 5.0.1
二、軟件安裝
前面的軟件安裝包括Maven的簡單使用,我會抽時間寫一個簡單的教程。
三、創建MavenWeb項目




創建完之后,是這樣的,好像結構不對,別着急,問題:因為默認使用自帶的jdk,需要調成自己的jdk

解決方法:


別急,后台又開始另外一個錯誤:我們看他的描述,表示沒有找到"javax.servlet.http.HttpServlet"
Description Resource Path Location Type
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path index.jsp /SpringMVCBlog/src/main/webapp line 1 JSP Problem
解決方法:
右鍵項目——properties——



一路apply——finish之后發現世界安靜了

四:利用Maven導入jar包
既然我們要用SpringMVC開發,那肯定少不了SpringMVC的相關jar包。如果不使用Maven的話,那就需要去官網下載相關的jar包,然后導入到項目中。現在使用maven的話,就不需要上網找jar包了。具體容我一一道來。
Maven所做的工作其實很簡單,就是自動把你需要的jar包下載到本地,然后關聯到項目中來。maven的所有jar包都是保存在幾個中央倉庫里面的,其中一個最常用的是Maven Repository,即,你需要什么jar包,它就會從倉庫中拿給你。那么如何告訴maven需要什么jar包呢?我們看看工程目錄,能找到一個pom.xml文件(這個文件在剛創建好項目時就已經展現在了大家面前),maven就是靠它來定義需求的,代碼如下:
<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>com.hone</groupId> <artifactId>SpringMVCBlog</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringMVCBlog 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>SpringMVCBlog</finalName> </build> </project>
我們可以看到這個文件包含了我們之前定義的本項目的gropId等信息,這些信息是該項目的標識,我們不要去改動它們。重點看<dependencies>標簽,翻譯過來是”依賴“的意思,也就是說把對每個包的需求都稱為一個依賴<depedency>,定義在<dependencies>中。在每個<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version這三個必要信息。比如上面我們看到引入可一個junit包,格式如下:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
這是單元測試包,提供了三個基本信息,第4個scope對其他包來說是非必需的。所有jar包的引入都要滿足這個格式。那么如何查看這些jar包的3個信息呢,可能剛接觸是開發者還不是很熟悉,這個時候就需要查閱倉庫了。比如我們需要引入Spring核心jar包spring-core,打開Maven Repository,搜索spring-core,進入如下界面:

點擊進入紅框選中的Spring Core,如下所示,可以看到各版本的使用情況:

選擇最新版本4.2.5.RELEASE,可以看到其dependency寫法如下紅框所示:

我們將其復制到pom.xml中的<dependencies>中:

這樣,Maven就會開始自動下載jar包到本地倉庫,然后關聯到你的項目中,下載完成后,我們展開工程目錄中External Libraries:

可以發現,雖然我們只寫了一個依賴,但是它導入了兩個jar包,也就是說,導入某個jar包時,與它密切相關的jar包也會同時被導入進來。
除了spring-core,我還要spring-context,復制spring-core的<dependency>,將spring-core改為spring-context,如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.4.RELEASE</version>
</dependency>
這就是Maven的強大之處,如果你需要使用SpringMVC開發網站的話,只需記住幾個重要的包的名字,就可以輕松將所有包導入項目中。
長話短說,現在我們要進行SpringMVC的開發,請把你的pom.xml變成下面的樣子,當然不要改你的grupId等信息(從modelVersion到url都不要動):
<properties>
<spring.version>5.0.4.RELEASE</spring.version>
<hibernate.version>5.1.0.Final</hibernate.version>
</properties>
請在<dependencies>中加入以下依賴:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
將<build>改成如下形式:
<build>
<finalName>SpringMVCBlog</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
maven自動幫助我們配置了如此多的配置文件

可能在創建項目完成后提示錯誤:
Description Resource Path Location Type
Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix. SpringMVCDemo line 1 Maven Configuration Problem
解決方法:只需要按照提示右鍵項目——Maven——Updata Project
當建立項目之后,卻突然提示我這個錯誤

第一個錯誤提示我,java編譯jdk的版本和安裝jdk的版本不一致。
解決方法通常有以下幾種:
解決方法 1:
我使用的jdk是1.8
windows—proferences—java–compiler設置jdk為1.8
windows—proferences—java–Installed JREs設置jdk為1.8
點擊項目右鍵–properties—java Compiler 設置jdk為1.8
點擊項目右鍵–properties—eclipse—project Facets設置java為1.8
點擊項目右鍵–properties—eclipse—project Facets設置Dynamic Web Module 為3.1(這是你在web.xml配置的servlet版本)
點擊項目右鍵–Maven—update project 錯誤應該可以消除
如果還是不行你就在pom.xml里面的,修改plugin的版本(我安裝的jdk是1.8,但是我調成1.8之后,一直報錯,我只能調成jdk1.7,錯誤解決,但是此種方法指標不治本)
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
解決方法 2:
修改安裝目錄中的..\apache-maven-3.3.9\conf中的settings.xml中修改jdk版本
在profiles節點中添加
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
解決方法3:
到該項目路徑下面修改org.eclipse.wst.common.project.facet.core.xml這個文件,檢查版本是否一直
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="3.1"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.8"/> </faceted-project>
到現在,一個完整的環境搭建完成。
