From 06e74bfde7417c1b77307b0a65fc963e1cf41b9c Mon Sep 17 00:00:00 2001 From: Kazuki Shimizu Date: Sun, 9 Jan 2022 06:48:47 +0900 Subject: [PATCH] Add SqlSessionFactoryBeanCustomizer See gh-617 --- .../MybatisAutoConfiguration.java | 16 +++++++- .../SqlSessionFactoryBeanCustomizer.java | 37 +++++++++++++++++++ .../src/site/markdown/index.md | 25 ++++++++++++- .../MybatisAutoConfigurationTest.java | 25 +++++++++++++ 4 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 mybatis-spring-boot-autoconfigure/src/main/java/org/mybatis/spring/boot/autoconfigure/SqlSessionFactoryBeanCustomizer.java diff --git a/mybatis-spring-boot-autoconfigure/src/main/java/org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.java b/mybatis-spring-boot-autoconfigure/src/main/java/org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.java index 60ff53629..7dca1a74c 100644 --- a/mybatis-spring-boot-autoconfigure/src/main/java/org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.java +++ b/mybatis-spring-boot-autoconfigure/src/main/java/org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.java @@ -105,10 +105,13 @@ public class MybatisAutoConfiguration implements InitializingBean { private final List configurationCustomizers; + private final List sqlSessionFactoryBeanCustomizers; + public MybatisAutoConfiguration(MybatisProperties properties, ObjectProvider interceptorsProvider, ObjectProvider typeHandlersProvider, ObjectProvider languageDriversProvider, ResourceLoader resourceLoader, ObjectProvider databaseIdProvider, - ObjectProvider> configurationCustomizersProvider) { + ObjectProvider> configurationCustomizersProvider, + ObjectProvider> sqlSessionFactoryBeanCustomizers) { this.properties = properties; this.interceptors = interceptorsProvider.getIfAvailable(); this.typeHandlers = typeHandlersProvider.getIfAvailable(); @@ -116,6 +119,7 @@ public MybatisAutoConfiguration(MybatisProperties properties, ObjectProvider factoryBean.setTypeHandlers(new DummyTypeHandler()); + } + + @Bean + SqlSessionFactoryBeanCustomizer cacheSqlSessionFactoryBeanCustomizer() { + return factoryBean -> factoryBean.setCache(new PerpetualCache("test")); + } + } + @Configuration static class SingleLanguageDriverConfiguration { @Bean