设置Spring 3开发环境

本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序。 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件。 在教程中,我们将需要安装以下组件:
  • Java 6 JDK更新26
  • 用于Java EE开发人员的Eclipse IDE 3.6.2(Helios)
  • Maven的3.0.3
  • Tomcat 7.0.14

我建议您创建一个文件夹,在其中放置设置环境所需的所有内容。 我的文件夹是C:\ spring。 当我引用它时,我将其称为<dev_home>。

注意:可以通过不同方式设置Spring环境。 请参见此处的示例,以了解如何使用Maven进行依赖管理来在Eclipse中设置动态Web项目。 将其与此链接结合在一起,以了解如何使用Maven将Spring依赖项下载到Eclipse中。 但是,我个人更喜欢逐步安装单独的组件并自己集成它们。 通过这种方式,我学到了很多有关工具如何协同工作以及如何集成它们的知识,以及在出现问题时如何修复它们的方法!

在本教程中,我们将创建一个演示项目。 我们使用的是众所周知的Spring MVC,Spring Core,JPA,Hibernate(“仅Web容器”)开发堆栈。 此堆栈已成功用于许多生产型企业应用程序中。 该演示可用于开始您自己的企业项目的开发。

安装Java 6 JDK

您首先需要的是-猜猜是什么-Java! 您可以从此处下载Java JDK。 不要下载NetBeans或Java EE。 您不需要它。 您只需要一个Java JDK。 因此,选择Java JDK下载按钮。 然后,为您的操作系统选择下载按钮。 对我来说,那是旧的Windows x86。 您将Java作为自解压缩的.exe文件。 当安装程序要求输入目标安装目录时,将其设置为<dev_home> / java。

为Java EE开发人员安装Eclipse IDE

现在要做的是安装集成开发环境。 我更喜欢使用Eclipse进行开发。 它有一个庞大的社区,所有Maven和Tomcat之类的东西都与Eclipse很好地集成在一起。 要下载Eclipse,请执行以下步骤:

  • 在<dev_home>中创建一个名为“ eclipse”的子文件夹。
  • 打开您的Web浏览器。
  • 转到Eclipse下载页面
  • 在右上角,选择适合您的操作系统的下载链接。 对我来说是Windows 32位。
  • 按照说明下载Eclipse ZIP-Package。

下载Eclipse软件包时,可以将其解压缩到<dev_home> / eclipse。 解压缩Eclipse之后,此安装完成。

要启动Eclipse,您可以双击<dev_home> / eclipse文件夹中的eclipse.exe文件。 当您以这种方式启动Eclipse时,您将获得标准的启动配置。 这可能会导致一些问题,例如内存不足异常。 我建议使用.cmd文件中的一些启动参数来启动Eclipse。 以下清单显示了我的典型启动脚本:

@echo off
set  DEV_HOME=C:\spring
set JAVA_HOME=%DEV_HOME%\javaset PATH=%JAVA_HOME%\bin;%PATH%start %DEV_HOME%\eclipse\eclipse.exe -vm %JAVA_HOME%\bin\javaw.exe -showlocation -vmargs -server -Xms512m -Xmx1024m -XX:MaxPermSize=128m

让我们创建自己的启动脚本:

  • 在<dev_home> / eclipse文件夹中,创建一个名为eclipse.cmd的文本文件。
  • 将上面的清单放入文件中,保存文件并关闭它。
  • 要启动Eclipse,请双击eclipse.cmd文件。

如果一切正常,那么您将看到以下屏幕:

在Eclipse中,所有开发源都放置在Eclipse项目中。 所有项目都在您的工作区中。 在这里您可以输入Eclipse创建工作空间的目录

  • 在“工作空间”字段中输入<dev_home> / workspace。
  • 按“确定”按钮。

如果一切顺利,您将在Eclipse中获得以下屏幕。

从这里开始,执行以下操作以准备好Eclipse来开发应用程序。

  • 在菜单栏中选择“窗口/关闭透视图”。
  • 在菜单栏中选择“窗口” /“打开透视图” /“其他”。
  • 选择Java EE透视图,然后单击“确定”。

现在我们离开Eclipse,因为还有其他事情要做。 要关闭Eclipse,请在菜单栏中选择File / Exit。

使用Maven 3创建Eclipse项目

在本教程中,我们使用Maven 3设置Eclipse项目。 Maven在这里非常易于使用。 关于生命周期工具,还有其他选择,例如Gradle或ANT。 我仍然经常使用ANT,因为我喜欢完全掌控事物。 但是,为了简化本教程,我们使用Maven 3,因为它使标准项目的设置非常容易。 要获取Maven 3的副本,请执行以下操作:

  • 转到Maven下载页面 。
  • 选择镜像apache-maven-3.0.3-bin.zip(对于Windows)。
  • 选择要在其中下载副本的镜像。
  • 将ZIP文件解压缩到<dev_home> / maven中。

“ Maven将使用合理的默认值运行,因此您可以直接使用它。 但是,如果您在受限环境中或防火墙后面运行,则可能需要准备运行Maven,因为它需要对主目录(Windows上为C:\ Documents and Settings \ username \ .m2)和网络进行写访问。可以下载二进制依赖项。” 有关如何配置代理服务器的信息,请参见此处 。 (摘自Maven手册 )

现在,我们下载并解压缩了Maven之后,就可以使用它了。 请执行下列操作:

  • 启动命令提示符窗口
  • 转到<dev_home> / workspace
  • 如下设置PATH变量:set PATH = <dev_home> \ maven \ bin;%PATH%。 不要忘记用开发环境主目录替换<dev_home>。
  • 键入mvn –version。 Maven现在应该与您交谈并回答以下内容:
  • 现在,我们准备创建Eclipse项目。 Maven使用原型为您建立了一个完整的项目。 有很多可用的原型。 要获取列表,只需输入mvn archetype:generate。 这将启动一个交互式批处理实用程序,您可以在其中立即查看Maven支持的所有原型。 因为我们知道我们想创建一个Spring项目,所以不需要交互模式。 输入以下内容以创建Spring项目:

mvn原型:generate -DarchetypeGroupId = org.fluttercode.knappsack -DarchetypeArtifactId = spring-mvc-jpa-demo-archetype -DarchetypeVersion = 1.1 -DgroupId = com.mycompany.springapp -DartifactId = my-spring-app -Dversion = 1.0-SNAPSHOT -DinteractiveMode =假

  • 在<dev_home> / workspace文件夹中,现在应该有一个名为my-spring-app的新文件夹。 转到该目录。
  • 打开pom.xml文件以查看项目的依赖项。 pom.xml文件是Maven的主要配置文件。 这里指定为项目依赖项的所有内容均由Maven下载。 实际上,Maven还检查您是否具有传递依赖关系,因为它分析了直接依赖关系的依赖关系。 这样,您就没有负担手动将东西粘在一起。 感谢上帝,这个非常有用的功能!
  • 在命令提示符下,输入以下Maven命令:mvn eclipse:eclipse。 这将在当前文件夹中生成一个完整的Eclipse项目。 这将花费时间,因为Maven下载了运行Spring应用程序所需的所有依赖库。 您现在可以真正去喝咖啡了。 如果一切正常,那么您会在Maven控制台输出的末尾看到以下内容:

现在就完成了创建具有所有Spring依赖项的Eclipse项目的工作。

注意:您注意到Spring下载了很多东西来使所有东西运行。 Spring提供了很多功能,并且向下兼容。 许多人抱怨它不再是轻量级的。 它们恰好指代此依赖项列表。 我的看法是,别无选择。 其他方法完全一样,但是只是在幕后。 通常,如果出现问题,您就不知道为什么。 至少当您使用Spring时,您就知道自己的依赖关系,也知道自己所需要的东西。 没有什么隐藏的。 我更喜欢完全理解这些技术知识,因此如果出现问题,我可以帮助自己。

注意:如果要设置Java EE 6环境,请继续执行Java EE 6教程。 本教程的其余部分专门针对Spring设置。

将新项目添加到Eclipse工作区

我们必须使该项目对Eclipse可见。 执行以下步骤。

  • 要打开Eclipse,请转到<dev_home> / eclipse,然后双击eclipse.cmd。
  • 如果出现“工作区对话框”,请确保在<dev_home> / workspace下选择正确的工作区。 按“确定”。
  • 在Eclipse中,从菜单栏中选择File / Import。
  • 在“导入”对话框中,选择“现有项目到工作区”,然后选择“下一步”。
  • 选择<dev_home> / workspace / my-spring-app作为项目的根目录。
  • 按“完成”。

该项目将被导入。 导入完成后,您将认识到底部的“标记”视图显示了各种错误和警告。

现在,Eclipse不知道Maven将Spring库(JAR文件)放在哪里。 当您下载pom.xml文件中指定的依赖项时,Maven将jar文件放入本地存储库中。 现在,默认情况下,Eclipse不知道此Maven存储库在本地计算机上的位置。 因此,Eclipse无法构建项目。 结果,底部的“标记”视图显示了各种错误消息。您可以使用Maven轻松设置缺少的环境变量。 为此,请执行以下操作:

  • 从菜单栏中使用文件/退出关闭Eclipse。
  • 转到我们先前打开的命令窗口。
  • 键入:mvn -Declipse.workspace = <dev_home> / workspace eclipse:add-maven-repo。 按回车。 Maven现在将为您创建变量。
  • 再次打开Eclipse(双击<dev_home> /eclipse/eclipse.cmd)
  • 在Eclipse中,选择菜单栏中的Project / Clean,然后选择“ Clean all Projects”,然后在对话框中按OK。 Eclipse现在将重新编译源代码。 记住这一点,当您使用Eclipse时,有时会需要它。

构建路径错误在“标记”视图中消失了。

如果您在防火墙后面工作,则Eclipse无法访问Internet来验证某些XML文件的语法。 您需要配置代理设置。

  • 从菜单栏中转到窗口/首选项。
  • 在“首选项”选项卡上,转到“常规/网络连接”。
  • 将“活动提供者”设置为“手动”,然后在所选代理设置中进行更改。

这又将减少“标记”视图中的警告数量。

现在忽略其他警告。 一切都会顺利进行。

安装Tomcat 7

接下来,您需要一个容器,您可以在其中部署spring应用程序。 我将Tomcat用作本地开发的容器。

  • 转到Tomcat下载页面 。
  • 下载32位Windows ZIP文件。
  • 在您的<dev_home>文件夹中,创建一个新的“ tomcat”文件夹,然后在其中解压缩tomcat。
  • 转到Eclipse Workbench。
  • 在菜单栏中选择窗口/显示视图/服务器
  • 右键单击视图,然后从上下文菜单中选择“新建/服务器”。
  • 在“新服务器”对话框中,选择“ Apache / Tomcat v7.0服务器”,然后单击“下一步”。
  • 在下一个对话框中,输入<dev_home> / tomcat作为安装目录。 点击下一步”。
  • 在下一页上,选择my-spring-app并单击“添加”以配置Eclipse使用新的Server作为运行时容器。 选择“芬兰语”。

现在已配置了Eclipse。 它知道您将Tomcat 7用作Web容器,并且将正确部署新的Spring应用程序以在本地环境中对其进行测试。

注意:“当Eclipse在Eclipse工作区中创建Tomcat文件夹时,它会忘记复制Tomcat默认应用程序(ROOT,示例等)。 转到C:\ apache-tomcat-7.0.8 \ webapps,右键单击ROOT文件夹并将其复制。 然后转到Eclipse工作区,转到.metadata文件夹,然后搜索“ wtpwebapps”。 您应该找到类似your-eclipse-workspace \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps(如果已经在Eclipse中注册了另一台服务器,则为…/ tmp 1 / wtpwebapps)。 转到wtpwebapps文件夹,右键单击并粘贴ROOT(如果询问是否要合并/替换文件夹/文件,请说“是”)。 然后重新加载http:// localhost /以查看Tomcat欢迎页面。” (摘自: coreservlets.com )

启动和使用演示应用程序您现在可以测试安装。 您将执行以下操作:

  • 在Eclipse中启动Tomcat服务器。 转到“服务器”视图。
  • 选择Tomcat服务器,然后右键单击上下文菜单。
  • 选择“调试”。 这将以调试模式启动Tomcat服务器。 您可以在Eclipse中看到服务器日志。
  • 选择“控制台”视图,然后注意到Tomcat与您对话。 确保您在此处看不到任何异常痕迹。
  • 现在,由于Tomcat已启动,请打开浏览器并转到: http:// localhost:8080 / my-spring-app
  • 这将打开您的Spring应用程序。 玩一点。

你完成了! 您已经安装并启动了典型的Spring开发环境。 此设置将是我后续的Spring教程的前提条件。 我将向您介绍Spring框架的不同功能。

您可能遇到的一些错误以及解决方法

找不到“ http://java.sun.com/jsp/jstl/core”的标记库描述符。可以在Eclipse项目中将目标运行时设置为将执行Web应用程序的服务器(例如,对于JSF:Glassfish) ),然后Eclipse将从那里加载所需的库。 转到“项目->属性->目标运行时”,然后选择您的运行时。

JCG合作伙伴的 参考资料: “设置Spring 3开发环境”   尼克拉斯。


翻译自: https://www.javacodegeeks.com/2012/02/set-up-spring-3-development-environment.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js中window.onload 与 jquery中$(document.ready()) 测试

js中window.onload 与 jquery中$(document.ready())区别&#xff0c;验证代码如下(调换js代码和Jquer代码书写顺序测试&#xff0c;运行结果一样&#xff0c;因此与代码书写位置没关系)&#xff1a;<html> <head> <script typetext/javascript srcjquery-1.11.1…

Java中的定制国际化(i18n)

国际化&#xff08;i18n&#xff09;在我们的软件项目中非常重要。 它主要带来以下好处&#xff1a; 将UI字符串外部化为除代码文件之外的外部文件&#xff0c;以及易于管理的UI内容。 支持多种语言。 在这篇文章中&#xff0c;将为Eclipse和Java项目提供一个简短的i18n实际示…

SEO 百度后台主动推送链接

实践步骤&#xff0c;先用爬虫程序将本网站的所有连接爬取出来&#xff0c;再用python文件处理程序把爬虫来的东东整理成一行一个链接的文本格式。再用postman接口测试工具&#xff0c;使用post方式&#xff0c;将所有的链接post过去&#xff0c;这样主动推送是最为快速的提交方…

nyoj--127--星际之门(一)(生成树的数量)

星际之门&#xff08;一&#xff09; 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;3描述公元3000年&#xff0c;子虚帝国统领着N个星系&#xff0c;原先它们是靠近光束飞船来进行旅行的&#xff0c;近来&#xff0c;X博士发明了星际之门&…

Oracle 常用的一些函数

字符函数 SELECT UPPER(hello WORLD) FROM DUAL; //将小写字母变为大写字母SELECT LOWER(hello WORLD) FROM DUAL; //将大写字母变为小心字母SELECT INITCAP(hello WORLD) FROM DUAL; //将字符串的首字母大写SELECT CONCAT(hello, world) FROM DUAL; //字符串拼…

JavaScript 学习随记——==和===及常见元素的真假值

“” 和 “” 符合的使用 <script>/*** 表示可以经过自动转换&#xff0c;比较的是数值*///example01if(1 true && false 0 && true 1){console.log(1true);console.log(" 比较的是等号两边数据的值是否相等&#xff08;可以经过自动转换&#…

JavaScript学习随记——数组一

数组的创建及length属性 <script type"text/javascript" charset"utf-8">// 数组创建方式一,此种方式写的时候比较麻烦var arrnew Array();// 数组创建方式二var arr [1,2,3,4,true,str,new Date()];console.log("arr.length&#xff1a;"…

Spring和石英:多作业计划服务

作业调度对于应用程序来说是如此重要。 尤其是在大型项目中&#xff0c;处理大量工作可能是一个问题。 Spring和Quartz为解决该问题带来了巨大的好处。 本文介绍了如何通过使用Spring和Quartz轻松地计划多个作业。 二手技术&#xff1a; JDK 1.6.0_21 春天3.1.1 石英1.8.5 M…

反射的简单应用

首先有一个类 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 7 namespace ConsoleApplication18 {9 public class demo 10 { 11 public string name "程序员"; 12…

JavaFX 2.0示例介绍书

我最近完成了有关JavaFX 2.0 SDK新版本的书的编写&#xff0c;并且已经将它放在您附近的书店&#xff08; Amazon &#xff09;的书架上。 该书将逐步指导您完成JavaFX 2.0的来龙去脉。 当您遇到一章时&#xff0c;将看到一些菜谱&#xff0c;这些菜谱将带来一个问题&#xff0…

双纵坐标的绘图命令_工程师绘图必备软件——OriginLab 2019b

点击右上角关注&#xff0c;尽享后续精品软件OriginLab 2019b是OriginLab OriginPro 2019版本的加强版&#xff0c;这个软件对于许多人来讲并不陌生&#xff0c;可以说是科学家和工程师的绘图必备软件。新的版本也带来许多改变&#xff0c;软件拥有多种功能&#xff0c;这个版本…

Spring远程支持和开发RMI服务

Spring远程支持简化了启用远程服务的开发。 当前&#xff0c;Spring支持以下远程技术&#xff1a;远程方法调用&#xff08;RMI&#xff09;&#xff0c;HTTP调用程序&#xff0c;Hessian&#xff0c;Burlap&#xff0c;JAX-RPC&#xff0c;JAX-WS和JMS。 远程方法调用&#xf…

ToString:身份哈希码的十六进制表示形式

我以前在方便的Apache Commons ToStringBuilder上写过博客&#xff0c;最近有人问我&#xff0c;在生成的String输出中出现的看似神秘的文本是什么构成的。 询问该问题的同事正确地推测出他正在查看的是哈希码&#xff0c;但与他实例的哈希码不匹配。 我解释说ToStringBuilder将…

登录id 黑苹果_黑苹果MacOSCatalina无法登录AppStore修复

先上图&#xff1a;惨红色的提示信息&#xff0c;把你拒之App Store门外&#xff0c;但是对之放弃、不与之斗争不是我们的节奏&#xff0c;请看破敌攻略&#xff1a;1.查看你的“关于本机”-->“概览”-->“系统报告”&#xff0c;如图&#xff1a;找到你的“网络”-->…

Web开发的入门指导

Web开发的入门指导web开发编程技术你点开此文&#xff0c;说明你对Web开发是有兴趣的&#xff0c;或者你正在思考开始学习Web开发。在这里&#xff0c;我会告诉你成为一名Web开发者的路线&#xff0c;是对初学者关于Web开发的指导。这篇文章不会教你如何写代码&#xff0c;而是…

过滤日志中不相关的堆栈跟踪行

我喜欢堆栈痕迹。 不是因为我喜欢错误&#xff0c;而是因为发生错误的那一刻&#xff0c;堆栈跟踪是无价的信息源。 例如&#xff0c;在Web应用程序中&#xff0c;堆栈跟踪向您显示完整的请求处理路径&#xff0c;从HTTP套接字到过滤器&#xff0c;Servlet&#xff0c;控制器&a…

Dijkstra 最短路算法(只能计算出一条最短路径,所有路径用dfs)

上周我们介绍了神奇的只有五行的 Floyd 最短路算法&#xff0c;它可以方便的求得任意两点的最短路径&#xff0c;这称为“多源最短路”。本周来来介绍指定一个点&#xff08;源点&#xff09;到其余各个顶点的最短路径&#xff0c;也叫做“单源最短路径”。例如求下图中的 1 号…

2016给自己一个交代

一、前言 在关于技术上的学习&#xff0c;常常有这样那样的计划&#xff0c;而最终一个都没有真正的落实。零散的学习&#xff0c;终究需要系统总结&#xff0c;才能使自己有所沉淀。从毕业至今&#xff0c;我一直在忙碌&#xff0c;为公司付出自己的很多很多&#xff0c;却只不…

建模步骤_古建设计 | sketchup建模步骤教程(简易入门版)

前言本篇教程主要是针对古建建模入门者。小N给大家分享一套我相对简易的建模步骤。(PS&#xff1a;但是估计有些人可能会感觉我做的东西已经繁琐了……)因为主要是为了让大家熟悉、入门和好记忆。所以讲的东西&#xff0c;小N我会相对简单&#xff0c;有些细节的内容不会更多展…

Linux下面的IO模型

1. Linux下的五种I/O模型 阻塞I/O模型&#xff1a; 一直阻塞 应用程序调用一个IO函数&#xff0c;导致应用程序阻塞&#xff0c;等待数据准备好。 如果数据没有准备好&#xff0c;一直等待….数据准备好了&#xff0c;从内核拷贝到用户空间,IO函数返回成功指示。 我们 第一…