一、在需要调用别人服务的项目引入openfeign依赖
2、编写openfeign的client,在该接口上加上注解@FeignClient("被调服务名称")
3、将调用的目标复制到client中,该目标包括地址和方法,参考如下:
目标地址:
@GetMapping("/selectAll")
public R selectAll(Page<SmsCoupon> page, SmsCoupon smsCoupon) {
return R.ok(this.smsCouponService.page(page, new QueryWrapper<>(smsCoupon)));
}
对应client
@FeignClient("coupon")
public interface CouponFeignService {
@GetMapping("/coupon/smsCoupon/selectAll")
public R selectAll(Page<SmsCoupon> page, SmsCoupon smsCoupon);
}
主程序:
@EnableFeignClients(basePackages = "com.boot.shop.feign")
@EnableDiscoveryClient
@SpringBootApplication
public class MemberApplication {
public static void main(String[] args) {
SpringApplication.run(MemberApplication.class,args);
}
}
使用:
@GetMapping("/selectAll")
public R selectAll(Page<UmsMember> page, UmsMember umsMember) {
Page<UmsMember> memberPage = umsMemberService.page(page, new QueryWrapper<>(umsMember));
Object data = couponFeignService.selectAll().getData();
Map<String, Object> map = new HashMap<>();
map.put("会员服务",memberPage);
map.put("优惠券",data);
return R.ok(map);
}
Nacos的使用总结:
一、引入依赖
二、新建bootstrap.yaml配置文件,该配置文件的优先级最高,springboot首先会扫描该配置文件。
三、在bootstrap.yaml配置文件中配置注册中心和配置中心地址,以及配置文件的文件类型,例如yaml、properties;同时配置读取配置中心的配置文件名,以及该配置存在的命名空间和分组,一般我们将命名空间设置为不同的环境,例如:dev、prod、test等,将分组设置为在命名空间下以服务划分的隔离空间,也就是说,命名空间是大维度的隔离而分组则是大维度下的更小隔离空间,例如:order、product、user、member等,每个分组对应一个微服务的配置,此外,随着配置的增加,我们可以将同一个配置文件拆分成多个,比如:将数据源、mybatis等单独拆成一个配置文件,这些拆出的配置文件使用extension-configs配置引入,参考如下:
一般来说、我们在bootstrop.yaml中要配置应用名、注册中心、配置中心、环境激活项。此外在我们配置时,我们要细心一些,一定要对比配置中心和bootstrap.yaml的配置,避免单词写错导致配置不生效。
spring:
application:
name: member
profiles:
active: dev
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: 9912edd4-d472-4822-a7b6-0c4b09fc50e6
config:
server-addr: localhost:8848
file-extension: yaml
refresh-enabled: true
namespace: 9912edd4-d472-4822-a7b6-0c4b09fc50e6
group: member
extension-configs:
- data-id: datasource.yaml
group: member
refresh: true
- data-id: mybatis.yaml
group: member
refresh: true