微服务架构
- 单体引用缺点:复杂性高、不坏不修、部署困难、扩展受限、阻碍创新
- 微服务:每个服务运行在自己的进程中,一个服务只关注一个特定的功能,采用轻量级通信机制,自动部署机制独立部署,可用不用的开发语言和不同的存储技术
SpringCloud介绍
基于SpringBoot实现微服务架构的开发工具
特点:
- 隐藏了组件的复杂性
- 开箱即用,快速启动
- 轻量级
- 各个组件是解耦的,可以按需选型
使用SpringBoot实现微服务
SpringBoot使用
// 1. http://localhost:8080/TestSSM/User/testQueryString?id=123
@RequestMapping("/testQueryString")
public String testQueryString(String id) {
return id;
}
// 2. http://localhost:8080/TestSSM/User/testPathVariable/123
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") String id) {
return id;
}
// 3.参数是对象类型
@RequestMapping(method = RequestMethod.POST, value = "/addUser")
public User addUser(@RequestBody User user) {
return user;
}
// 4.前后端参数名不一致
// http://localhost:8080/TestSSM/User/testDiffParamName?user_name=ych
@RequestMapping("/testDiffParamName")
public String testDiffParamName(@RequestParam("user_name") String username) {
return username;
}
@Autowired
private RestTemplate restTemplate;
// 5.测试RestTemplate
@RequestMapping(value = "/testRestTemplate")
public String testRestTemplate() {
String str = restTemplate.getForObject("http://122.51.176.73/", String.class);
return str;
}
// 6. 直接取配置文件
@Value("${com.run.url}")
public String url;
@RequestMapping("/getUrl")
public String getUrl() {
return url;
}
// 7.通过@ConfigurationProperties映射配置文件
// 略