Java 为什么在主方法的末尾不存在Spring应用程序
我开始用Spring学习Java,并编写了一些简单的计划任务 我不理解框架使用的机制,因此在调用Java 为什么在主方法的末尾不存在Spring应用程序,java,spring,scheduled-tasks,Java,Spring,Scheduled Tasks,我开始用Spring学习Java,并编写了一些简单的计划任务 我不理解框架使用的机制,因此在调用getBean后应用程序不会退出。为什么应用程序一直打印“嗨” 公共类应用程序{ 公共静态void main(字符串[]args){ ... PeriodicTask task=appCtx.getBean(PeriodicTask.class); } } 公开课{ @计划(固定利率=5000) 公众假期{ System.out.println(“Hi”); } } 给定@Scheduled,我将假设
getBean
后应用程序不会退出。为什么应用程序一直打印“嗨”
公共类应用程序{
公共静态void main(字符串[]args){
...
PeriodicTask task=appCtx.getBean(PeriodicTask.class);
}
}
公开课{
@计划(固定利率=5000)
公众假期{
System.out.println(“Hi”);
}
}
给定@Scheduled
,我将假设您的应用程序上下文
具有一些预定的配置。这意味着您正在(隐式或显式)创建一个SchedulerExecutorService
,该服务生成非守护进程线程。在所有非守护进程线程完成之前,应用程序不会结束。其中一个线程每5000毫秒执行一次periodic
方法
现在,您可以将您的
ApplicationContext
实例化放在try with resources
中。一旦执行离开try
块,就会关闭ApplicationContext
,关闭ScheduledExecutorService
,并最终终止您的程序。给定@Scheduled
,我将假设您的ApplicationContext
具有某些预定配置。这意味着您正在(隐式或显式)创建一个SchedulerExecutorService
,该服务生成非守护进程线程。在所有非守护进程线程完成之前,应用程序不会结束。其中一个线程每5000毫秒执行一次periodic
方法
现在,您可以将您的
ApplicationContext
实例化放在try with resources
中。一旦执行离开try
块,就会关闭ApplicationContext
,关闭ScheduledExecutorService
,并最终终止您的程序。给定@Scheduled
,我将假设您的ApplicationContext
具有某些预定配置。这意味着您正在(隐式或显式)创建一个SchedulerExecutorService
,该服务生成非守护进程线程。在所有非守护进程线程完成之前,应用程序不会结束。其中一个线程每5000毫秒执行一次periodic
方法
现在,您可以将您的
ApplicationContext
实例化放在try with resources
中。一旦执行离开try
块,就会关闭ApplicationContext
,关闭ScheduledExecutorService
,并最终终止您的程序。给定@Scheduled
,我将假设您的ApplicationContext
具有某些预定配置。这意味着您正在(隐式或显式)创建一个SchedulerExecutorService
,该服务生成非守护进程线程。在所有非守护进程线程完成之前,应用程序不会结束。其中一个线程每5000毫秒执行一次periodic
方法
现在,您可以将您的
ApplicationContext
实例化放在try with resources
中。一旦执行离开try
块,将关闭ApplicationContext
,关闭ScheduledExecutorService
,并最终终止您的程序。谢谢,回答清楚。有一点很小,try with resources不能与ApplicationContext一起使用,因为它不实现自动关闭,对吗?@vvondra您可以用实际实现声明它,例如ClassPathXmlApplicationContext
。谢谢,回答清楚。有一点很小,try with resources不能与ApplicationContext一起使用,因为它不实现自动关闭,对吗?@vvondra您可以用实际实现声明它,例如ClassPathXmlApplicationContext
。谢谢,回答清楚。有一点很小,try with resources不能与ApplicationContext一起使用,因为它不实现自动关闭,对吗?@vvondra您可以用实际实现声明它,例如ClassPathXmlApplicationContext
。谢谢,回答清楚。有一点很小,try with resources不能与ApplicationContext一起使用,因为它不实现自动关闭,对吗?@vbondra您可以用实际实现声明它,例如ClassPathXmlApplicationContext
。