Vorrei inserire una dipendenza in un ServletContextListener
. Tuttavia, il mio approccio non funziona. Vedo che Spring sta chiamando il mio metodo setter, ma in seguito quando viene chiamato contextInitialized
, la proprietà è null
.Spring - Iniezione di una dipendenza in un ServletContextListener
Qui è il mio set up:
Il ServletContextListener:
public class MyListener implements ServletContextListener{
private String prop;
/* (non-Javadoc)
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
@Override
public void contextInitialized(ServletContextEvent event) {
System.out.println("Initialising listener...");
System.out.println(prop);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
}
public void setProp(String val) {
System.out.println("set prop to " + prop);
prop = val;
}
}
web.xml: (questo è l'ultimo ascoltatore nel file)
<listener>
<listener-class>MyListener</listener-class>
</listener>
applicationContext.xml:
<bean id="listener" class="MyListener">
<property name="prop" value="HELLO" />
</bean>
uscita:
set prop to HELLO
Initialising listener...
null
Qual è il modo corretto per raggiungere questo obiettivo?
Il modo in cui i bean vengono istanziati rende difficile il test, vedi la mia risposta. –