当前位置:   article > 正文

day01-springcloudalibaba组件使用_dependency 'com.alibaba.cloud:spring-cloud-starter

dependency 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:

1.SpringCloudNacos使用

  • 引入依赖

     <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
    
    <dependency> 
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 启动nacos,这里因为我的虚拟机内存只有2个G启动nacos后,内存不够,所以需要修改startup.shjvm参数

    image-20220904171132810

image-20220904171412379

  • 修改jvm参数后,发现内存多了不少 (将近1个g)sh bin/startup.sh -m standalone (单机启动命令)

  • yml配置

      cloud:
        nacos:
          discovery:
            server-addr: 10.211.55.3:8848
      application:
        name: dreammall-coupon
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 加上注解

    @SpringBootApplication
    @EnableDiscoveryClient
    @MapperScan("com.liubo.coupon.mapper")
    public class CouponApplication {
        public static void main(String[] args) {
            SpringApplication.run(CouponApplication.class,args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 访问nacos控制台 http://10.211.55.3:8848/nacos/index.html

    image-20220904190937212

2.openfeign远程调用使用

  • 会员查询优惠卷情况

  • coupon模块提供查询优惠卷功能给会员模块远程调用

    @RestController
    @RequestMapping("/coupon")
    public class CouponController {
    
        @Autowired
        private CouponHistoryService couponHistoryService;
    
        /**
         * 模拟会员模块查询优惠卷返回结果
         * @return
         */
        @RequestMapping("/coupons")
        public R coupons(){
            Coupon coupon = new Coupon();
            coupon.setCouponName("满100减100");
            return R.ok().put("coupons", Arrays.asList(coupon));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • feign接口定义

    @FeignClient("dreammall-coupon")
    public interface CouponFeign {
    
        @RequestMapping("/coupon/coupons")
        R coupons();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 引入openfeign依赖

    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-dependencies</artifactId>
       <version>Greenwich.SR3</version>
       <type>pom</type>
       <scope>import</scope>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework.cloud</groupId>
    	<artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 启动类加上注解

    @EnableFeignClients(basePackages = "com.liubo.member.openfeign")  // 声明要扫描的feigin包
    
    • 1
  • 调用openfeign查询数据

    @RestController
    @RequestMapping("/member")
    public class MemberController {
        
        @Autowired
        private CouponFeign couponFeign;  
    
        /**
         * openfeign远程调用查询会员所拥有的优惠卷
         * @return
         */
        @RequestMapping("/list")
        public R test(){
            Member member = new Member();
            member.setNickname("张三");
            R r = couponFeign.coupons();
            Object coupons = r.get("coupons");
            return R.ok().put("member",member).put("coupon",coupons);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • image-20220904193850386

3.nacos作为配置中心

1.动态配置文件步骤

  • 引入依赖

        <!--        配置中心来做配置管理-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 创建bootstrap.properties文件

    spring.application.name=dreammall-coupon
    spring.cloud.nacos.config.server-addr=10.211.55.3:8848
    
    • 1
    • 2
  • controller层实现

    @RestController
    @RefreshScope   // 配置中心更新实时刷新
    @RequestMapping("/coupon")
    public class CouponController {
    
        @Value("coupon.user.name")
        private String userName;
    
        @Value("coupon.user.age")
        private String age;
    
        /**
         * 动态配置测试
         * @return
         */
        @RequestMapping("/config")
        public R testConfig(){
           return R.ok().put("name",userName).put("age",age);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 添加配置文件 命令规则:服务名.properties

    image-20220904195341470

image-20220904195812000

  • 如果有bootstrap.properties和配置中心同时配置,会优先读取配置中心

    image-20220904195919298

2.命令空间与配置分组

  • 命令空间:每个服务都有自已的配置文件

  • 配置分组:区别dev、test、prod环境

    image-20220904202818114

  • properties配置

    spring.application.name=dreammall-coupon
    spring.cloud.nacos.config.server-addr=10.211.55.3:8848
    # 命令空间ID
    spring.cloud.nacos.config.namespace=c076c9de-f4ed-4646-a316-8df40b4faf51
    # 配置分组
    spring.cloud.nacos.config.group=prod
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 加载多配置集

    image-20220904203046076

image-20220904203105275

4.Gateway网关

  • 引入依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
  • yaml配置

    server:
      port: 88
    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 10.211.55.3:8848
        gateway:
          routes:
            - id: query_route
              uri: https://www.baidu.com
              predicates:
                - Query=baz
    
      application:
        name: dreammall-gateway
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 访问localhost:88?baz 跳转到百度首页

    image-20220904210516807

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/315226
推荐阅读
相关标签
  

闽ICP备14008679号