factoryBeanObjectType应该设置为UserMapper的实际实现类名而不是字符串。如果你是在使用自定义工厂Bean,确保它返回的是UserMapper类型的实例,我使用的不是自定义的工厂Bean,而是springboot提供的
时间: 2024-10-20 16:19:27 浏览: 47
在Spring Boot中,当你配置`factoryBeanObjectType`时,它期望的是实际类型而非字符串,因为你想要Spring知道创建哪个具体的bean。如果你没有使用自定义的工厂Bean,而是利用Spring的自动装配机制,那么你应该指定`UserMapper`接口对应的默认实现类,比如`MyUserMapper`或者`org.example.UserMapperImpl`。
例如,如果你的配置是这样的:
```java
@Bean
public UserMapper userMapper() {
return new MyUserMapper();
}
@Bean
@ConfigurationProperties(prefix = "mapper.user")
public UserMapperConfig mapperConfig(@Value("${mapper.user.factoryBean}") Class<UserMapper> factoryBeanObjectType) {
// 这里factoryBeanObjectType将自动获取到MyUserMapper.class
return new UserMapperConfig(factoryBeanObjectType);
}
```
Spring会根据`factoryBeanObjectType`自动创建一个`UserMapper`的实例。这里的关键是`factoryBeanObjectType`参数传递的是实现了`UserMapper`接口的具体类,而不是它的全限定名。
阅读全文