Spring提供了本身的集成开发环境(IDE),称为Spring Tool Suite(STS),它多是构建Spring应用程序的最佳IDE了。STS捆绑了Maven做为其默认依赖管理工具,所以不须要单独安装Maven。html
百度搜索Spring Tools Suite官网,进入到下载页面https://spring.io/tools3/sts/all/。java
下载zip文件后,将其解压到到一个文件夹下。web
解压后包含一个sts-bundle目录,其下又有3个目录:spring
在解压后的sts-bundle下的sts-x.y.zRELEASE目录中STS.exe即是可执行程序,用于启动STS,将该文件发送到桌面快捷方式,当咱们想使用STS时能够快速的找到。apache
打开STS后,界面以下图所示,跟Eclipse几乎没有什么差异,只是多了Spring的不少应用。windows
接下来咱们为STS进行优化设置,大部分均可以参考Eclipse的配置,具。下面咱们修改STS的编码方式为UTF-8,在菜单栏点击Windows-->Perference-->General-->Workspace,将编码方式设置为Other,而后在下拉框中选择UTF-8:api
接下来咱们设置Maven的settings.xml和Repository(仓库)的位置,点击Windows-->Perference-->Maven-->User settings,在右侧设置本机安装的Maven这些文件的位置:浏览器
STS严重依赖Maven,并容许你建立使用Maven依赖管理关系的应用程序。要建立Spring MVC应用程序,请按照下列步骤操做:spring-mvc
一、点击File->New->Maven Project,你会看到如图所示的项目对话框;tomcat
二、勾选Create a simple project(skip archetype selection);
三、点击Next按钮继续配置项目,将出现以下图所示的配置项:
四、在“Group Id”中输入包名,例如“com.example”;在”Artifact Id“中输入项目名称,例如”first-spring-mvc“;
五、在”Packaging“下拉框中选择“War”,告诉STS建立一个Spring MVC应用,war是servlet/jsp应用的文件扩展名;
六、点击Finish按钮,你将在Project Explorer中看到项目;
七、STS将会建立一个如上图所示的工程和一个pom.xml文件(maven配置文件)。如今,须要编辑pom.xml,以便让maven来处理依赖。双击pom.xml,用默认编辑器打开文件。编辑器有多个选项卡,提供查看和编辑文件的不用方式。选项卡名称显示在对话框的底部,其中一个选项卡是“Dependencies”选项卡,容许管理项目所须要的依赖项。单击依赖项选项卡:
八、经过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”选项卡。
九、接下去,使用一样的方式添加Spring MVC库,点击Add按钮,输入以下值:
Group Id:org.springframework
Artifact Id:spring-webmvc
Version:5.1.6.RELEASE
Scope:compile
十、最后添加JSTL库,
点击Add按钮,输入以下值:
Group Id:javax.servlet
Artifact Id:jstl
Version:1.2
Scope:runtime
十一、按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>
经过向pom.xml文件添加属性来为应用程序选择Java版本。请按以下步骤操做:
一、单击Overview选项卡,点击“Properties”下拉列表右侧的Create按钮,将打开“Add Property”对话框:
二、在“Name”中输入“maven.compiler.source”,在“value”输入框中输入“1.8”;
三、保存pom.xml文件,此时咱们应该能够看到Libraries中的JRE System Library由J2SE-1.5变成了JavaSE-1.8:
注意JaveSE:表示Java标准版本;J2SE:是JaveSE的简称,从Java1.6版本以后,都叫作JaveSE-x.y,x.y是版本号。说到这里,我以为有必要补习一下JAVA的几点基础知识:
若是STS仍然报错,那是由于它找不到JRE1.8,咱们能够经过执行以下步骤告诉他在哪里找到Java:
一、单击Window->Perferences;
二、在左窗格中选择Jave->Installed JRE,而后单击Add按钮;
三、选择Standard VM,而后点击Next,将会看到以下图的对话框,点击“Directory”按钮,并浏览到JDK主目录。
四、点击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文件并将其保存在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或其余的servlet容器来运行应用程序。若是你没有安装Tomcat,请如今安装,若是安装过了能够跳过该步骤。
Tomcat是当今最流行的Servlet/JSP容器,它是免费的、成熟、开源的。
首先,从http://tomcat.apache.org网站下载Tomcat最新版本。选用zip或者gz格式的最新二进制发行版本。
下载了文件后,要进行解压,随后就能在安装目录看到以下几个目录:
进入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。
(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本地管理首页。
要将Servlet/JSP应用程序部署到Tomcat,须要定义一个Tomcat上下文,在Tomcat中,每个Tomcat上下文都表示一个Web应用程序。
定义Tomcat上下文有如下几种方法:
(1)第一种方式
若是决定给每个上下文都建立一个XML文件,那么这个文件名就很重要,由于上下文路径是从文件名衍生获得的。例如,把一个first-spring-mvc.xml文件放在conf/Catalina/localhost目录下,那么应用程序的上下文路径就是commerce,而且能够利用以下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自动部署应用程序就是采用的这种方式。
请按照以下步骤运行程序:
一、右键单击项目并选择Run As ——> Run on Server,你将看到以下对话框:
二、若是没有看到咱们以前安装的Tomcat服务器,那么咱们选择Manually define a new server。
三、而后选择Apache下的Tomcat v8.5 Server,而后点击Finish按钮。
STS将启动Tomcat并运行应用程序,下图显示了STS的Web浏览器,其中显示了应用程序的默认页面:
如今,就能够按照以前写的博客来添加动态内容了。
若是要管理Tomat及其上部署的全部应用程序,清打开STS中的服务器视图:
参考文献
[1]Java开发环境的搭建以及使用eclipse从头一步步建立java项目
[2]Spring MVC学习指南