【发布时间】:2016-10-10 23:26:18
【问题描述】:
我有一个包含以下内容的战争文件
Spring Bean
public class DataLoader {
private static Logger log = Logger.getLogger(DataLoader.class.getName());
public void init() {
log.info("DataLoader init called");
}
}
applicationContext.xml
<bean id="dataLoader" class="com.example.DataLoader"
init-method="init" lazy-init="false">
</bean>
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
我希望在将 war 文件部署到 Web 容器时调用 DataLoader 中的 init 方法。但是,它不会被调用。
我认为由于 bean 配置中的 init-method="init" 而在 bean 初始化后会调用 init 方法,并且由于 lazy-init="false" 会在部署时初始化 bean。
我做错了什么?
【问题讨论】: