mybatis.mapper-locations,@MapperScan的作用及@EnableFeignClients

目录

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注解的接口的包路径。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值