本文将为您提供Spring 基于Spring的web应用程序,MVC框架的配置技巧有助于治理多个例子。这种配置治理的主题往往被学术界忽视,但这对实际的Web开发尤为重要。这个主题与任何特定的技术都没有直接关系,所以我们将从最基本的概念开始解释这个问题。下面,我们将遵循Spring MVC框架为基于本技术开发的项目提供了一系列解决方案。
Spring配置
人们经常在一台以上的主机上配置Web应用程序。例如,在生产中,一个网站可能只有一个例子。除此例外,开发人员还可以在用于开发的机器上配置其他(开发)例子。其他应用程序设备也可以维护在公司(机构)内的本地开发服务器上,这将使您受益匪浅。本实例的目的是让Web设计师获得有质量保证的材料,并为需要为应用程序提供文件的人提供准入。
众所周知,即使是最简单的场景也需要三个例子:安装、配置和维护。对于位于不同地理位置的团队来说,从事此类项目更为困难。对于任何非常简单的Web应用程序项目,都需要许多开发人员来安装项目设备、本地设置和运行单元测试设备。
许多组织将自己开发的产品作为Web应用程序。我们可以在电子商务系统、内容管理系统等许多产品中找到这种情况(CMS),博客发布平台等。这类产品可以部署在多个服务器中。对于成功的多用途Web应用程序,他们的开发人员必须确保他们的应用程序易于安装,并能够与其他Web应用程序完美集成。经过以上讨论,我们应该明确,作为本文的主题,应用程序配置是通用Web应用程序开发人员需要解决的重要问题之一。
CVS或Subversion等版本控制系统是组织开发和使用的标准工具。该工具代表了一些组织的中心源代码版本库,用于保持源代码有序。用户可以跟踪应用程序源代码的变化,显示不同版本的差异,并确定项目分支。此外,它们可以部分更新应用程序部署。
显然,版本控制系统软件是跟踪源代码所必需的,它对解决应用程序配置问题有很大的帮助。在这篇文章中,我们不会专注于版本控制系统,因为在这方面有很多相关的材料。在这里,我们将关注版本控制中的一个小话题:如何使Web应用程序的配置更加方便(特别是使用Spring) 编制MVC框架的Web应用程序)。
问题是:我们在这里讨论的是什么样的配置?任何网络应用程序都需要一些资源,这些资源通常是其运行的服务器所独有的,如数据库URL、SMTP服务器发送电子邮件,以及包含特殊软件文件的文件夹。这样的设置应该集中,以便更容易地配置应用程序。
然而,这只是这个问题最简单的版本。有时,应用程序开发需要更复杂的配置。这意味着每个部署中的不同Bean必须连接起来,这将使问题更加复杂。
这些应用程序配置问题的解决方案有很多优点,包括简化应用程序的安装和配置过程,简化源代码版本的控制,减少源代码版本库中的冲突。接下来,我们将通过示例讨论这个话题。
问题
首先,让我们展示上面提到的最简单的版本。在这种情况下,我们希望在应用程序部署中更改简单的配置参数,如链接、密码等。如果您使用过Spring MVC框架已经开发了Web应用程序,因此您应该知道这里将使用的两个配置文件:
◆ /WEB-INF/applicationContext.XML,它允许您配置Bean或显示应用程序的上下文。通过此文件,您可以定义您的业务逻辑Bean、所有可以与Web端口相关联的资源和其他Bean。
◆ /WEB-INF/[servlet-name]-servlet.xml,用于配置Web层、视图解析器、控制器、校验器等MVC框架所需的Bean。[servlet-name]指的是web.Springng在xml部署描述符中定义 dispatcher servlet的名字。
那么问题在哪里呢?问题在于applicationcontextexte.xml将包含一些特定于主机的Bean定义。最明显的例子之一是包含JDBC连接信息的Bean,但任何稍微复杂的应用程序都有十几个类似的Bean。请参见以下示例:
〈bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"〉 〈property name="driverClassName"〉 〈value〉org.postgresql.Driver〈/value〉 〈/property〉 〈property name="url"〉 〈value〉jdbc:postgresql://localhost/test〈/value〉 〈/property〉 〈property name="username"〉 〈value〉postgres〈/value〉 〈/property〉 〈property name="passWord"〉 〈value〉〈/value〉 〈/property〉 〈/bean〉
这个解决方案的问题在于applicationcontextex.xml文件的维护。对于初学者来说,想象一下,项目被放置在源代码版本控制系统中,例如 CVS。下面,如果您想在网站上添加新的功能,您需要在应用程序的上下文定义中添加额外的Bean定义。问题是如何反映这些变化在生产服务器上。
通常情况下,应用程序的本地实例不会使用与活动站点相同的数据库,因此应用程序licationcontexttextet.xml文件将包括设置,允许您访问本地数据库。当您想在源代码版本库中提交更改时,您需要注意这些特定于主机属性的同步性。本地设置中的配置最终可能用于版本库中的文件。若要在生产服务器上更新配置,则必须手动同步这些属性的值。这是一项非常无聊的任务,而且很容易出错。
这个问题对应用程序的每一个例子都更为重要。如果三个开发人员使用代码段基址,他们使用本地数据库。当您提交更改时,他们每个人在本地服务器上更新源代码时都必须非常小心。他们会手动同步这些变化,然后提交他们的工作。这样,版本控制系统对这些配置文件就没用了。如果使用过Spring MVC,那么,你应该知道applicationcontextettextet.xml是应用程序中的关键组件,因为它把所有的东西都粘在一起。因此,我们需要一种机制来帮助在应用程序中保持一切有序,这是非常重要的。
正如前面提到的,这是一个简单的配置问题,你可能会遇到。当需要在不同的服务器中连接不同的Bean时,会出现更困难的问题。日常软件开发任务中经常会出现这样的问题。例如,如果您的产品有客户身份验证模块,您可以使用来自关系数据库或 LDAP服务器中的用户身份验证。自然,这个身份验证模块可以用抽象版本库的Bean来配置。如果您想在不同的应用程序部署中改变验证用户的方式,您需要在applicationcontextextex上验证用户.不同的Bean连接在xml文件中。在所有具有可配置特性的应用程序中,这种配置问题都很常见。