Я знаю, что этот вопрос является дубликатом Выполните метод при запуске весной . однако я попробовал совет, размещенный в принятом ответе на этот вопрос, и ничего не помогло мне Таким образом, я подозреваю, что, хотя здесь задается тот же самый вопрос , я твердо чувствую, что основная причина отличается и поэтому требует другого ответа / решения.
Я пытаюсь заставить Spring создать бин при запуске и немедленно выполнить один из его методов.
Мой весенний конфиг (heartbeat-config.xml
):
<beans (all the xmlns stuff here ommitted for brevity)>
<bean id="heartbeat" class="org.me.heartbeat.Heartbeat"/>
</beans>
И Heartbeat.java
:
public class Heartbeat
{
@PostConstruct
public void start()
{
System.out.println("I should see this message in the logs somewhere!!");
}
}
И, наконец, мой web.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- The display name of this web application -->
<display-name>Heartbeat</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/heartbeat-config.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
Когда я запускаю это в Tomcat, я не получаю никаких ошибок при запуске. Tomcat работает нормально (как я могу судить по журналам). Однако я не вижу никаких выходных данных в журналах, которые должны генерироваться вызовом System.out
в моем методе start()
(Tomcat перенаправляет весь стандартный вывод в свои файлы журналов).
Я что-то пропускаю здесь? Есть ли очевидный диагноз, который я мог бы поставить?