Tomcat 6 に Java ベースの Web アプリケーションをデプロイしています。いくつかのプロパティを構成可能にする必要があります。現在、config.properties ファイルを作成し、そのファイルを静的 Properties オブジェクトにロードしています。
Java Web アプリケーションで構成可能なプロパティを使用するための効率的な方法またはフレームワークが他にあるかどうか知りたいですか?
Tomcat 6 に Java ベースの Web アプリケーションをデプロイしています。いくつかのプロパティを構成可能にする必要があります。現在、config.properties ファイルを作成し、そのファイルを静的 Properties オブジェクトにロードしています。
Java Web アプリケーションで構成可能なプロパティを使用するための効率的な方法またはフレームワークが他にあるかどうか知りたいですか?
別のオプションは、プロジェクトのすべての定数が定義された 1 つのクラスを持つことです。これにより、アプリケーションを効果的かつ効率的に構成できる一元化された方法が提供されます。
そうは言っても、変更後に毎回コードを再コンパイルする必要があるとは思わないので、構成ファイルを使用するのが最良のオプションだと思います。
編集:上記のコメントのいくつかを見て、作成できるのは、すべての定数を格納できるデータベースに別のテーブルを作成することです。その後、システム管理者やその他のサポート担当者がバックエンドの 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");
構成可能なプロパティーを使用するもう 1 つのフレームワークはJSFです。このサンプルは、JSF でのプロパティーの使用法です。
エンタープライズ レベルの答えは、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>