(x-posté à Guice liste de diffusion)Guice Scopes personnalisés et gérés par Spring haricots
Je Guice sur une expérimentation nouvelle bibliothèque qui vivent dans une application existante. Toutes nos applications sont actuellement des applications de printemps et nous avons un code commun qui est lié au printemps, principalement à cause du modèle de fil que nous avons tendance à utiliser. Il nous donne fondamentalement (ce qui pourrait être vu comme) un fil logique .
Ainsi, nous pouvons lancer des tâches et garantir que les tâches avec une clé donnée aboutissent toujours sur le même canal dans l'ordre dans lequel elles ont été soumises. Généralement, il s'agit d'un thread unique pour la vie de l'application mais si de mauvaises choses se produisent, le thread de travail (qui supporte le tuyau) est jeté, le tuyau est désactivé, un nouveau worker est créé et le tuyau est réactivé. Tout le câblage ici est fourni par le printemps.
Mes nouveaux besoins lib de l'utiliser pour le modèle de fil & Je prévois d'utiliser Guice du côté de domaine logique & des choses, à savoir la construction du travail qui va sur le pipeline & et la logique qu'il représente. Cela me semble assez simple, sauf pour une chose qui semble très grossière, à savoir que je veux injecter certaines choses avec la portée "pipe" (alias thread logique). J'ai lu les champs personnalisés (et la mise en œuvre SimpleScope) page wiki mais certaines choses ne sont pas claires pour moi et des éclaircissements serait très apprécié ...
- pipes survivre à la vie de la machine virtuelle Java donc il semble que je besoin d'entrer dans une portée, mais ne jamais sortir, des inconvénients à cela?
- Quelles options ai-je pour déclencher l'entrée d'une portée dans un haricot géré par ressort? Est-ce juste un cas de créer le contexte du printemps et ensuite en utilisant le SpringIntegration pour aspirer les haricots de printemps dans un contexte de guice?
- Est-ce que ça sonne vraiment floconneux et je devrais juste l'envelopper avec un singleton claveté par mon ID pipe à la place?
Vive Matt