springboot mybatis注入不了dao层的bean问题解决思路

本文详细解析了在SpringBoot项目中整合MyBatis时遇到的常见问题,包括启动类配置、@MapperScan注解使用限制、配置文件及目录确认、依赖注入技巧以及解决DAO注入失败的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

1. 启动类 SpringBootApplication 加 @ComponentScan("com.pad")

 

2.如果加 @MapperScan  不能与 @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)  共存

 

3. 确认配置文件和你文件目录是否正确 。  注入是否加了 @Autowired

 

 

 4,如果还找不到 注入不了dao, 加入mybtisConfig 具体百度。如 :

@Bean(name = "sqlSessionFactory")
public SqlSessionFactoryBean sqlSessionFactoryBean()
{

 

 

### Spring Boot 与 MyBatis 整合示例 #### 一、项目初始化 通过 **Spring Initializr** 创建一个新的 Spring Boot 项目,并选择以下依赖项来支持整合功能[^1]: - `Spring Web`:用于构建 RESTful API 或其他基于 HTTP 的服务。 - `MyBatis-Plus`:增强版的 MyBatis 框架,提供更强大的 CRUD 功能以及性能优化能力。 - `MySQL Driver`:作为数据库连接器。 创建完成后,在项目的根目录下会自动生成一个 Maven 构建文件 (`pom.xml`)。以下是部分核心依赖配置: ```xml <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> </dependencies> ``` #### 二、自动配置机制 为了进一步简化集成流程,《mybatis-spring-boot-autoconfigure》提供了自动化配置的支持[^2]。开发者无需手动编写复杂的 XML 文件即可完成大部分基础设置工作。具体来说,它主要负责以下几个方面的工作: - 自动扫描 Mapper 接口并注册为 Bean; - 自动生成 SQL Session Factory 实例; - 将数据源注入MyBatis 中以便执行查询操作。 #### 三、启动类定义 在主程序入口处标注 `@SpringBootApplication` 注解以激活组件扫描和条件加载等功能。下面是一个典型的实现方式[^4]: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 四、Mapper 设计 假设存在一张名为 `users` 的表,则可以按照如下模板声明对应的 DAO 方法: ```java package com.example.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.entity.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper extends BaseMapper<User> {} ``` 上述代码片段展示了如何利用 MyBatis-Plus 提供的基础接口快速搭建起增删改查逻辑结构[^3]。 --- #### 数据库配置样例 (application.yml) 最后别忘了调整好 application.yml 来适配实际使用的 RDBMS 参数: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath*:mapper/*.xml # 如果有额外XML映射则指定路径 type-aliases-package: com.example.entity # 设置实体包名让MP识别Alias ``` 以上即完成了整个从零起步至初步可用状态下的全部必要步骤说明!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q联:1120972968

感谢老铁资质

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值