SpringCloud基础之部门服务消费者
文章目录
创建一个子module
- SpringCloud基础之部门服务消费者
- 创建一个子module
- 编写pom文件
- 编写yml文件
- 创建Controller消费层
- 启动项目进行测试
创建模块工程microservicecloud-consumer-dept-80,打包方式为jar包
编写pom文件
4.0.0
com.thc.springcloud
mircroservicecloud
0.0.1-SNAPSHOT
microservicecloud-consumer-dept-80
部门微服务消费者
com.thc.springcloud
mircroservicecloud-api
${project.version}
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-ribbon
org.springframework.cloud
spring-cloud-starter-config
org.springframework.boot
spring-boot-starter-web
org.springframework
springloaded
org.springframework.boot
spring-boot-devtools
编写yml文件
在classpath的resource目录下新建application.yml文件
server:
port: 80
####创建ConfigBean 使用RestTemplate 来调用消费者工程
package com.thc.springcloud.cfgbeans;
@Configuration
public class ConfigBean {
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
创建Controller消费层
由于该工程为消费层,只用消费,不用生产, 因此没有service dao层
@RestController
public class DeptController_Consumer {
private static final String REST_URL_PREFIX="http://localhost:8001";
/**
* 使用 使用restTemplate三个参数的含义
* (url,requestMap,ResponseBean.class)这三个参数分别代表
* REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。
*/
@Autowired
private RestTemplate restTemplate;
//添加部门信息,访问的映射为/consumer/dept/add
@RequestMapping(value="/consumer/dept/add")
public boolean add(Dept dept){
//第一个参数代表请求消费者工程的地址http://localhost:8001/dept/add
//第二个参数代表请求参数.
//第三个参数代表响应的数据
return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept, boolean.class);
}
//通过部门的id,获取一个部门的信息
@RequestMapping(value="/consumer/dept/get/{id}")
public Dept get(@PathVariable("id")Long id ){
//get请求, 返回一个Dept对象
return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id, Dept.class);
}
//返回所有的部门集合
@SuppressWarnings("unchecked")
@RequestMapping(value="/consumer/dept/list")
public List list (){
//get请求 . 返回一个list集合
return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
}
}
####编写启动类
package com.thc.springcloud;
@SpringBootApplication
public class DeptConsumer80_App {
public static void main(String[] args) {
SpringApplication.run(DeptConsumer80_App.class, args);
}
}
启动项目进行测试
运行上一步的启动类即可启动项目. 同时把生产者工程也进行启动. 在浏览器上输入如下的地址,即获取部门id为1的json信息 http://localhost/consumer/dept/get/1
返回的json如下 在浏览器中输入如下,获取所有的部门信息
http://localhost/consumer/dept/list
返回的如下的json 在浏览器中输入如下的地址实际上是转码过了的
http://localhost/consumer/dept/add?dname=%E7%94%B5%E5%8A%9B%E9%83%A8&db_source=clouddb01
浏览器返回了如下的true,代表插入数据成功
再次查询数据, 可以看到有电力部门