利用SpringCloud搭建微服务4——服务调用组件Fegin的使用,引入API网关治理组件Zuul

配置文件application.properties

eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
server.port=9004
spring.application.name=service-feign

启动类代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class FeginClientStarter {
	
	public static void main(String[] args) {
		SpringApplication.run(FeginClientStarter.class, args);
	}
}

控制层示例:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.jt.service.HiService;

@Controller
public class HiController {
	@Autowired
	private HiService service;
	@RequestMapping("hi")
	@ResponseBody
	public String sayHi(String name){
		String hi=service.sayHi(name);
		return hi;
	}
}

引入Zuul:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class ZullController {
	@RequestMapping("zuul")
	@ResponseBody
	public String getName(String name){
		return "hi,"+name+",i am from feign";
	}
}

Service层代码示例:

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient("service-hi")
public interface HiService {
	//template.getObject(url,String.class)
	//http://service-hi/hi?name=名字
	@RequestMapping(value="/hi",method=RequestMethod.GET)
	public String sayHi(@RequestParam(value="name")String name);
}

pom.xml核心配置:

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-feign</artifactId>
		</dependency>

猜你喜欢

转载自blog.csdn.net/weixin_42394052/article/details/85483539