一、创建spring cloud项目
导入依赖:
- spring cloud
- spring boot
- 数据库
- 数据源
- spring boot启动器
- log4j
- junit
- lombok
- logback
二、创建spring cloud - api 模块
- 导入依赖
- 创建db01数据库
创建dept表,包括id、dname、db_source属性
插入数据:
insert into dept (dname,db_source) value ('开发部',DATABASE());
insert into dept (dname,db_source) value ('财政部',DATABASE());
insert into dept (dname,db_source) value ('人事部',DATABASE());
- 编写Dept实体类
三、创建服务提供者模块
- 导入依赖
- 配置配置文件
server端口、mybatis配置、spring配置 - 编mybatis配置文件 mybatis-config.xml
- 编写Dao层
- 编写mapper.xml
- 编写service层
- 编写controller层(提供Restful服务)
- 编写启动类
四、创建服务消费者模块
- 导入依赖
- 配置文件
- 编写配置类
将RestTemplate注入到Bean中 - 编写controller
// 理解:消费者,不应该有service层~
// RestTemplate .... 供我们直接调用就可以了! 注册到Spring中
// (url, 实体:Map ,Class<T> responseType)
@Autowired
private RestTemplate restTemplate; //提供多种便捷访问远程http服务的方法,简单的Restful服务模板~
//private static final String REST_URL_PREFIX = "http://localhost:8001";
private static final String REST_URL_PREFIX = "http://localhost:8001";
@RequestMapping("/consumer/dept/add")
public boolean add(Dept dept){
return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
}
@RequestMapping("/consumer/dept/get/{id}")
public Dept get(@PathVariable("id") Long id){
return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);
}
@RequestMapping("/consumer/dept/list")
public List<Dept> list(){
return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list",List.class);
}
注意:add请求在提供者端没办法测试,在消费者端可以测试,因为必须是post请求,而提供者端是个体请求才可以测试,消费者端可以用post请求测试。
5. 编写启动类