有关@WebListener和@Service的问题

时间:2019-04-01 08:54:13

标签: java spring-boot

当我在同一类中使用@WebListener和@Service时,该类中的方法将运行两次。这是为什么?

示例代码:

@WebListener
@Service
public class WebContextListener implements ServletContextListener {

    private static final Log logger = LogFactory.getLog(WebContextListener.class);


    @Override
    public void contextInitialized(ServletContextEvent sce) {
        ServletContext servletContext = sce.getServletContext();
        logger.info("web listener 启动,为什么会执行两次呢,Spring做了什么处理吗");
        logger.info("web listener runing,why this method ran twice,What did Spring do?");

    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {

    }
}

1 个答案:

答案 0 :(得分:0)

我认为是因为您使用@Service和@WebListener。

我想这将产生该类的两个实例。

尝试删除@Service。

检查一下: https://www.baeldung.com/spring-servletcomponentscan