我在Tomcat 6上部署了一个基于java的Web应用程序。我需要将一些属性设置为可配置。目前我已经创建了一个config.properties文件,并将该文件加载到静态Properties对象中。
我想知道是否有任何其他有效的方法或框架在Java Web应用程序中使用可配置属性?
答案 0 :(得分:0)
您可能拥有的另一个选项是让一个类在其中定义项目的所有常量。这将为您提供一种集中的方式,您可以在其中有效地配置您的应用程序。
尽管如此,我认为使用配置文件是最好的选择,因为(我不认为)每次更改后都必须重新编译代码。
编辑:看到上面的一些评论,你可以做的是在数据库中有一个单独的表,你可以在其中存储所有的常量。然后,您可以通过后端Web界面将此表提供给系统管理员和其他支持人员。答案 1 :(得分:0)
试试这个样本;
这是放在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");
答案 2 :(得分:0)
企业级答案是通过 Spring 等集成框架加载配置。如果您的应用程序相当小,我不一定会推荐它。
答案 3 :(得分:0)
使用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>