ITPub博客

首页 > 应用开发 > IT综合 > Spring MVC框架的高级配置(3)

Spring MVC框架的高级配置(3)

原创 IT综合 作者:December2006 时间:2007-06-21 09:39:45 0 删除 编辑
正如您所看到的,除了web.xml文件中常有的ContextLoaderListener之外,我们还添加了contextConfigLocation上下文参数配置。这一参数用于指示框架查找这些配置文件的位置。如果这一参数被省略,则Spring就只能到applicationContext.xml中查找。这里我们也定义了特定于主机的配置文件来使用。 利用这种方法,我们将所有特定于主机的配置从applicationContext.xml文件中移除,这样便减轻了其在不同应用程序部署中的同步性。 如果这种方法成为您的新习惯,您还可以使其更加灵活。通过遵守下列指令,也可以将特定于主机的配置从web.xml文件中移除。 为此,需要创建特定于我们的应用程序上下文的类: package net.nighttale.spring.util; import java.net.InetAddress; import org.springframework.web.context.support.XmlWebApplicationContext; public class PerHostXmlWebApplicationContext extends XmlWebApplicationContext { protected String[] getDefaultConfigLocations() { String hostname = "localhost"; try { hostname = InetAddress.getLocalHost().getHostName(); } catch (Exception e) { } String perHostConfiguration = DEFAULT_CONFIG_LOCATION_PREFIX + "applicationContext-" + hostname + DEFAULT_CONFIG_LOCATION_SUFFIX logger.debug( "Adding per host configuration file: " + perHostConfiguration ); if (getNamespace() != null) { return new String[] { DEFAULT_CONFIG_LOCATION_PREFIX + getNamespace() + DEFAULT_CONFIG_LOCATION_SUFFIX , perHostConfiguration}; } else { return new String[] { DEFAULT_CONFIG_LOCATION , perHostConfiguration}; } } } 这个类拓展了Spring中常被作为默认值使用的XmlWebApplicationContext。XmlWebApplicationContext类将Web应用程序的配置从XML定义文件中复制过来。默认情况下,它可以配置来自applicationContext.xml和[servlet-name]-servlet.xml文件中的应用程序。这个类执行的惟一一项额外任务便是获取它所在的主机名称,并将applicationContext-[hostname].xml文件添加到配置文件列表中。 为了使用这个类,我们需要对其进行编译,将其包含在类途径中,并指示Spring框架使用它。前两步非常简单,我们就不在此赘述。我们可以指示Sping通过contextClass上下文参数来使用它。除了web.xml文件中的原有配置,我们还可以添加下列内容: <context-param> <param-name>contextClass</param-name> <param-value> net.nighttale.spring.util.PerHostXmlWebApplicationContext </param-value> </context-param> 如果我们使用这一配置片断,将会有三个文件被用于初始化这个框架:[servlet-name]-servlet.xml、applicationContext-[hostname].xml以及applicationContext.xml。 正如您所看到的,applicationContext.xml和web.xml文件已经完全摆脱了任何特定的配置细节,而且您也不必担心会在更新应用程序时破坏配置。 但是,这种方法有一个不足之处。因为,不论是否会使用,都需要在应用程序部署中有第三个配置文件。在这种情况下,便不需要特定于主机的配置。例如: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans></beans> 最后,需要知道应用程序上下文类需要查找的特定主机名。检查主机名称的最简单的方法是在机器上运行下列代码: System.out.println(InetAddress.getLocalHost().getHostName()) 可以将其作为Java代码执行,也可在喜欢使用的脚本语言(如BeanShell或Groovy)中作为一个具有Java风格语法的脚本执行。在获取了主机的名称之后,应该创建一个默认的/WEB-INF/applicationContext-[hostname].xml空文件夹(如我们上面所定义的),然后便可以开始了。 结束语 在本文中,我们提供了一系列的配置技巧,让您在使用Spring MVC框架完成日常工作的时候更加轻松。如果您希望知道如何维护各种Web应用程序部署,可以试着找出最适合您的开发过程的解决方案。您的生活会更为轻松。[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8383357/viewspace-920037/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    28
  • 访问量
    22135