cubemall-product

Blog.java

package com.xd.cubemall.product.entity;



import lombok.Data;

@Data
public class Blog {
    private Long id;
    private String title;
    private String content;
    private String comment;
    private String mobile;
}

SearchFeignTest.java

package com.xd.cubemall.feign;


import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.product.CubemallProductApplication;
import com.xd.cubemall.product.entity.Blog;
import com.xd.cubemall.product.feign.SearchFeign;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = CubemallProductApplication.class)
public class SearchFeignTest {
    @Autowired
    private SearchFeign searchFeign;

    @Test
    public void testSayHello() {
        R r = searchFeign.sayHello("tom");
        System.out.println(r);
    }

    @Test
    public void testSayHello2() {
        R r = searchFeign.sayHello2("张三");
        System.out.println(r);
    }

    @Test
    public void testGetBlog() {
        Blog blog = new Blog();
        blog.setId(1l);
        blog.setTitle("hello");
        blog.setContent("world");
        R r = searchFeign.getBlog(blog);
        System.out.println(r);
    }

    @Test
    public void testGetBlog2() {
        Blog blog = new Blog();
        blog.setId(1l);
        blog.setTitle("hello");
        blog.setContent("world");
        R r = searchFeign.getBlog2(blog,"aaa");
        System.out.println(r);
    }

}

SearchFeign.java

package com.xd.cubemall.product.feign;

import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.product.entity.Blog;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient("cubemall-search")
public interface SearchFeign {

    @GetMapping("hello/{name}")
    R sayHello(@PathVariable("name") String name);

    @GetMapping("hello")
    R sayHello2(@RequestParam("name") String name);


    @PostMapping("/blog")
    public R getBlog(@RequestBody Blog blog);

    @PostMapping("/blog2")
    public R getBlog2(@RequestBody Blog blog, @RequestParam("name") String name);

    @GetMapping("/spuinfo/putonsale/{spuId}")
    R putOnSale(@PathVariable("spuId") Long spuId);
}

pom.xml

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

application.yml

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        ip: 127.0.0.1
  application:
    name: cubemall-product

cubemall-search

HelloController.java

package com.xd.cubemall.search.controller;


import com.xd.cubemall.common.utils.R;
import com.xd.cubemall.search.model.Blog;
import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {
    @GetMapping("hello/{name}")
    public R sayHello(@PathVariable String name) {
        return R.ok("hello" + name);
    }


    //http://localhost:8082/hello?name=lisi
    @GetMapping("hello")
    public R sayHello2(String name) {
        return R.ok("hello" + name);
    }

    @PostMapping("/blog")
    public R getBlog(@RequestBody Blog blog) {
        blog.setComment("接收到blog对象");
        blog.setMobile("111111");
        return R.ok(blog);
    }


    @PostMapping("/blog2")
    public R getBlog2(@RequestBody Blog blog, String name) {
        blog.setComment(name);
        blog.setMobile("222222");
        return R.ok(blog);
    }

}

10-20 20:37