Dans mon application Play, je le fais dans Module.configure()
:Est-il possible de bloquer un thread au démarrage de l'application?
bind(classOf[GadgetsReader]).toInstance(GadgetsCsvReader)
bind(classOf[Gadgets]).asEagerSingleton()
Alors, je fais ceci:
@Singleton
class Gadgets @Inject()(reader: GadgetsReader) {
val all:Seq[Gadget] = reader.readGadgets()
}
qui se charge de façon synchrone une grande collection de gadgets d'un CSVfile en mémoire au démarrage, en Le fil de rendu d'un jeu.
Je n'ai pas vu de scénario similaire implémenté dans les exemples Play. Je voudrais savoir si ce que je fais est idiomatique Scala & Jouer.
Est-il possible de charger un très gros fichier de manière synchrone de cette manière, étant donné que je ne veux pas que des requêtes soient traitées tant que les données ne sont pas complètement chargées?
Est-ce une bonne chose que j'ai créé une classe Gadgets
puis de l'injecter, par opposition à une méthode statique/objet Gadget.all
?
Les classes Gadget
et Gadgets
doivent-elles être sous model
?
D'autres commentaires seraient également appréciés.
est-il nécessaire d'injecter à la fois Gadgets et GadgetReader? –