Spring 的Bean标签中关于destroy-method的问题(无调用,不输出)

首先是我原来的代码:

<bean name="user" class="com.sikiedu.bean.User" lazy-init="default"  scope="prototype" init-method="userinit"  destroy-method="userDestory"></bean>

然后是测试的代码:

@Test
 public void Test3() {
 
  ClassPathXmlApplicationContext ac=new  ClassPathXmlApplicationContext("applicationContext.xml");
  
  //scope="prototype"  多例 在获取时会创建新的对象
  
  User u1=ac.getBean(User.class);
  User u2=ac.getBean(User.class);
  User u3=ac.getBean(User.class);
  
  System.out.println(u1 == u2);
  //关闭容器对象,触发Bean的 userDestory
  ac.close();
 }

大致观察没什么问题,运行后却是这样:

在这里插入图片描述
很明显和预期不符,并没有销毁容器后的输出。
经过查询发现问题出现在bean中的scope属性

修改后的代码:

<bean name="user" class="com.sikiedu.bean.User" lazy-init="default"  init-method="userinit"  destroy-method="userDestory">

删除了scope属性中的多例,解决问题
在这里插入图片描述

发布了44 篇原创文章 · 获赞 7 · 访问量 873

猜你喜欢

转载自blog.csdn.net/ange2000561/article/details/104096634
今日推荐