Вместо использования ApplicationContext, используйте AbstractApplicationContext.Тогда зарегистрируйте то же самое.Spring не будет вызывать DisposableBean для настольного приложения, если вы используете ApplicationContext.
Пример: AbstractApplicationContext appCxt = new ClassPathXmlApplicationContext ("spring.xml");appCxt.registerShutdownHook ();