代码之家  ›  专栏  ›  技术社区  ›  Malax

应用程序配置(Spring?)

  •  5
  • Malax  · 技术社区  · 17 年前

    我厌倦了所有这些无聊的样板代码来解析应用程序配置,比如数据库连接、工作目录、API端点等等。SpringIOC看起来不错,但是这将迫使我的应用程序的用户修改XML文件,仅仅是为了编辑数据库URL等等。这也可能在XML文件中非常分散,在该文件中,我的所有其他连接组织都在这里。

    允许最终用户配置服务(不在应用服务器内运行)的最佳技术是什么?你们用什么?

    6 回复  |  直到 10 年前
        1
  •  10
  •   cletus    17 年前

    使用spring(XML中的显式连接)、auto-wiring或其组合来定义“常量”配置,然后将其余部分外部化到属性文件中。数据库凭证就是一个常见的例子。

    Spring and Ibatis Tutorial 这是一个基线示例。短版:

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:database.properties"/>
    </bean>
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${database.class}"/>
        <property name="url" value="${database.url}"/>
        <property name="username" value="${database.username}"/>
        <property name="password" value="${database.password}"/>
    </bean>
    

    使用database.properties(在类路径中):

    database.username=scratch
    database.password=scratch
    database.class=oracle.jdbc.OracleDriver
    database.url=jdbc:oracle:thin:@localhost:1521:XE
    
        2
  •  5
  •   user7094    17 年前

    您可以将应用程序配置存储在属性文件中并使用 PropertyPlaceholderConfigurer 加载这些属性。

    因此,在您的applicationContext文件中,您可能有以下内容:

    <bean id="dataSource" class="com.x.y.z.DataSource">
        <property name="url" value="${dataSource.url}" />
    </bean>
    

    datasource.url属性将从属性文件加载。

    这就是我在正在开发的应用程序中使用的,它使配置更加容易!

        3
  •  2
  •   Nate    17 年前

    您仍然可以使用Spring将IOC(XML、Java CONFIG、AutoVoIP等)连接在一起,但仍然使用属性文件来包含可能基于部署的数据库连接而改变的值。

    PropertyPlaceholderConfigurer . 这是一篇博客文章 example 你会如何使用它。

        4
  •  2
  •   Undo ptrk    10 年前

    不要忘记,您可以使用SpringXML文件来构建应用程序,但是在这些配置中使用属性文件来提供(比如)数据库URL等。

    当您有一组XML文件来构建应用程序,然后根据您运行的是应用程序的开发、测试还是生产版本,提供一组不同的属性文件时,这会非常好地工作。

        5
  •  0
  •   cafebabe    17 年前

    您可以模块化Spring配置文件。因此,您可以有一个用于数据库连接的XML文件,然后将其包含(导入)到中央Spring配置文件中。如果用户能够修改内容,那么您可以从模板创建XML文件并(重新)加载应用程序上下文。

        6
  •  0
  •   Nick Holt    17 年前

    使用A org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 这里解释:

    http://static.springsource.org/spring/docs/2.5.x/reference/beans.html#beans-factory-placeholderconfigurer