记录一个spring 相关的问题
记录一个spring 相关的问题
这个两天写个小demo,写test的时候发现个问题,形如如下代码执行多次可能会抛出异常,不一定出现。
@Test
@Commit
public void test1(){
logger.info("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
User user = new User();
user.setStatus(Status.ENABLE);
user.setUserName("test");
user.setPasswd("xxxxxxxxx");
user.setModifyDate(new Date());
user.setCreateDate(new Date());
userDao.updateUserStatus(user);
}
详细代码见git异常代码
抛出如下异常
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'sqlSessionFactory': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:216)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201)
at org.springframework.context.event.AbstractApplicationEventMulticaster$ListenerRetriever.getApplicationListeners(AbstractApplicationEventMulticaster.java:345)
at org.springframework.context.event.AbstractApplicationEventMulticaster.getApplicationListeners(AbstractApplicationEventMulticaster.java:171)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:125)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:380)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:386)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:961)
at org.springframework.context.support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:895)
2016-09-27 14:01:22 [com.alibaba.druid.pool.DruidDataSource]-[INFO]-[Thread-3] {dataSource-1} closed
这是在销毁applicationContext 时候push的事件,这个是子applicationContext 调用父 applicationContext push event 时候抛出的异常。
查看源代码感觉不可能出现这个异常。先记录下来。。