Spring 控制台运行及RestTemplate实现Eurka负载均衡
2024-08-31 13:36:48
spring使用控制台运行方式
spring.main.web-application-type=none
新老版本的配置有点差异 Maven的modules只是实现了一个顺序编译,一次多个项目一起生成而己 通过parent才能真正实现继承,目录关系不顶事
@SpringBootApplication
@EnableDiscoveryClient
@Configuration
public class DemoConsoleApplication implements CommandLineRunner { public static void main(String[] args) {
SpringApplication.run(DemoConsoleApplication.class, args);
} @Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
} @Autowired
RestTemplate restTemplate; @Override
public void run(String... args) throws Exception {
System.out.println("command line start runing now....");
HashMap<String,String> pms=new HashMap<>();
pms.put("a","b");
pms.put("c","d"); String ret = restTemplate.execute("http://xx/welcome", HttpMethod.GET, null, new ResponseExtractor<String>() {
@Override
public String extractData(ClientHttpResponse clientHttpResponse) throws IOException {
InputStream aa = clientHttpResponse.getBody();
String str="";
BufferedReader reader=new BufferedReader(new InputStreamReader(aa));
String line="";
do{
line=reader.readLine();
str+=line+"\n";
}while(line!=null);
return str;
}
},pms); System.out.println(ret.toString()); } }
rest动态请求微服务
下面这种更牛逼,可以使用header/object 传值方式调用
HashMap<String, String> headerMap = JSON.parseObject(headers, HashMap.class);
HashMap<String, Object> paramObj = JSON.parseObject(params, HashMap.class);
MultiValueMap<String, String> mtHeader=new LinkedMultiValueMap<>();
headerMap.forEach((String k,String v)->{
mtHeader.set(k,v);
});
HttpEntity<?> entiry = new HttpEntity<HashMap<String, Object>>(paramObj,mtHeader);
ResponseEntity<String> ret = restTemplate.exchange(url, HttpMethod.POST, entiry, String.class);
log.info("restTemplate,status={},statuscode={},body={}", ret.getStatusCode(), ret.getStatusCodeValue(), ret.getBody());
HashMap<String, Object> resultVo = JSON.parseObject(ret.getBody(), HashMap.class);
//判断是否消费成功
if (!hasSuccess(resultVo)) {
flag = false;
}
最新文章
- 自己封装的常用NPOI文件导出源码
- 【SRM】518 Nim
- JavaScript JsTree实例
- SQL查询语句 常用示例
- 使用PowerShell 连接Azure
- Codeforces Round #236 (Div. 2)E. Strictly Positive Matrix(402E)
- 【转】Gedit中文乱码
- c# list exists(contains) delegate 委托判断 元素是否在LIST中存在
- BZOJ 3439: Kpm的MC密码( trie + DFS序 + 主席树 )
- Python ---------copy
- ArrayList和Vector区别
- 46. Permutations(medium, backtrack, 重要)
- redis的set类型!!!!
- 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
- bzoj 2286: [Sdoi2011]消耗战 虚树+树dp
- 跨域iframe如何通信
- 2-4 完整Todolist案例
- Oozie分布式工作流——流控制
- Python之路PythonThread,第二篇,进程2
- 修改TEMPDB所在的路径