当前位置: 首页 > 知识库问答 >
问题:

org.springframework.beans.factory.异常

东门晨
2023-03-14

我得到了以下例外:

组织。springframework。豆。工厂NoSuchBeanDefinitionException:找不到[pers.panxin.springboot.demo.mapper.UserMapper]类型的符合依赖项条件的bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

控制器:

@Controller
public class HelloController {

    @Autowired
    private UserService userService;

    @RequestMapping("/userList")
    @ResponseBody
    public String getAllUser(){
        return "userList : "+userService.getAllUser().toString();//+list.toString();
    }

}

服务:

public interface UserService {

    public String getString();

    public List<User> getAllUser();

}

ServiceImpl:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public String getString() {
        return "something else ... ";
    }

    @Override
    public List<User> getAllUser() {
        return userMapper.getAllUser();
    }
}

映射器接口:

@Service
public interface UserMapper {

    /**
     * @return
     */
    public List<User> getAllUser();

}

应用程序的主类

@ComponentScan
@EnableAutoConfiguration
@SpringBootApplication
public class ApplicationStarter {

    public static void main(String[] args) {
        SpringApplication.run(ApplicationStarter.class, args);
    }

}

异常是如何发生的,或者代码中有什么错误?

共有3个答案

王楚青
2023-03-14

添加MappedTypes以及@MapperScan with

代码如下所示

用户apper.class

@MapperScan(package.where.mappers.are.located)

石博艺
2023-03-14

今天得到同样的错误。检查bean配置org。迈巴蒂斯。Spring制图员。MapperScannerConfigurerorg。迈巴蒂斯。SpringSqlSessionFactoryBean。前一个错误输入了“basePackage”值,第二个错误输入了“typeAliasesPackage”值。修好路径后,效果良好。这样地:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="typeAliasesPackage" value="package.path.to.your.model"/>
    <property name="mapperLocations" value="classpath*:mappers/*.xml"/>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="package.path.to.your.dao"/>
</bean>
冯奇思
2023-03-14

1.我不确定您是否正在使用mybatis spring library。如果你想把MyBatis和Spring结合起来,你应该使用它。所以要确保你有依赖性。

2.当您将mybatis-Spring作为依赖项时,只需将此注释添加到您的配置类中:

@MapperScan("package.where.mappers.are.located")

这是因为mybatis spring对mybatis映射器进行了单独的扫描。此外,您还应该从mapper中删除@Service注释,因为如果这是单独的mybatis spring扫描。

编辑:

正如@Persia所指出的,您可以使用mybatis spring boot starter库将mybatis spring依赖项拉入您的spring boot项目中。

 类似资料: