6
votes

Fichiers de configuration - Où les mettre en Java?

J'ai une application Java Desktop et la question des fichiers de configuration me vexent moi.

Ce que je veux, c'est que mon dossier d'application distribuable ressemble à ceci:

myApp / application.jar
myApp / springconfig.xml
myApp / autreconfig.xml
myApp / lib

mais pour le moment springconfig.xml est à l'intérieur application.jar et je ne peux même pas trouver autreconfig.xml programmatiquement.

Je me fiche de la manière dont je configurais les différents fichiers de mon chemin de compilation, tant qu'ils se retrouvent comme ceux ci-dessus.

alors ..

  • Où dois-je mettre les fichiers de ma configuration de dev?
  • et comment puis-je y accéder par programme?

    merci


0 commentaires

3 Réponses :


1
votes

En mode DEV, mettez-les dans la source de source et ils seront copiés dans votre dossier de classe, vous pouvez ensuite y accéder à l'aide de ClassLoader.

Exemple: xxx

en mode PROD, vous pouvez leur faire partie de votre pot.


0 commentaires

4
votes
  • Le fichier de configuration du ressort est lié au code et au câblage de votre application, il serait donc mieux à l'intérieur du pot et doit être soumis à modifier par les utilisateurs

  • (nouveau fichier ("."))) getabsolutepath (); renvoie le chemin absolu de votre pot - alors vous pouvez charger le autreconfig.xml par un simple fichierInputStream

  • si le springconfig.xml contient des données de configuration telles que les informations d'identification de la base de données, mettez-les dans une application externe Application.Properties PropertyPlaceholderconfigurier pour charger le fichier externe.

    Répondre à la question "Où puis-je mettre les fichiers dans ma configuration de développement" n'est pas possible car nous ne connaissons pas votre environnement.

    En réalité, si vous souhaitez pouvoir modifier la configuration vous-même (et pas nécessairement des utilisateurs finaux), vous pouvez ouvrir le jar avec n'importe quel logiciel zip (WinRar Par exemple) et modifiez le fichier de configuration dans le pot.

    Mise à jour: Comme il semble que vous ne puissiez pas rendre les fichiers de configuration à sortir du pot. Eh bien, pour un début, vous pouvez le faire manuellement - chaque fois que le .jar est terminé, supprimez simplement le fichier de configuration de l'intérieur et placez-le à l'extérieur.


5 commentaires

OK, je suis à l'aide de Netbeans. Je n'ai toujours pas résolu ce problème. Si j'inclus des fichiers dans un package "config", lorsque je construis, ils sont déployés dans un fichier .jar qui défait le point d'avoir des fichiers de configuration! Acceptez ce que vous dites à propos de Spring Config - Wi ne vous dérange pas que d'être compilé, mais j'ai besoin d'un accès externe dans un fichier de configuration ordinaire. ça me conduit noix ...


Est-il nécessaire que les utilisateurs finaux puissent modifier votre configuration? Ou juste vous / vos coéquipiers. Vérifiez ma mise à jour pour cela.


Oui, il est nécessaire - je fournis certaines options de configuration pour les utilisateurs finaux, bien que je préfère qu'ils n'aient pas obligé de décompresser et de repousser le pot, c'est pourquoi je souhaite le fichier de configuration dans le répertoire racine. Je ne sais juste pas comment je peux le faire! Merci pour votre conseil en passant


Eh bien, vous pouvez simplement le retirer de l'emballage et le placer à l'extérieur, après l'emballage. Ensuite, lisez-le dans la façon dont j'ai décrit ci-dessus.


Ok, mais je ne peux pas trouver nulle part dans Netbeans de le placer afin que cela parie tous les deux copié sur le dossier DIST et est accessible dans le débogage - toute suggestion?



2
votes

Je crée généralement une structure où j'ai un répertoire src / et que d'autres répertoires existent au même niveau. Certains de ces répertoires comprennent:

  • lib / - bibliothèques externes
  • Config / - Fichiers de configuration
  • Ressources / - Diverses ressources que j'utilise (images, etc.)

    À ce même niveau, je crée ensuite un script ANT pour effectuer ma version de sorte que les fichiers de configuration appropriés, les ressources, lib, etc. sont copiés dans mon fichier JAR lors de la construction. Il a bien fonctionné pour moi jusqu'à ce point et est une structure organisationnelle assez facile à comprendre.

    Mise à jour : accéder à mes fichiers de configuration est effectuée, généralement en connaissant leur emplacement et en les ouvrant et en les lisant dans le code. Parce que j'utilise une fourmi pour construire, je m'assure que mes fichiers de configuration sont dans un endroit que j'attends. Donc, par exemple, dans une demande récente que j'ai créée, lorsque je compile, mon fichier JAR est dans le répertoire de niveau supérieur (relatif à la structure de version de l'application). Ensuite, il existe un fichier de configuration "principal" au même niveau. Et il y a un fichier de configuration "thème" qui figure dans un dossier à thèmes.

    Pour lire les différents fichiers, je viens de les ouvrir comme je voudrais tout autre fichier et lisez-les et passez de là. Ce n'est rien de plus en plus fantasgorique, mais cela fonctionne bien et cela facilite la modification manuelle des configurations si je dois le faire.


2 commentaires

@MALCOMTUCKER - Mise à jour My Post pour répondre à votre question.


Cheers, pouvez-vous fournir un extrait de code pour la façon dont vous lisez dans les fichiers de configuration sur les chemins relatifs app? Je présume que vous n'êtes pas du cap de ces emplacements dans votre projet .. Merci