gpt4 book ai didi

java - Java Server 启动时服务运行的设计

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:52 25 4
gpt4 key购买 nike

我想启动一个服务,该服务与服务器一起启动,并且在服务器被终止之前永远不会结束。所以首先我使用了 ServletContextListner 类,在该类中我实现了我的逻辑部分以使用

运行该方法
while(true){ 
try{ // do the jobs }
catch(Exception e){}
}

但是后来觉得在Listener类实现这个工作不太好。然后我转移到一个 ServiceManager 类并做同样的工作,但在使用 Spring 注入(inject)属性方面给了我一个优势,这在 Listener 类中是不可能的。

但基本问题是如何更好地/从何处调用此类并调用无限运行的 startService 方法。

public void contextInitialized(ServletContextEvent event) {
logger.info(" *** START MyListener ****");
context = event.getServletContext();
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
MyServiceManager serviceManager = (MyServiceManager) ctx.getBean("myServiceManager");
serviceManager.startService();
logger.info(" *** END MyListener ****");
}

或任何想法如何调用/实现此类服务以在没有任何抽象的情况下永远在服务器中运行[在任何情况下,除非服务器停止,否则不应终止]

最佳答案

这是一个重复的问题,请参阅: Background process in Servlet

因此您可以按照该答案中的解释进行操作,如果您需要使用 applicationContext.getBean("yourBean");

加载 Spring 配置的 bean

关于java - Java Server 启动时服务运行的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13855826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com