Nous devons fondamentalement être en mesure d'ajuster le comportement au démarrage, en fournissant les classes désirées à produire par diverses usines au sein de notre application (pour éviter la liaison dure du «nouvel» opérateur). Je suis conscient que cela est fourni par plusieurs grands frameworks, mais je cherchais quelque chose facilement utilisable par une application Java autonome sans être gigantesque.Existe-t-il un cadre simple permettant l'injection de dépendances dans un programme autonome?
Des suggestions? Edit: Il est de mon expérience que les cadres ont tendance à grossir dans le cadre de la maturation (et aussi complexe). J'ai besoin que ceci soit rétrofittable à une application héritée dans le cadre du refactoring important (dette technique), ainsi la simplicité est essentielle des bibliothèques utilisées. Cela ne me dérange pas d'avoir à faire un peu de codage dans notre application, mais il doit être très visible ce qui se passe. L'AOP a tendance à déplacer des objets, ce qui peut rendre l'application plus difficile à maintenir.
Modifier: Nous avons maintenant atteint le point où nous avons réellement besoin de prendre une décision. L'application va probablement vivre pendant des décennies, nous devons donc prendre une décision réversible avec un cadre qui sera maintenu pour espérer aussi longtemps. J'aime vraiment la vérification de type statique disponible avec Guice, mais pas que les annotations se lient explicitement à Guice au lieu d'être externes comme au printemps. J'aime aussi que le code semble être plus concis quand on utilise Guice par opposition à Spring. Nous avons besoin de quelque chose de solide et d'utile. Nous n'avons pas besoin de plus que DI pour le moment. Y a-t-il un cas d'utilisation que dit définitivement aller pour l'un d'entre eux?
Modifier 2011-07-27: La décision finale était d'utiliser l'API JSR-330 dans le code, et choisissez sur une base par projet si à utiliser Spring, Guice ou de soudure. Pour les applications autonomes, Guice a bien fonctionné en ce qui concerne l'implémentation JSR-330.
j'utiliser Spring pour le câblage mes applications clientes. – pjp
Nous avons décidé pour Guice pour l'instant, puis migrer vers JSR-330 quand il y a plus d'une implémentation. –