有两种原因:
1. 创建的ClassPathXmlApplicationContext由ApplicationContext接收,因为容器在没执行完成之前就已经关闭了,所以需要手动close(关闭)掉,但ApplicationContext没有close方法,所有并不能执行,会提前关闭
解决方法:就是将ApplicationContext改为ClassPathXmlApplicationContext接收。
2.bean实例的作用范围定义为prototype(多例)之后就不能使用PreDestroy注解了
解决方法:scope中将prototype改为singleton