spring的bean属性destroy-method无效

fuckyourselfcnm 2016-09-01 03:32:47
如下 init方法会被调用并打印 而destroy却不会打印到控制台


<bean id="knight" class="com.springinaction.knights.BraveKnight" init-method="init" destroy-method="destroy">
</bean>





public class BraveKnight implements Knight{


private void init(){
System.out.println("bean init");
}

private void destroy(){//never be invoked?
System.out.println("bean destroied");
}
}


main方法

ApplicationContext context=new ClassPathXmlApplicationContext("knights.xml");
Knight knight = (Knight) context.getBean("knight");

...全文
273 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
捞小鱼 2019-06-22
  • 打赏
  • 举报
回复
bean 要为单例模式才能生效
oh_Maxy 2016-09-06
  • 打赏
  • 举报
回复
引用 2 楼 fuckyourselfcnm 的回复:
[quote=引用 1 楼 oh_Maxy 的回复:] ((ClassPathXmlApplicationContext)context).close(); 试试吧
是这样的 难道程序运行完了容器不会自动销毁吗[/quote] jvm停掉,和你主动停,是不一样的。 就好比你开了电视,关的时候,是按遥控器,还是直接拉电闸,也是不一样的 。
fuckyourselfcnm 2016-09-01
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
((ClassPathXmlApplicationContext)context).close(); 试试吧
是这样的 难道程序运行完了容器不会自动销毁吗
oh_Maxy 2016-09-01
  • 打赏
  • 举报
回复
((ClassPathXmlApplicationContext)context).close(); 试试吧

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧