我在 Tomcat 6 上部署了一个基于 Java 的 Web 应用程序。我需要将一些属性设置为可配置的。目前我已经创建了一个 config.properties 文件并将该文件加载到静态 Properties 对象中。
我想知道是否有任何其他有效的方法或框架可以在 Java Web 应用程序中使用可配置属性?
我在 Tomcat 6 上部署了一个基于 Java 的 Web 应用程序。我需要将一些属性设置为可配置的。目前我已经创建了一个 config.properties 文件并将该文件加载到静态 Properties 对象中。
我想知道是否有任何其他有效的方法或框架可以在 Java Web 应用程序中使用可配置属性?
您可能拥有的另一种选择是创建一个类,其中定义了项目的所有常量。这将为您提供一种集中方式,您可以在其中有效且高效地配置您的应用程序。
然而话虽如此,我认为使用配置文件是最好的选择,因为(我不认为)每次更改后都必须重新编译代码。
编辑:看到上面的一些评论,你可以做的是在你的数据库中有一个单独的表,你可以在其中存储所有常量。然后,您可以通过后端 Web 界面将此表提供给系统管理员和其他支持人员。
试试这个样本;
这是放在 com.package 中的示例 Resource.properties 文件;
name=John
email=john@company.com
description=John is a Java software developer
访问喜欢这样;
private static final String PROPERTIES_FILE = "com/package/Resource.properties";
Properties properties = new Properties();
properties.load(this.getClass().getResourceAsStream(PROPERTIES_FILE));
String name = props.getProperty("name");
String email = props.getProperty("email");
String description = props.getProperty("description");
企业级的答案是通过像Spring这样的集成框架加载您的配置。不过,如果您的应用程序相当小,我不一定会推荐它。
使用 Spring Framework 加载属性:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:configuration.properties"></property>
</bean>
<!-- Here is configutaion for connection pool -->
<!-- Those ${} properties are from the configuration.properties file -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.user}"/>
<property name="password" value="${db.pass}"/>
</bean>
</beans>