Spring Autowired

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

hätte noch eine (wahrscheinlich einfache) Frage zu @Autowired, und zwar kann man die Annotation @Autowired nur in einer Klasse benutzen, welche selbst im Spring- Container als bean definiert und deklariert wurde (hört sich jetzt während des schreibens ziemlich logisch an, bin mir aber nicht sicher), also:

In einer Klasse (in meinem Fall einem Servlet), welche nicht als bean für den Spring- Container deklariert wurde (was ja auch nicht geht, da es sich um ein Servlet handelt und dieses vom z.B.: Tomcat instaniert wird), kann man auch kein @Autowired benutzen.

Sehe ich das richtig so?
lg
 
Kurz und knapp: Ja 😀

Wie du bereits sagtest, kann Spring natürlich nur Spring Beans injecten, wenn auch das Objekt, in das injeziert werden soll von Spring gemanaged wird.
 
Kurz und knapp: Ja 😀

Wie du bereits sagtest, kann Spring natürlich nur Spring Beans injecten, wenn auch das Objekt, in das injeziert werden soll von Spring gemanaged wird.

Habs befürchtet, ich brauche nämlich in meinem Servlet eine Instanz auf eine bean, wie kann man das am Besten machen,
Gibt es eine Möglichkeit, aus einem Servlet heraus mittels Spring auf eine Instanze einer Klasse zuzugreifen, welche als bean im Spring- Container deklariert wurde?
Ich kann ja das Servlet nicht als bean im Spring- Container deklarieren!!??

Vielen Dank,
lg
 
Zuletzt bearbeitet:
Wozu brauchst Du Servlets, wenn Du Spring benutzt? Du kannst ein DispatcherServlet konfigurierern, dass dann alle anfragen an Spring Beans delegiert.
 
OK, wieder mal einiges dazugelernt, mit Spring MVC hab ich mich noch nicht so viel beschäftigt, deshalb wirds jetzt zeit,

vor allem war mir das mit dem DispatcherServlet nicht bekannt, das geht ja in die Richtung Struts mit einem Verteiler und mehreren Actions.
Werd mir das gleich mal anschauen.

Danke für Eure hilfe,
lg
 
Klar geht das, wenn er z.B. Spring MVC nutzen möchte. Möchte er aber selber reine Servlets nehmen, geht das nunmal nicht 😉

OK, wenn man eine Webseite generieren möchte, ist das richtig. Das geht aber aus dem Eingangspost nicht hervor. Aber liegt in diesem Fall wohl nahe, insofern haste recht. 😉
 
Hallo,

ich hab das in meiner Web- Applikation jetzt so gemacht, das ich folgende Zeilen in den DD (web.xml) geschrieben habe:

Code:
<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/applicationContext.xml</param-value>
    </context-param>    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

Das heißt ja, es wird nach dem Starten des Servers (in meinem Fall Tomcat) der Spring- Context geladen.
Meine erste Frage wäre, warum das Starten des Tomcat- Servers ohne die obigen Zeilen um die 4sec dauert und mit den Zeilen oben (also Spring context laden) um die 16sec. So weit ich in der Ausgabe sehen kann, wird ja immer zuerst der SErver gestartet und dann eben der Spring- Context geladen:

Code:
07.10.2009 11:36:58 org.apache.catalina.startup.Catalina start
INFO: Server startup in 16670 ms
07.10.2009 11:36:59 org.springframework.context.support.AbstractApplicationContext doClose
INFO: Closing org.springframework.web.context.support.XmlWebApplicationContext@ee22f7: display name [Root WebApplicationContext]; startup date [Wed Oct 07 11:36:57 CEST 2009]; root of context hierarchy
07.10.2009 11:36:59 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destr
...

Wird also beim Starten des Tomcat- Servers mit den obigen Zeilen auch schon der Context geladen?

Meine Zweite Frage wäre, ob es einen Listener gibt, der mir sagt, wann der Spring- Context fertig geladen ist?

Vielen Dank,
lg
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben