dimanche 4 mai 2014

Dependency injection into Scala object (singleton)

L'injection de dépendance en Scala est une chose plutôt aisée du fait des possibilités de la syntaxe et des API à disposition. Il existe ainsi plusieurs méthodes permettant de le faire programatiquement, sans fichier de configuration, sans framework comme Spring ou Guice.
Le propos de cet article n'est pas de lister et de comparer toutes les méthodes disponibles pour ce faire; ceci sera traité dans un article ultérieur; mais de décrire une manière d'injecter les dépendances dans un contexte précis.
J'ai récemment eu a participer au développement d'une application web "classique" avec des Dao et des Services.
Ces Dao et Services sont naturellement indiqués pour être utilisés comme des singletons. En Scala, nous disposons d'un mot-clé pour déclarer des singletons : object.
Je vais donc essayer d'illustrer comment injecter une dépendance dans un object Scala et de rendre cet object lui même injectable dans une classe tierce.