Spring提供了自己的集成開發環境(IDE),稱為Spring Tool Suite(STS),它可能是構建Spring應用程序的最佳IDE了。STS捆綁了Maven作為其默認依賴管理工具,因此不需要單獨安裝Maven。
一 安裝STS
百度搜索Spring Tools Suite官網,進入到下載頁面https://spring.io/tools3/sts/all/。
下載zip文件后,將其解壓到到一個文件夾下。
解壓后包含一個sts-bundle目錄,其下又有3個目錄:
- 法律文件,包含各種工具的許可協議;
- pivotal-tc-server-developer-x.y.z.RELEASE,包含Pivotal tc服務器的開發人員版本x.y.z;
- sts-x.y.z.RELEASE,包含STS,其中x.y.z代表為STS的主版本和次要版本。
在解壓后的sts-bundle下的sts-x.y.zRELEASE目錄中STS.exe便是可執行程序,用於啟動STS,將該文件發送到桌面快捷方式,當我們想使用STS時可以快速的找到。

打開STS后,界面如下圖所示,跟Eclipse幾乎沒有什么差別,只是多了Spring的很多應用。
接下來我們為STS進行優化設置,大部分都可以參考Eclipse的配置,具。下面我們修改STS的編碼方式為UTF-8,在菜單欄點擊Windows-->Perference-->General-->Workspace,將編碼方式設置為Other,然后在下拉框中選擇UTF-8:
接下來我們設置Maven的settings.xml和Repository(倉庫)的位置,點擊Windows-->Perference-->Maven-->User settings,在右側設置本機安裝的Maven這些文件的位置:
二 創建一個Spring MVC應用
STS嚴重依賴Maven,並允許你創建使用Maven依賴管理關系的應用程序。要創建Spring MVC應用程序,請按照下列步驟操作:
1、點擊File->New->Maven Project,你會看到如圖所示的項目對話框;
2、勾選Create a simple project(skip archetype selection);
3、點擊Next按鈕繼續配置項目,將出現如下圖所示的配置項:
4、在“Group Id”中輸入包名,例如“com.example”;在”Artifact Id“中輸入項目名稱,例如”first-spring-mvc“;
5、在”Packaging“下拉框中選擇“War”,告訴STS創建一個Spring MVC應用,war是servlet/jsp應用的文件擴展名;
6、點擊Finish按鈕,你將在Project Explorer中看到項目;
7、STS將會創建一個如上圖所示的工程和一個pom.xml文件(maven配置文件)。現在,需要編輯pom.xml,以便讓maven來處理依賴。雙擊pom.xml,用默認編輯器打開文件。編輯器有多個選項卡,提供查看和編輯文件的不用方式。選項卡名稱顯示在對話框的底部,其中一個選項卡是“Dependencies”選項卡,允許管理項目所需要的依賴項。單擊依賴項選項卡:
8、通過Dependencies選項卡添加依賴是一種相對容易的方式,我們在這里展示如何做。典型的Spring MVC應用程序至少包含3個庫:Servlet API、Spring MVC庫和JSTL。要添加Servlet API,清單擊"Dependencies"窗口中的Add按鈕,將打開"Select Dependency"對話框:
要輸入的值如下:
Group Id:javax.servlet
Artifact Id:javax.servlet-api
Version:3.1.0
Scope:provided
provided表示當應用程序分發時,該庫將由容器提供,不需要包含在war文件中。
完成輸入后,單擊“OK”按鈕,關閉該對話框,返回到“Dependencies”選項卡。
9、接下去,使用同樣的方式添加Spring MVC庫,點擊Add按鈕,輸入如下值:
Group Id:org.springframework
Artifact Id:spring-webmvc
Version:5.1.6.RELEASE
Scope:compile
10、最后添加JSTL庫,
點擊Add按鈕,輸入如下值:
Group Id:javax.servlet
Artifact Id:jstl
Version:1.2
Scope:runtime
11、按Ctrl+S保存pom.xml文件,這樣STS將通過下載依賴項構建項目。這里需要連接到互聯網,除非以前使用Maven下載過所需要的庫。
Maven完成下載依賴項后,將會在Library中看到一個Maven Dependencies文件夾:
這些依賴是放在C:\Users\Administrator\.m2\repository路徑下的,也就是我們在第一節中設置的Repository路徑:
在應用創建之初,pom.xml文件中存在一個錯誤,這主要是因為當前應用找不到web.xml文件,要解決這個問題,需要打開pom.xml文件,單擊pon.xml選項卡。在pom.xml文件中查找<dependencies>元素,並在其上添加如下內容。注意:failOnMissingWebXml元素用來打開或關閉由於缺少web.xml文件引起的錯誤消息。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
三 選擇Java版本
通過向pom.xml文件添加屬性來為應用程序選擇Java版本。請按如下步驟操作:
1、單擊Overview選項卡,點擊“Properties”下拉列表右側的Create按鈕,將打開“Add Property”對話框:
2、在“Name”中輸入“maven.compiler.source”,在“value”輸入框中輸入“1.8”;
3、保存pom.xml文件,此時我們應該可以看到Libraries中的JRE System Library由J2SE-1.5變成了JavaSE-1.8:
注意JaveSE:表示Java標准版本;J2SE:是JaveSE的簡稱,從Java1.6版本之后,都叫做JaveSE-x.y,x.y是版本號。說到這里,我覺得有必要補習一下JAVA的幾點基礎知識:
- JRE全稱:Java Runtime Envirnment,顧名思義,是Java的運行環境,類似於微軟的.net FrameWork;而JDK全稱為:Java SE Development Kit。所以如果不需要做Java程序開發,只需要運行Java程序的,下載安裝JRE就可以了;如果你安裝了JDK,那么在JDK的安裝目錄下,也會生成一個jre文件夾(注意:如果是安的是JDK11之后的版本,安裝JDK的時候會同時安裝JRE,但是此時你看不到jre相關的文件夾);
- JDK1.5和JDK5.0是同個版本,叫法不同,以后都稱5.0、6.0等,可能Sun覺得版本混亂以后不好命名所以改了;
- 原來的J2SE、J2EE、J2ME現在都改成了:Java SE、Java EE、Java ME。
如果STS仍然報錯,那是因為它找不到JRE1.8,我們可以通過執行如下步驟告訴他在哪里找到Java:
(1)、單擊Window->Perferences;
(2)、在左窗格中選擇Jave->Installed JRE,然后單擊Add按鈕;
(3)、選擇Standard VM,然后點擊Next,將會看到如下圖的對話框,點擊“Directory”按鈕,並瀏覽到JDK主目錄。
4、點擊Finish。如果你已經安裝成功會在JRE列表中看到JDK:
注意:如果沒有安裝JDK,可以參考博客:Java開發環境的搭建以及使用eclipse從頭一步步創建java項目。
最終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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>first-spring-mvc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
</project>
四 創建index.html文件
要完成示例應用程序,需要創建一個index .html文件並將其保存在src/main/webapp下。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body> Welcome! </body>
</html>
五 更新項目
在運行應用程序之前,還需要更新項目。右鍵單擊應用,然后Maven->Update Project。
之后,應用的目錄結構如下:
六 Tomcat安裝
你需要一個Tomcat或其他的servlet容器來運行應用程序。如果你沒有安裝Tomcat,請現在安裝,如果安裝過了可以跳過該步驟。
Tomcat是當今最流行的Servlet/JSP容器,它是免費的、成熟、開源的。
1、下載和配置Tomcat
首先,從http://tomcat.apache.org網站下載Tomcat最新版本。選用zip或者gz格式的最新二進制發行版本。
下載了文件后,要進行解壓,隨后就能在安裝目錄看到如下幾個目錄:
- 在bin目錄中,可以看到啟動和終止Tomcat的程序;
- webapps目錄很重要,因為默認情況下在那里部署應用程序,不過部署路徑是可以修改的;
- conf目錄包含了包含了配置文件,包括server.xml和tomcat-user.xml文件;
- lib目錄包含了編譯Servlet和定制標簽所需的Servlet和JSP API。
2、啟動和終止Tomat
進入bin文件,雙擊運行startup.bat文件(windows)或startup.sh文件(UNIX/Linux/Mac OS)來啟動Tomcat。
我們可以看到應用程序被部署到webapps/ROOT路徑下。
默認情況下,Tomcat在端口8080運行,因此可以在瀏覽器中打開如下網址:
http://localhost:8080/
此時默認訪問的是webapps/ROOT/index.jsp文件,默認訪問的文件可以通過conf\web.xml文件進行修改:
<!-- ==================== Default Welcome File List ===================== -->
<!-- When a request URI refers to a directory, the default servlet looks -->
<!-- for a "welcome file" within that directory and, if present, to the -->
<!-- corresponding resource URI for display. -->
<!-- If no welcome files are present, the default servlet either serves a -->
<!-- directory listing (see default servlet configuration on how to -->
<!-- customize) or returns a 404 status, depending on the value of the -->
<!-- listings setting. -->
<!-- -->
<!-- If you define welcome files in your own application's web.xml -->
<!-- deployment descriptor, that list *replaces* the list configured -->
<!-- here, so be sure to include any of the default values that you wish -->
<!-- to use within your application. -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
終止Tomcat時,運行bin目錄下的shutdown.bat文件(windows)或者shutdown.sh文件(UNIX/Linux/Mac OS)。
如果想要修改端口號,請使用編輯器打開conf/server.xml找到如下配置行:
<!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 -->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改port即可,這里我修改為8008。
3、配置STS
(1)、打開Window——> Preferences ——>Runtime Environment窗口,點擊Add:
(2)、找到Apache Tomcat v8.5,與我們下載的Tomcat版本要一致,然后點擊Next按鈕:
(3)、點擊Browse按鈕,找到我們Tomcat的解壓路徑:
點擊Finist按鈕,完成設置。
(4)、新建Server。在Servers選項卡中右鍵New——>Server,然后點擊Finist按鈕:
(5)、第一次新建Server之后,雙擊Tomcat v8.5 Server at localhost,是可以修改Server Locations的,將默認選項:Use workspace metadata(dose not modify Tomcat installation)修改為:Use Tomcat installation(takes control of Tomcat installation),此時應用程序是部署到tomcat安裝路徑下的wtpwebapps路徑下的。這樣在STS啟動了tomcat服務器,我們也能夠訪問到tomcat本地管理首頁。否則只能在DOS下使用Tomcat的啟動命令才能訪問Tomcat本地管理首頁。
4、定義上下文
要將Servlet/JSP應用程序部署到Tomcat,需要定義一個Tomcat上下文,在Tomcat中,每一個Tomcat上下文都表示一個Web應用程序。
定義Tomcat上下文有以下幾種方法:
- 在Tomcat的conf/Catalina/localhost目錄下創建一個XML文件;
- 在Tomcat的conf/server.xml文件中添加一個Context元素;
(1)、第一種方式
如果決定給每一個上下文都創建一個XML文件,那么這個文件名就很重要,因為上下文路徑是從文件名衍生得到的。例如,把一個first-spring-mvc.xml文件放在conf/Catalina/localhost目錄下,那么應用程序的上下文路徑就是first-spring-mvc,並且可以利用如下URL訪問該應用的一個資源:
http://localhost:8008/first-spring-mvc/resourceName
first-spring-mvc.xml文件中必須包含一個Context元素,作為它的根元素。這個元素大多沒有子元素,它是該文件中的唯一元素。例如:
<Context docBase="E:\apache-tomcat-8.5.41\wtpwebapps\first-spring-mvc" reloadable="true" />
這里唯一必要的屬性是docBase,它用來定義應用程序的位置。reloadable屬性是可選的,但是如果存在,並且將它的值設置為true,那么一旦應用程序中的Java類文件或其他資源有任何增加、減少、更新。Tomcat都會檢測到,那么Tomcat就會重新加載應用程序,在部署期間,建議將reloadable設置為true,在生產期間,不建議這么做。
當把first-spring-mvc應用程序復制到wtpwebapps目錄下,Tomcat就會自動加載應用程序,當刪除這個應用程序時,Tomcat就會自動卸載應用程序。
(2)、第二種方式
定義上下文的另一種方式是在conf/server.xml文件中添加一個Context元素。為此,要先打開文件,並在Host元素下創建一個Context元素,與前一種方法不同的是,此處定義上下文需要給上下文路徑定義path屬性,如下:
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html -->
<!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> -->
<!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="E:\apache-tomcat-8.5.41\wtpwebapps\first-spring-mvc" path="/first-spring-mvc" reloadable="true" source="org.eclipse.jst.jee.server:first-spring-mvc"/>
</Host>
一般來說,不建議通過server.xml來管理上下文,因為只有重啟Tomcat后,更新才能生效,不過,如果有許多應用程序需要測試,使用server.xml比較理想,因為可以在一個文件中同時管理所有的應用程序。
如果使用STS調試程序,我一般選擇server.xml來管理上下文,因為STS自動部署應用程序就是采用的這種方式。
七 運行應用
請按照如下步驟運行程序:
1、右鍵單擊項目並選擇Run As ——> Run on Server,你將看到如下對話框:
2、如果沒有看到我們之前安裝的Tomcat服務器,那么我們選擇Manually define a new server。
3、然后選擇Apache下的Tomcat v8.5 Server,然后點擊Finish按鈕。
STS將啟動Tomcat並運行應用程序,下圖顯示了STS的Web瀏覽器,其中顯示了應用程序的默認頁面:
現在,就可以按照之前寫的博客來添加動態內容了。
如果要管理Tomat及其上部署的所有應用程序,清打開STS中的服務器視圖:
參考文獻
[1]Java開發環境的搭建以及使用eclipse從頭一步步創建java項目
[2]Spring MVC學習指南