Pour tous nos environnements, les données de configuration résident sur les machines cibles sous la forme de fichiers de propriétés.Nous utilisons PropertyPlaceholderconfigurer de SpringFramework pour relier ces propriétés à nos applications pour garder les choses portables dans les environnements.
Par exemple, tant que je sais que /etc/myapp/database.properties seront présents sur la machine quel que soit mon application sera en cours d'exécution sur, puis dans ma configuration de printemps, je dois juste quelque chose comme ceci:
<bean id="myPropertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/etc/myapp/database.properties</value>
</list>
</property>
</bean>
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://${db.host}:3306/${db.name}" />
<property name="username" value="${db.user}" />
<property name="password" value="${db.pass}" />
</bean>
Il y a un tas d'options pour cette classe de printemps sur l'endroit où les fichiers de propriétés peuvent vivre. Vous pouvez même les faire des substitutions et les transmettre en tant que variables d'environnement:
<bean id="myPropertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="locations">
<list>
<value>${database.configuration.file.url}</value>
</list>
</property>
</bean>
Et bash_profile (ou autre): JAVA_OPTS exportation = "-Ddatabase.configuration.file.url = file: /// etc/myapp/database.properties »
Ou la même option -D passé lorsque vous appelez « java » en fonction de ce que vous faites. FWIW, nous maintenons nos fichiers de propriétés séparément en tant que RPM.
Vous n'êtes pas certain de comprendre la question sur les modules? – Nicole
Nous ne voulons pas conserver les données de configuration dans les propriétés ou les fichiers XML. Nous voulons centraliser ces données dans la base de données. Donc, je pense à créer un module séparé dans notre application qui va gérer tous les trucs de configuration. – Shekhar
il me semble que vous avez pris la décision de ne pas utiliser les fichiers de propriétés basés sur quelque chose que vous ne nous dites pas. Pouvez-vous nous dire pourquoi vous préférez que la base de données conserve les fichiers de configuration? Vous aurez toujours besoin d'avoir quelque chose d'externe simplement pour gérer les propriétés nécessaires pour établir la connexion à la base de données. – Nicole