Spring Cloud入门(一) 服务提供者和服务消费者

微服务的概念什么。。。。。。百度吧

第一步:麻烦自己先准备两个普通的Spring boot 简单的 demo

  我写的demo是这两个

    

  Spring Boot 中,服务消费者可以直接远程调用 服务提供者,代码如下

   假设服务一 用户服务中 UserApplication中有一个查询用户信息的接口(其他简单的连接数据库,mapper文件不做多解释)

@RestController
public class UserController {
	@Resource
	private UserService userService;
	@GetMapping("/queryOne/{id}")
	public User queryOne(@PathVariable Long id) {
		return userService.queryOne(id);
	}
}

  现在服务二 纪念品服务 SouvenirApplication中, 需要调用服务一 中的获取用户信息的接口

    则需要做 以下的 操作

@RestController
public class SouvenirController {
	//个人理解为远程调用的模板对象
	@Resource
	private RestTemplate restTemplate;
	@GetMapping("/buySouvenir/{id}")
	public User buySouvenir(@PathVariable Long id) {
						//服务一中的接口地址                      
		return restTemplate.getForObject("http://localhost:8080/queryOne/"+id, User.class);
	}
}

  其中 restTemplate需要自己手动创建对象注入

  在SouvenirApplication中 加入代码

  

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

  此时,访问服务二中的接口 ,便可以调用服务一中的接口查询数据

  好吧,之前不知道居然可以直接调用,

  不过 缺点很明显, 接口地址硬编码到代码中,难以维护,

    即使抽取为配置文件,当一个接口变动时,也需要更改其他服务调用者中的接口地址,重启其他的服务器(当然,可以使用nginx作反向代理,将接口地址抽离出来,但当服务较多时。接口也增多,维护也麻烦)

所以:

    需要一个专门,管理,治理服务的中间件。。。具体是啥。。我还没看到。回头看到了再说

  只当做笔记用。。。。

原文地址:https://www.cnblogs.com/x-ph/p/9388158.html