我有兴趣创建一个 Spring 独立应用程序,该应用程序将运行并等待使用 Spring JMS 从 ActiveMQ 队列接收消息。我搜索了很多地方,找不到一致的方式来实现这样一个独立应用程序的主要方法。 Spring 独立应用程序的示例似乎很少。我从网上查看了 Tomcat、JBoss、ActiveMQ 和其他示例,但我还没有得出结论,所以......
为 Java 应用程序(特别是 Spring with JMS)实现 main 方法的最佳实践是什么?
更新: 下面是一个示例:http://forum.springsource.org/showthread.php?t=48197 这是最好的方法吗?
public static void main(String args[]) {
try {
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
. . . . .
Object lock = new Object();
synchronized (lock) {
lock.wait();
}
} catch (Exception e) {
e.printStackTrace();
}
}
最佳答案
在使用 Spring JMS 时,您已经在配置中使用了组件/bean,这些组件/beans 会自动启动并保持 Activity 状态(订阅并从队列/主题中读取),直到您停止应用程序。
因此,要启动并保持应用程序运行,加载应用程序上下文就足够了。 好的做法是同时调用 registerShutdownHook,因此在应用程序停止时(即通过控制台中的 ctrl+c),您的所有 bean 都会正常关闭和处理:)
public static void main(String args[]) {
AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
context.registerShutdownHook();
}
关于java - 对于独立应用程序(对于 Spring JMS),Java main 方法应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497627/