背景
基于Spring和Mybatis的项目,新增数据源,后报错No bean named 'SqlSessionFactorykf' available
其中文件目录结果如下
bash
src/main/java/com/example
├── config
│ └──db1DataSourceConfig # 数据源1的配置
│ └──db2DataSourceConfig # 数据源2的配置
├── controller
│ └── DataController.java
├── infrastructure
│ ├── db1
│ │ ├── datamodal # 数据源1的Mapper接口
│ │ │ └── User1Info.java
│ │ └── mapper # 数据源2的Mapper接口
│ │ └── User2Mapper.java
│ ├── db2
│ │ ├── datamodal # 数据源1的Mapper接口
│ │ │ └── User1Info.java
│ │ └── mapper # 数据源2的Mapper接口
│ │ └── User2Mapper.java
├── domain
│ ├── imopl
│ │ └── User1Impl.java
│ │ └── User2Impl.java
│ ├── User1Service.java
│ ├── User2Service.java
├── service
│ └── User2InfoService.java
│ └── User2InfoService.java
src/main/resources
├── mapper
│ ├── db1 # 数据源1的XML映射文件
│ │ └── User1Mapper.xml
│ └── db2 # 数据源2的XML映射文件
│ └── User2Mapper.xml
└── application.yml
问题分析
报错内容后分析问题大概率处在Config文件中
仔细查看发现
直接原因:Bean 名称拼写错误,SqlSessionFactorykf 与你定义的名称不一致。
也就是Bean对应的name没有改过来,所以报错了
java
@Bean(name = "SqlSessionFactorykf") // 名称中包含了 kf
public SqlSessionFactory sqlSessionFactory1(...) { ... }