设置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,一经查实,立即删除!

相关文章

3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息

跟踪标记&#xff1a;1204/1222 功能及用途&#xff1a; 捕获SQL Server死锁信息&#xff0c;并自动存放到错误日志(ERRORLOG)中。 举例&#xff1a; USE tempdb GO CREATE TABLE t1(id int) INSERT t1 SELECT 1CREATE TABLE t2(id int) INSERT t2 SELECT 1 GO --开启1204/1222…

postgresql建表带注释_postgresql建表带自增id和注释语句

work是表名&#xff0c;nextval(work_myid_seq::regclass)这个是自增id的设置CREATE TABLE "public"."work" ("id" int8 NOT NULL DEFAULT nextval(work_myid_seq::regclass),"wid" int8,"address" varchar(100) COLLATE &q…

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…

5. Longest Palindromic Substring

更新&#xff1a; 之前那种dp太笨重了有个非常的轻巧的做法&#xff0c;原理都是一样的。 转移方程不变&#xff0c;但是不需要特别的初始化 判断某个格子是不是true&#xff0c;是 1.要么长度小于3&#xff0c;要么dp[start1][end-1]true 2.并且s.charAt(start) s.charAt(end…

Java中的定制国际化(i18n)

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

SEO 百度后台主动推送链接

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

linux版本 如何查kali_000_Kali Linux版本查看和apt源配置

1.查看系统版本# cat /etc/issue# lsb_release -a2.查看内核信息# uname -a3.更新源# cp /etc/apt/source.list{,.bak}# vim /etc/apt/sources.list//备注&#xff1a;国外源速度太慢&#xff0c;这里禁止&#xff1b;网络中的部分源已经过期&#xff0c;建议更换其它源。# kal…

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; //字符串拼…

Apache Camel 2.9发布–十大变化

在2011年的最后一天&#xff0c;阿帕奇骆驼制品被成功地推到了中央行销仓库&#xff0c;距离香槟酒瓶破裂并进入2012年仅1.5个小时之遥。 2.9版是创纪录的发行版&#xff0c;自5个月前发布2.8版以来&#xff0c;已解决了约500张JIRA票证。 以下是10个最明显的改进和新功能的分…

HTML5笔记——formData

注&#xff1a;formData中的数据在控制台上的console里面是打印不出来的&#xff0c;只能在控制台的network里面查看到具体的发送数据和发送选项 文章出处&#xff1a;梦想天空 XMLHttpRequest Level 2 添加了一个新的接口——FormData。利用 FormData 对象&#xff0c;我们可以…

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

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

运维祈求不宕机_[国庆特辑] 程序员应该求谁保佑才能保证不宕机?

一年国庆又到&#xff5e;程序猿、运维工程师、利用假期该结婚的结婚&#xff0c;该回老家的回老家。产品经理、项目经理们也要出国旅游了(好像这次是去东京玩)&#xff0c;并且叮嘱一定要安排好值班表。我是个程序员&#xff0c;我也想出国旅游&#xff0c;却觉得有点儿贵。多…

Oracle Weblogic 11g(10.3.4)的小知识

本周&#xff0c;我将为Weblogic进行许多设置和配置&#xff08;我猜是开发人员&#xff09;。 在过去的4年中&#xff0c;我一直在与Weblogic合作&#xff0c;并且我不得不承认-与Eclipse类似-我已经开始使用它。 我曾经是Netbeans / JBoss开发人员&#xff0c;后来转向Eclips…

java中HashMap的用法

重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的&#xff0c;而在Map中我们通过对象来对对象进行索引&#xff0c;用来索引的对象叫做key&#xff0c;其对应的对象叫做value。在下文中会有例子具体说明。 再来看看HashMap和TreeMap有什么…

关于 MVCC 的基础

作为第一篇对 MVCC 的学习材料&#xff0c;以下内容翻译自 Wikipedia。 1. 什么是MVCC 1.1 基础概念 MVCC&#xff0c;Multi-Version Concurrency Control&#xff0c;多版本并发控制。MVCC 是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的…

集成测试CDI 1.0和Spring 3.1中的作用域bean

在这篇博客文章中&#xff0c;我描述了如何在Spring和CDI中使用作用域bean进行集成测试。 一切都用小代码示例进行说明。 使用范围进行集成测试并不是特别容易。 想象一下存在于会话范围内的bean&#xff0c;例如UserCredentials 。 在集成测试中&#xff0c;通常没有HttpReque…

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;"…

USACO milk4 枚举答案再检验

刚开始写了一个暴力的dfs超时了&#xff0c; 最后看了下题解说是先枚举答案再判断&#xff0c;然后就写了双dfs&#xff0c;全部秒杀&#xff0c;代码如下&#xff1a; /*ID: m1500293LANG: CPROG: milk4 */ #include <cstdio> #include <cstring> #include <al…

微信小程序常见问题集合(长期更新)

最新更新&#xff1a; 新手跳坑系列&#xff1a;推荐阅读&#xff1a;《二十四》request:fail错误&#xff08;含https解决方案&#xff09;&#xff08;真机预览问题 跳坑指南《七十》如何让微信小程序服务类目审核通过跳坑六十九&#xff1a;uploadFile:fail Error: unable t…