spring boot 启动的时候required a bean of type 'XXX' not be

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 启动的时候required a bean of type 'XXX' not be相关的知识,希望对你有一定的参考价值。

参考技术A Description:

Field mapper in com.kaigejava.kgblog,service.impl.UserServiceImpl required a bean of type 'com.kaigejava.kgblog.dao.UserDao' that could not be found.

Action:

Consider defining a bean of type 'com.kaigejava.kgblog.dao.UserDao' in your configuration.

SpringBoot启动失败,告诉我Bean配置失败,楼主看了看 该用的注解都用上了 这是咋的回事嘞?

先看错误的:

错误的

//@Component

@Repository

public interface UserMapper

int insert(UserDomain record);

List selectUsers();



这两个注解都是用了,为什么还会报错呢?

查询:

解决方案一:

后来在网上看到网友说要用 @Mapper 注解,这才把问题解决了

于是修改:

解决方案一

/** * 添加了@Mapper注解之后这个接口在编译时会生成相应的实现类

* * 需要注意的是:这个接口中不可以定义同名的方法,因为会生成相同的id

* 也就是说这个接口是不支持重载的 */

@Mapper

public interface UserDao

int insert(UserDomain record);

List selectUsers();



重新启动,启动正常。访问ok.

解决方案二:

先看失败之前的Application(启动类):

解决方案二 错误前

@SpringBootApplication

public class KgblogApplication

public static void main(String[] args)

SpringApplication.run(KgblogApplication.class, args);





根据错误提示,没有UserDao这个bean.那么我们就在启动类上将该报扫描进去:

解决方案二

​//@SpringBootApplication

@SpringBootApplication

@MapperScan(value = "com.kaigejava.kgblog.dao")

public class KgblogApplication

public static void main(String[] args)

SpringApplication.run(KgblogApplication.class, args);





说明:如果使用@Mapper这个注解的话,每个dao都需要添加麻烦。

而解决方案二使用@MapperScan就可以很好的解决该问题的。

欢迎访问凯哥个人网站:http://kaigejava.com/article/detail/161

以上是关于spring boot 启动的时候required a bean of type 'XXX' not be的主要内容,如果未能解决你的问题,请参考以下文章

spring boot 2.0 报错:“jdbcUrl is required with driverClassName.” 解决办法!

spring boot 在什么时候启动的tomcat

spring boot 启动脚本

Spring Boot 启动扩展点

spring boot 不连接数据库启动

spring boot启动自动关闭