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 &quot;%r&quot; %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学习指南

[3]eclipse怎么设置server location

Spring MVC -- Spring Tool Suite和Maven(安装Tomcat、JDK)的更多相关文章

  1. freemarker + spring mvc + spring + mybatis + mysql + maven项目搭建

    今天说说搭建项目,使用freemarker + spring mvc + spring + mybatis + mysql + maven搭建web项目. 先假设您已经配置好eclipse的maven ...

  2. Spring MVC第一课:用IDEA构建一个基于Spring MVC, Hibernate, My SQL的Maven项目

    作为一个Spring MVC新手最基本的功夫就是学会如何使用开发工具创建一个完整的Spring MVC项目,本文站在一个新手的角度讲述如何一步一步创建一个基于Spring MVC, Hibernate ...

  3. SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发。

    SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发.是目前企业开发比较流行的架构.代替了之前的SSH(Struts + Spring + Hibernate) 计划 ...

  4. Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建

    目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...

  5. Spring MVC+Spring +Hibernate配置事务,但是事务不起作用

    最近做项目,被一个问题烦恼了很久.使用Spring MVC+Spring +Hibernate开发项目,在使用注解配置事务管理,刚开始发现无论如何数据库都无法更新,但是可以从数据库查询到数据.怀疑是配 ...

  6. Spring MVC + Spring + Mybitis开发Java Web程序基础

    Spring MVC + Spring + Mybitis是除了SSH外的另外一种常见的web框架组合. Java web开发和普通的Java应用程序开发是不太一样的,下面是一个Java web开发在 ...

  7. velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)

    velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主 ...

  8. Spring MVC -- Spring MVC入门

    本篇博客首先介绍Spring MVC的优点,然后介绍Spring MVC的基本组件,包括DispatcherServlet,并学习如何开发一个“传统风格”的控制器,这是在Spring 2.5版本之前开 ...

  9. 基于Spring MVC + Spring + MyBatis的【医院就诊挂号系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/21727306 一.语言和环境 1.实现语言: JAVA语言. 2.环境要求: MyE ...

随机推荐

  1. CodeChef Tree Palindromes

    Tree Palindromes Given a tree rooted at node 1 with N nodes, each is assigned a lower case latin cha ...

  2. redis 哨兵集群原理及部署

    复制粘贴自: https://www.cnblogs.com/kevingrace/p/9004460.html 请点击此链接查看原文. 仅供本人学习参考, 如有侵权, 请联系删除, 多谢! Redi ...

  3. 什么是cdn?

    CDN加速意思就是在用户和我们的服务器之间加一个缓存机制, 通过这个缓存机制动态获取IP地址根据地理位置,让用户到最近的服务器访问. 那么CDN是个啥? 全称Content Delivery Netw ...

  4. 使用haproxy 2.0 prometheus metrics 监控系统状态

    haproxy 2.0 已经发布一段时间了,提供内部直接暴露的prometheus metrics 很方便 ,可以快速的监控系统的状态 以下是一个简单的demo 环境准备 docker-compose ...

  5. A1102 | 反转二叉树

    #include <stdio.h> #include <memory.h> #include <math.h> #include <string> # ...

  6. P4141 消失之物

    目录 链接 思路 代码 链接 P4141 消失之物 思路 f[N];//表示删掉物品后能出现容积为i的方案数 a[N];//单纯0-1背包的方案数asd 那么就先求出a[i]来,然后转移就是 if(j ...

  7. shell for循环输出目录下的文件名

    test.sh文件: #!/bin/bash for file in `ls`;do echo $file done 输出 bogon:test macname$ chmod +x test.sh b ...

  8. 数据库MySQL调优实战经验总结<转>

    数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...

  9. qt5 qmake开发

    mkdir hello helloworld.cpp #include <QPushButton> #include <QApplication> int main(int a ...

  10. MyBatis(九):Mybatis Java API批量操作(增、删、改、查)

    最近工作中用到了mybatis的Java API方式进行开发,顺便也整理下该功能的用法,接下来会针对基本部分进行学习: 1)Java API处理一对多.多对一的用法: 2)增.删.改.查的用法: 3) ...