我厌倦了所有这些无聊的样板代码来解析应用程序配置,如数据库连接,工作目录,API端点和whatnot。 Spring IoC看起来不错,但这会迫使我的应用程序的用户修改XML文件来编辑数据库URL等等。这也可能是非常分散的XML文件,我的所有其他线路都是这样。应用程序配置(Spring?)
允许最终用户配置服务(不在应用程序服务器内部运行)的最佳技术是什么?你们用什么?
我厌倦了所有这些无聊的样板代码来解析应用程序配置,如数据库连接,工作目录,API端点和whatnot。 Spring IoC看起来不错,但这会迫使我的应用程序的用户修改XML文件来编辑数据库URL等等。这也可能是非常分散的XML文件,我的所有其他线路都是这样。应用程序配置(Spring?)
允许最终用户配置服务(不在应用程序服务器内部运行)的最佳技术是什么?你们用什么?
使用Spring,是在XML明确的布线,自动布线或它们的一些组合,来定义“常数”的配置,然后在外部化属性文件的其余部分。数据库凭证就是一个常见的例子。
请参阅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(在classpath):
database.username=scratch
database.password=scratch
database.class=oracle.jdbc.OracleDriver
database.url=jdbc:oracle:thin:@localhost:1521:XE
不要忘记你可以使用Spring XML文件来构建应用程序,但使用属性文件来提供这些配置中(比如说)数据库URL等。
这个作品非常漂亮,当你有一组XML文件来构建应用程序,然后提供具体取决于您正在运行的应用程序的开发,测试或生产版本的一组不同的属性文件。
您可以将应用程序配置存储在属性文件中,并使用PropertyPlaceholderConfigurer加载这些属性。
因此,在你的applicationContext文件,你可能有这样的:
<bean id="dataSource" class="com.x.y.z.DataSource">
<property name="url" value="${dataSource.url}" />
</bean>
的dataSource.url属性将被装载在您的属性文件。
这是我在我正在使用的应用程序中使用的,它使配置更容易!
您可以模块化Spring配置文件。因此,您可以为数据库连接创建一个XML文件,然后将其包含(导入)到中央Spring配置文件中。如果用户应该能够修改内容,则可以从模板创建XML文件并(重新)加载应用程序上下文。
,您仍然可以使用Spring你的类与国际奥委会一起连线(以XML,Java的配置,自动装配,等等),但仍使用属性文件包含可基于像数据库连接部署值。
看看PropertyPlaceholderConfigurer。这里有一篇关于你如何使用它的博客文章example。
使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
这里解释: