Die Integration Jersey 2 und Spring mit Java-Basierter Konfiguration
Ich bin mit Jersey 2.10 und jersey-spring3 und Feder 4.
Ich möchte erreichen, DI - (im wesentlichen Dienstleistungen), die in jersey Ressourcen sowie in anderen Orten und wollen zu erstellen, Spring-Bohnen, die durch die Java-Konfiguration.
Derzeit bin ich nicht in der Lage, um herauszufinden, jede Art und Weise, dies zu tun.
Irgendeine Idee, wie dies zu tun?
meine web.xml sieht so aus
<web-app>
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>
org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>
jersey.config.server.provider.packages
</param-name>
<param-value>com.xyz</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
- Und außer den deployment-descriptor, was hast du bisher ausprobiert, um einige Bohnen verwaltet ein container? Alle Bemühungen?
- Ich weiß, dass annotationconfigapplicationcontext geladen wird @Konfigurierbare Klasse zu erstellen/verwalten Bohnen.aber weiß nicht, wie das zu erreichen ist mit Jersey.
Du musst angemeldet sein, um einen Kommentar abzugeben.
web-app:
JavaBased Konfiguration:
und einfache Steuerung:
zur Prüfung:
localhost:8080/[AppName]/helloController/Hallo
daran denken, ohne alte Feder Abhängigkeiten, die Sie möglicherweise haben einige Konflikte, wenn Sie nicht. Sie können dies tun, dasselbe wie auf dem Beispiel unten oder durch DependencyManagement.
@Component
annotation ist nur erforderlich, wenn Sie benötigen, Frühjahr Funktionalität, die erfordert, proxying, wie@Transactional
.Altmodische Weise:
Da Sie bereits initialisiert die
ContextLoaderListener
einen einfachen trick: benutzen Sie dieWebApplicationContext
rufen Sie Ihre Bohnen bei jeder Anwendung Punkt:Jersey-Unterstützung:
Oder verwenden Sie den annotation-basierte Erkennung, da Jersey hat bereits Unterstützung für Spring DI. Sie haben, um registrieren Sie Ihre Bohnen unter Ihrer main application entry point. Eintrag Punkt, im Beispiel unten wird
some.package.MyApplication
, die bereitgestellt werden sollten, als<init-param>
von der servlet-container:Registrieren Sie Bohnen in Ihrer Anwendung:
Hier können Sie einen Blick auf eine ready-to-run Beispiel aus Jersey Git repo.
Hier ist etwas, das ich fand, ausgehend von verschiedenen tutorials. In Kombination mit anderen Antworten sollten Sie haben ein komplettes Beispiel.
Für diejenigen, die versuchen, es zu tun mit Java-config: