Sie nicht brauchen es. Jersey verwendet HK2, da es ein internes DI-Framework ist, und HK2 hat eine . Dies wird intern verwendet, um Spring-Komponenten in den HK2-IoC-Container zu überbrücken, sodass sie in Jersey-Komponenten injiziert werden können. Und Jersey implementiert eine AutowiredInjectionResolver
, die für die Injektion von Federkomponenten mit @Autowired
ermöglicht. Sie brauchen nicht einmal @Autowired
. Alle Federkomponenten können mit dem normalen @Inject
gespritzt werden.
Der einzige Nachteil, den ich in, Jersey-Komponenten ein Spring @Component
nicht gemacht hat, ist, dass es @Value
nicht unterstützt, wenn Sie Eigenschaftswerte injizieren möchten.
Die eine Sache, die ich nicht wie ist, dass, wenn Sie etwas ein Frühling @Component
erklären, macht es es automatisch ein Singleton. Aber Jerseyressourcen sind standardmäßig auf Anfrage beschränkt. Sie können eine Spring @Scope("request")
hinzufügen und die Ressource in eine Ressource mit Anforderungsbereichs ändern. Jersey hat declared the Spring RequestScope, also können wir es benutzen. Wie genau es mit Jerseys Anforderung übereinstimmt, bin ich mir nicht hundertprozentig sicher. Ich bin vor einiger Zeit auf ein Problem gestoßen. Ich kann mich nicht erinnern, was es war, aber das hat mich davon abgehalten, jemals wieder den Spring-Anforderungsbereich zu verwenden.
Angenommen, ich möchte alle meine Resources-Anfrage beschränken, würde ich mich an den normalen Jersey-Anfrage-Bereich halten, und nicht in der Lage sein, @Value
s zu injizieren, über Spring Request Umfang zu verwenden. Vielleicht Dinge, die ich stelle mir vor, und es war kein Problem mit ihm, aber persönlich werde ich bleibe nur, was ich sicher wissen :-)
1 - Ein InjectionResolver können Sie benutzerdefinierte Anmerkungen verwenden, um Injektionsziele zu erstellen.
Sobald Sie andere Spring Komponenten injizieren wollen, muss die Ressource auch eine Federkomponente sein. – dunni