Skip to content

Commit 0f930c3

Browse files
committed
Fixed the problem of repeated calls to listener functions
1 parent 57ec6ad commit 0f930c3

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/main/java/com/viiyue/plugins/mybatis/spring/MyBatisMapperSqlSessionFactoryBean.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
5656
import org.springframework.beans.factory.FactoryBean;
5757
import org.springframework.beans.factory.InitializingBean;
58-
import org.springframework.context.ApplicationEvent;
5958
import org.springframework.context.ApplicationListener;
6059
import org.springframework.context.ConfigurableApplicationContext;
6160
import org.springframework.context.event.ContextRefreshedEvent;
@@ -96,13 +95,17 @@
9695
*
9796
* @see SqlSessionFactoryBean
9897
*/
99-
public final class MyBatisMapperSqlSessionFactoryBean implements FactoryBean<SqlSessionFactory>, InitializingBean, ApplicationListener<ApplicationEvent> {
98+
public final class MyBatisMapperSqlSessionFactoryBean implements FactoryBean<SqlSessionFactory>, InitializingBean, ApplicationListener<ContextRefreshedEvent> {
10099

101100
private static final Logger LOGGER = LoggerFactory.getLogger( MyBatisMapperSqlSessionFactoryBean.class );
102101

103102
private static final ResourcePatternResolver RESOURCE_PATTERN_RESOLVER = new PathMatchingResourcePatternResolver();
104103
private static final MetadataReaderFactory METADATA_READER_FACTORY = new CachingMetadataReaderFactory();
105104

105+
// Bean initialization status monitoring
106+
// Added in 1.3.2
107+
private boolean isInitialized;
108+
106109
// mybatis-spring original variables
107110

108111
private Resource configLocation;
@@ -671,8 +674,9 @@ public boolean isSingleton() {
671674
* @since mybatis-mapper-spring 1.3.0
672675
*/
673676
@Override
674-
public void onApplicationEvent( ApplicationEvent event ) {
675-
if ( event instanceof ContextRefreshedEvent ) {
677+
public void onApplicationEvent( ContextRefreshedEvent event ) {
678+
if ( !isInitialized ) { // Added in 1.3.2
679+
isInitialized = true; // Prevent duplicate execution
676680
LoggerUtil.printBootstrapLog();
677681
this.mybatisMapperBuilder.refactoring( sqlSessionFactory.getConfiguration() );
678682
LoggerUtil.printLoadedLog();

0 commit comments

Comments
 (0)