注册中心
1.引入依赖和
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
2.在properties文件中配置服务地址和应用名称
Spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848
application: name: gulimall-coupon
3.在主程序中加入注解@EnableDiscoveryClient
远程调用
4.引入依赖openfeign
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
5.在对应项目中编写好方法
@RequestMapping("/member/list") public R meberCoupons(){ CouponEntity couponEntity = new CouponEntity(); couponEntity.setCouponName("满300减50"); return R.ok().put("conpons",Arrays.asList(couponEntity)); }
6.编写接口,告诉SpringCloud这个接口需要调用远程服务
1)声明接口的每一个方法都是调用哪个远程服务的哪个请求。例如:
@FeignClient("gulimall-coupon")public interface CouponFeginService { @RequestMapping("/coupon/coupon/member/list") public R meberCoupons();}
7.在另外一个项目中调用
@RequestMapping("/coupons") public R test(){ MemberEntity memberEntity=new MemberEntity(); memberEntity.setNickname("rider"); R meberCoupons = couponFeginService.meberCoupons(); return R.ok().put("coupons",meberCoupons.get("conpons")).put("member",memberEntity); }
8.开启远程调用功能,在主项目中添加注解@EnableFeignClients
配置中心使用
9.引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
10.新建并在boostrap.properties中配置
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
11.在配置中心添加数据集
默认规则为应用名+properties,例如gulimall-coupon.priperties
12.在controller中加入注解@RefreshScope
@Value("${配置项的名字}")
Tips:注意:项目加载时会优先使用配置中心的文件