spring cloud 服务消费者与服务提供者

由于eclipse的使用人群比较多,这里我们也使用eclipse开发,为了方便spring boot的开发,需要安装一个插件springsource-tool-suite-3.9.5.RELEASE-e4.8.0-updatesite,这个插件的下载地址为:https://spring.io/tools/sts/all/

spring cloud 服务消费者与服务提供者_第1张图片

需要注意eclipse与插件的版本相匹配。具体安装步骤就不介绍了,与普通eclipse插件安装没什么区别。

服务提供者

打开eclipse,选择新建项目,选择Spring Starter Project,下一步。

spring cloud 服务消费者与服务提供者_第2张图片

spring cloud 服务消费者与服务提供者_第3张图片

写上项目名称,group与artifact ,点击next。

spring cloud 服务消费者与服务提供者_第4张图片

这里选择spring boot版本,选择稳定版即可,然后在availabel中搜索web,并勾,选web是因为我们是一个web项目。

spring cloud 服务消费者与服务提供者_第5张图片

直接finish就好了。

需要注意的是,上面这种创建项目的方式,需要联网,如果没有网络,请参考基于maven创建spring boot项目的相关资料。

创建好后,项目的目录结构如下:

spring cloud 服务消费者与服务提供者_第6张图片

编写controller代码

@RestController
public class UserController {

	@Autowired
	private UserMapper userMapper;
	
	@GetMapping("user/{id}")
	public User queryUser(@PathVariable("id")Long id) {
		return userMapper.findById(id);
	}
	
}

这里使用到mybatis,如果不太清楚spring boot 如何集成mybatis的,可以参考

https://blog.csdn.net/lujiangui/article/details/82768902

服务消费者

服务消费者项目的创建步骤与服务提供者的步骤基本一样。这里就不累赘了。

在服务消费者项目中,我们写一个controller,并在调用服务提供者。

@RestController
public class ItemController {
	
	@Autowired
	private RestTemplate restTemplate;

	@GetMapping("item/{id}")
	public User queryItem(@PathVariable Long id) {
		return restTemplate.getForObject("http://localhost:7900/user/"+id, User.class);
	}
	
}

这里使用到RestTemplate对象,这个对象的getForObject()方法,第一个参数是我们要请求的url地址,也就是我们的服务提供者的地址,第二个参数是结果返回的对象class值。

注意:这里想要注入RestTemplate对象,需要先把RestTemplate对象的创建交给spring 容器管理。

	@Bean
	public RestTemplate restTemplate() {
		return new RestTemplate();
	}

@Bean注解的作用,不清楚的可以看看https://blog.csdn.net/lujiangui/article/details/82053790,这里说得比较详细。

 

分别启动服务提供者和服务消费者这两个项目,然后打开浏览器,访问测试:

可以看到,通过访问服务消费者,可以拿到服务提供者的数据,说明我们的服务消费者成功调用了服务提供者的接口,并拿到了数据。

你可能感兴趣的:(Spring,Cloud)