springboot整合mybatis完整版part2

本文详细介绍了SpringBoot整合Mybatis过程中需要注意的关键点,包括XML格式Mapper的存放位置、包名的一致性、配置文件的设置以及测试类中依赖注入Mapper接口的正确方法。强调了@Resource与@Autowired注解的区别,帮助开发者避免常见错误。

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

可参考示例:

springboot整合mybatis完整版part1

https://blog.youkuaiyun.com/wangyongx_123/article/details/106521184

 

1、整合时的注意点

1)xml格式的mapper最好放在resources目录下!避免一些后续的配置!

     切记:resources 下创建存放 xml格式 mapper的文件夹必须这样创建:

     com/example/springboottest/entity  这个很重要!

      (有兴趣的可以自己尝试其他方式!本突不推荐!)

2) 接口格式的mapper和xml格式的mapper所在的包名最好保持一致!避免出错!

 

3) 接口格式的mapper所在的包名与 xml格式的mapper中,namespace保持一致!

 

4)一定不要忘记在 application.properties 中配置xml格式的mapper所在的位置

   springboot启动类启动时要加载application.properties 中所有的配置!

   注意:

          如果你的接口格式mapper所在的包名与 xml格式mapper所在的resources目录下的包名不同,可以在

          application.properties 配置正确的路径!(不推荐!)

 

5) 如果想要在xml格式mapper中 省略 javabean的包名,只写类名,可直接在application.properties中进行配置

#指定实体类所在包名
mybatis.type-aliases-package=com.example.springboottest.entity

2、测试类中的注意点

package com.example.springboottest;

// ... 省略

@SpringBootTest
class SpringbootTestApplicationTests {

    //@Resource
    @Autowired(required = false)
    private MyClassMapper myClassMapper;

    @Test
    void testFindAll() {
        List<MyClass> all =  myClassMapper.findAll();
        for(MyClass myClass:all){
            System.out.println("班级信息:"+myClass);
        }
    }

}

在以上测试类中,经常出错的点在于 依赖注入mapper接口时如何正确的使用注解!

此处的关键点在于@Resource 注解和 @Autowired注解 使用时的区别

1) 如果要使用@Resource注入,直接加@Resource即可

    如果要使用@Autowired注入,必须设置@Autowired注解的属性required=false

2) @Resource 注解和 @Autowired注解的区别

     @AutoWired 默认根据类型匹配 (或者类型的子类匹配)。

     默认情况下,要求依赖的对象必须存在,如果要允许null值,

     要设置它的required属性为false, 如@Autowired(required=false) ,否则必然编译时报错!

     而@Resource 可以根据id/name找,也可以根据类型找 

     

     这里的根据类型,或者id/name 找 ,标准是该注解所加在的属性,改属性对应的一些特性!

 

    此文希望可以帮助到大家。如有错误,请指教。                                                           

    如果大家还有其他的情况或者好的解决方法,也望指教,感谢阅读

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值