zoukankan      html  css  js  c++  java
  • Spring 控制台运行及RestTemplate实现Eurka负载均衡

    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+"
    ";
                    }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;
                    }
  • 相关阅读:
    MySQL数据库06 /数据库总结
    数据库05 /索引、数据库备份、锁和事务、慢查询优化、索引命中相关
    数据库04 /多表查询、pymysql模块
    数据库03 /库、表、记录的详细操作、单表查询
    struts基于ognl的自动类型转换需要注意的地方
    struts-json-plugin result中配置对象的序列化
    hibernate关联关系笔记
    使用动态代理实现数据库事务(转)
    xml、文件操作功能类
    将CachedRowSet中的数据转储到对象中
  • 原文地址:https://www.cnblogs.com/a-xu/p/9416832.html
Copyright © 2011-2022 走看看