SpringBoot集成MyBatis,啟動(dòng)項(xiàng)目,報(bào)錯(cuò)顯示找不到Mapper
***************************
APPLICATION FAILED TO START
***************************
Description:
Field userListMapper in com.example.demo.service.UserService required a bean of type 'com.example.demo.mybatis.UserListMapper' that could not be found.
Action:
Consider defining a bean of type 'com.example.demo.mybatis.UserListMapper' in your configuration.
找了一天了,還是沒找到問題所在,下面有我寫的一個(gè)簡化后的demo,能幫我看看錯(cuò)在哪里嗎?
目的是從數(shù)據(jù)庫查詢數(shù)據(jù)。
DemoApplication
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(value = "com.example.demo")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
User
package com.example.demo.model;
public class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserListMapper
package com.example.demo.mybatis;
import com.example.demo.model.User;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface UserListMapper {
List<User> findAllUsers();
}
UserListMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mybatis">
<select id="findAllUsers" resultType="com.example.demo.model.User">
select id, name from User
</select>
</mapper>
UserService
package com.example.demo.service;
import com.example.demo.mybatis.UserListMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserListMapper userListMapper;
}
application.yml
spring:
datasource:
url:
username:
password:
driver-class-name:
hikari:
minimum-idle: 10
maximum-pool-size: 100
萬分感謝??!
你是在Mapper類上加了一個(gè)@Component,這個(gè)注解是聲明組件,往往是不明確這個(gè)組件在mvc中哪一層才寬泛的使用@Component來交給spring進(jìn)行管理。
但mybatis中的bean(UserMapper),屬于mapper層,應(yīng)該首先需要經(jīng)過mybatis作處理才可以。所以要首先把mapper文件加載到mybatis中,由mybatis轉(zhuǎn)換或加載成spring能使用的bean
正確的做法應(yīng)該是在DemoApplication類上加上@MapperScan("com.example.demo.mybatis")
如有錯(cuò)誤請(qǐng)指出。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。