Spring Cloud
一种微服务,以往的单体项目在一定程度的累积后,一些服务需要进行拆分,独立进行开发,然后再合起来,之前的是装成一个包进行部署
不同的搭配:
spring cloud和boot的对应版本:
RestTemplate
在一个服务器里面用http://
来调用另一个服务器中的东西
配置:MPlus(没有用代码生成器),Springboot
在主方法中添加@bean,将RestTmplate
工具注入进去,这样当前这个module
就可以通过http"//
来获取到指定路径的已经运行的并且能够访问的服务器的可被访问的数据
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
// RestTemplate工具类的创建
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
在业务层进行操作吧:具体看注释
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {
// 1.查询订单:通过orderid去查到数据库中tb_order的值
Order order = orderMapper.findById(orderId);
// 2.url路径:拼接上userid
String url="http://localhost:8081/user/"+order.getUserId();
// 3.将路径进行填充进去,指定得到的值为实体类类型(将json数据反序列化成实体类的类型)
User user=restTemplate.getForObject(url, User.class);
// 4.封装User进Order实体类中,这样Order实体类中的user就被填上了
order.setUser(user);
// 5.返回
return order;
}
}
实体类有order和user
其中它的http://
访问的是另一个服务器中的东西(user-service
)