mybatis.mapper-locations,@MapperScan的作用及@EnableFeignClients
创始人
2025-05-31 09:02:12

目录

1.@Mapper,@MapperScan

2.mybatis.mapper-locations

3.EnableFeignClients注解中的basePackages属性


1.@Mapper,@MapperScan


使用Mybatis持久层框架来操作数据库时,配置@Mapper或者@MapperScan的作用是将Mapper交给Spring容器进行管理

使用@Mapper的话:粒度更细,只是需要在每个Mapper上面都加上该注解,较为繁琐

使用@MapperScan则只需要在启动类上增加该注解,配置Mapper路径即可实现所有Mapper的容器注入。

2.mybatis.mapper-locations

mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件。

如果resources下的mapper.xml和src下的mapper路径相同则不用配置mapper-locations否则需要配置mapper-locations,如果不配置则会提示在mapper绑定mapper.xml时找不到对应的mapper。

3.EnableFeignClients注解中的basePackages属性

package com.ruoyi.common.security.annotation;import org.springframework.cloud.openfeign.EnableFeignClients;import java.lang.annotation.*;/*** 自定义feign注解* 添加basePackages路径** @author ruoyi*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@EnableFeignClients
public @interface EnableRyFeignClients {String[] value() default {};String[] basePackages() default {"com.qingdao2world", "com.ruoyi"};Class[] basePackageClasses() default {};Class[] defaultConfiguration() default {};Class[] clients() default {};
}

一般情况下,我们在启动类上面添加了@EnableFeignClients注解就是表明当前应用服务(我们称之为服务A)中有的地方想要引用其它应用服务(我们称之为服务B)中的接口。

如果服务B可以单独启动起来并且注册到注册中心,则我们仅仅在服务A的启动类中添加@EnableFeignClients注解即可;如果服务B没有单独启动起来,而是以Jar包的形式被引入到服务A中,则服务A在启动的时候是不会主动去加载服务B中标注了@FeignClient注解的interface而去自动生成bean对象。

这样我们在服务A中的Controller类中通过@Autowired引入使用服务B中的标注了@FeignClient注解的接口是会报错的。

这个时候就需要使用basePackages属性字段去指明应用程序A在启动的时候需要扫描服务B中的标注了@FeignClient注解的接口的包路径。

相关内容

热门资讯

科普知识“胡乐麻将可以装挂吗原... 【无需打开直接搜索微信;29290261】 操作使用教程:1.亲,实际上胡乐麻将是可以开挂的,确实有...
科普知识“微信麻将可以装挂吗原... 亲,微信麻将这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总...
科普知识“桃乐甘肃麻将可以装挂... 您好:桃乐甘肃麻将这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
科普知识“昭通棋乐麻将可以装挂... 您好,昭通棋乐麻将这款游戏可以开挂的,确实是有挂的,通过微信【8198015 】很多玩家在这款游戏中...
科普知识“琼雀海南麻将可以装挂... 科普知识“琼雀海南麻将可以装挂吗原来有挂”(其实确实是有挂)-知乎是一款可以让一直输的玩家,快速成为...