Skip to content

Commit d007089

Browse files
committed
Set attribute that helps MockitoPostProcessor replace a MyBatis mapper bean with a mock
mybatis/spring-boot-starter#475 spring-projects/spring-boot@f4985ab
1 parent 2af8093 commit d007089

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/main/java/org/mybatis/spring/mapper/ClassPathMapperScanner.java

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.mybatis.spring.SqlSessionTemplate;
2727
import org.springframework.aop.scope.ScopedProxyFactoryBean;
2828
import org.springframework.aop.scope.ScopedProxyUtils;
29+
import org.springframework.beans.factory.FactoryBean;
2930
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
3031
import org.springframework.beans.factory.config.BeanDefinition;
3132
import org.springframework.beans.factory.config.BeanDefinitionHolder;
@@ -234,6 +235,10 @@ private void processBeanDefinitions(Set<BeanDefinitionHolder> beanDefinitions) {
234235

235236
definition.getPropertyValues().add("addToConfig", this.addToConfig);
236237

238+
// Attribute for MockitoPostProcessor
239+
// https://github.com/mybatis/spring-boot-starter/issues/475
240+
definition.setAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE, beanClassName);
241+
237242
boolean explicitFactoryUsed = false;
238243
if (StringUtils.hasText(this.sqlSessionFactoryBeanName)) {
239244
definition.getPropertyValues().add("sqlSessionFactory",

src/test/java/org/mybatis/spring/mapper/MapperScannerConfigurerTest.java

+9
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.mybatis.spring.SqlSessionTemplate;
3838
import org.mybatis.spring.mapper.child.MapperChildInterface;
3939
import org.mybatis.spring.type.DummyMapperFactoryBean;
40+
import org.springframework.beans.factory.FactoryBean;
4041
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
4142
import org.springframework.beans.factory.config.BeanDefinition;
4243
import org.springframework.beans.factory.config.ConstructorArgumentValues;
@@ -385,6 +386,14 @@ void testScanWithMapperFactoryBeanClass() {
385386
assertTrue(DummyMapperFactoryBean.getMapperCount() > 0);
386387
}
387388

389+
@Test
390+
void testMapperBeanAttribute() {
391+
startContext();
392+
393+
assertThat(applicationContext.getBeanDefinition("annotatedMapper").getAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE))
394+
.isEqualTo(AnnotatedMapper.class.getName());
395+
}
396+
388397
private void setupSqlSessionFactory(String name) {
389398
GenericBeanDefinition definition = new GenericBeanDefinition();
390399
definition.setBeanClass(SqlSessionFactoryBean.class);

0 commit comments

Comments
 (0)