2009-06-17 15 views
1

Ich verwende Spring, um meine DAO & Services zu verwalten. Und JSF für die Benutzeroberfläche. Ich möchte die Abhängigkeitsinjektion in meiner JSF-Backing-Bean verwenden. Es gibt einen Artikel, der erklärt, wie ich das machen kann.JSF 1.2 + Feder 2.5. Wie man?

Aber ich habe zwei getrennte Projekte: eines für Service und eines für UI. Die Spring-Konfigurationsdatei befindet sich im Dienstprojekt.

Wie kann ich beide Projekte mit Spring verbinden? Ich möchte meine JSF-Seiten für DI kommentieren.

+0

Sorry für mein schlechtes Englisch :) – aindl

+1

Keine Entschuldigung erforderlich. Damit können Redakteure helfen. – duffymo

Antwort

0

Wenn Sie meinen, dass Sie ein WAR mit darin definierten Webservices und ein anderes separates WAR mit dem JSF-Kram haben, denke ich, dass es wirklich zwei separate Projekte mit jeweils eigener Spring-Konfiguration sind.

Der Webdienst WAR verwendet entweder Spring-Webdienste oder möglicherweise HTTP-Remoting, um Ihre Serviceschnittstellen Clients über HTTP zur Verfügung zu stellen. Dies hat eine Gruppe von Anwendungskontextkonfigurationen, entweder XML oder Anmerkungen.

Die JSF WAR wird die JSPs und Controller haben. Den Controllern werden Clients hinzugefügt, die mit den Remote-Diensten interagieren, um das zu erreichen, was Sie wünschen. Das ist alles, was sie über den Service WAR wissen müssen. Es muss keine doppelte Konfiguration geben.

Es ist eigentlich ein schönes Design, weil es den Blick vom Rest des Problems vollständig entkoppelt.

+0

Meine Serviceebene packe ich in ein Glas. Mein KRIEG hat dieses Glas in seiner Abhängigkeit, ich packe dieses JAR in meinen KRIEG. Ich bin neu in JSF und Frühling und vielleicht habe ich nicht genau beschrieben, was ich will. Ich kann Spring-Beans mit Jsf faces-config.xml in JSF-Beans injizieren. Aber für mich sieht Annotation viel besser aus als xml. Und das, warum ich brauche, dass meine JSF Backing-Beans auch im Frühjahr verwaltet wurde. Oder ist es keine gute Idee, so etwas zu tun? – aindl

+0

Klingt gut. Du kannst es so oder so machen. Ich mag auch die Anmerkungen. Ich denke, es macht den Code sauberer. Ich verstehe nicht, warum die Service-Schicht in einer JAR sein muss. Warum nicht einfach zusammen mit dem Rest der App bauen und das Ganze im WAR verpacken? – duffymo

+0

Weil, wie Sie in vorherigen Post gesagt haben, es eine gute Sache ist, meine Logik getrennt von UI zu nehmen. Es ist möglich, zu tun, was ich will, ohne Projekte zu verschmelzen? Oder gibt es noch andere Möglichkeiten, die Spring-Injektion in JSF zu verwenden? – aindl

1

Sie können dies erreichen, indem Sie Spring Web Flow verwenden.

Frühling haben Beispiele, die zeigen:

  1. A JSF zentrierten Ansatz, wo Ihr Frühling und JSF Bohnen sind die JSF-Weg (faces-config) verwaltet/konfiguriert und ein
  2. Frühling zentrierten Ansatz, wo Ihre Bohnen (einschließlich ManagedBeans) werden im Spring-Kontext verwaltet.

Siehe Spring Flow Web Home

0

Vielen Dank für alle, die ich es tat. Mein Fehler war bei der Bean-Initialisierung. Ich habe versucht, im Konstruktor auf meine injizierte Bean zuzugreifen, muss dies aber in der @ PostConstruct-Methode tun. Und die ganze Zeit habe ich versucht, Fehler in meiner Konfigurationsdatei zu finden. Aber es war an so einfach Ort :)

Verwandte Themen