Ho creato una semplce Web-app che utilizza solo servlet e jsp (niente framework MVC).
E' una semplce "hello world" fatta per esercitarmi a cui volevo porvare ad aggiungere l'Inversion Of Control (IOC) di Spring per capire come funziona.
Ho letto alcuni tutorial su web ma evidentemente mi manca un passaggio perchè l'IOC non mi funziona.
Non vengono generati erri, semplicemente l'injection dgli oggetti non avviene e me li ritrovo a null nella servlet che li deve utilizzare
Questo è quello che ho fatto:
- web.xml:
Ho inserito i seguenti tag:
- Codice: Seleziona tutto
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
- applicationContext.xml:
Ho inserito la configurazione per due classi (un semplice bean e una classe di servizio)
- Codice: Seleziona tutto
<bean id="articolo" class="beans.Articolo" />
<bean id="articoloService" class="services.impl.ArticoloServiceImpl" />
- La mia servlet:
Ho creato due variabili:
- Codice: Seleziona tutto
private Articolo articolo;
private ArticoloService articoloService;
e i relativi metodi di set e get:
- Codice: Seleziona tutto
public Articolo getArticolo() {
return articolo;
}
public void setArticolo(Articolo articolo) {
this.articolo = articolo;
}
public ArticoloService getArticoloService() {
return articoloService;
}
public void setArticoloService(ArticoloService articoloService) {
this.articoloService = articoloService;
}
Questo è tutto ciò che ho fatto ma nella mia servlet "articolo" e "articoloService" restano a null.
Cosa ho dimenticato?
La classe "org.springframework.web.context.ContextLoaderListener" dichiarata nel web.xml dovrebbe occuparsi di iniettare gli oggetti dell'applicationContext.xml nelle classi che hanno le variabili corrispondenti no?
Aiuto!