接口
public interface UserService {
public String getName();
}
提供者(接口实现类 controller)
先加上依赖 没有这个依赖 接口和消者之间不能联系
<dependency>
<groupId>com.offcn</groupId>
<artifactId>hello_interface</artifactId>
<version>1.0</version>
</dependency>
UserServiceImpl类
@Service
public class UserServiceImpl implements UserService {
@Override
public String getName() {
return "张三";
}
}
controller类
@RestController //@Controller+@ResponseBody
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/getName")
//@RequestMapping(value = "/getName",method = RequestMethod.GET)
public String getName(){
return userService.getName();
}
}
运行结果:
消费者
接口实现类
@Service
public class UserServceImpl implements UserService {
@Autowired
private DiscoveryClient discoveryClient;//服务查询工具
@Autowired
private RestTemplate restTemplate;
//http://localhost:8001/
public String getServerInfo(){
List<ServiceInstance> instanceList = discoveryClient.getInstances("HELLOPROVIDER");
if (!CollectionUtils.isEmpty(instanceList)) {
ServiceInstance serviceInstance = instanceList.get(0);
String host = serviceInstance.getHost();
int port = serviceInstance.getPort();
return "http://"+host+":"+port;
}
return null;
}
@Override
public String getName() {
//远程服务调用
return restTemplate.getForObject(this.getServerInfo()+"/getName",String.class);
}
}
controller类
@RestController
public class TestController {
@Autowired
private UserService userService;
@RequestMapping("/print")
public String print(){
return userService.getName()+": 欢迎来到优就业学习!";
}
}
运行结果: