zoukankan      html  css  js  c++  java
  • 安装Spring+搭建Spring开发环境

    https://blog.csdn.net/csdnsjg/article/details/80152815

    https://jingyan.baidu.com/article/219f4bf798e0cfde442d3831.html

    类似spring 、 maven 这类插件,需要再eclipse中提前安装;

    1、首先下载eclipse 对应的spring 的版本,查看eclipse 版本在 help-- about eclipse 中

    2、找到打开eclipse,选择 "Help" --> "Install New Software" --> "add" -->"Archive" --> 选择刚才下载好的springsource-tool-suite “打开”--> "OK"

    3、查看是否安装成功,点击“Window”--> "Preferences"查看是否安装成功

    配置好后,新建spring 调用jsf 接口:

    1、 file --- new -- spring starter project 

    2、maven 依赖配置添加,在pom.xml 中,可以依照官方的xml文档,只需要添加需要的依赖即可

    3、在spring 项目下面,新建源文件,里面包含log4j.xml  和 jsf-consumer.xml  也是依据官方的文档进行修改,传入参数改称需要的即可

    4、然后修改接口调用函数,导入相关的包,这里采用spring集成的方式调用接口

    5、参考如下:

    package com.example.demo;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.jd.erqing.application.jsf.VenderInfoService;
    import com.jd.fastjson.JSONObject;
    
    public class DemoApplicationTests {
    
    	/**
    	 * SLF4J logger
    	 */
    	private final static Logger LOGGER = LoggerFactory.getLogger(DemoApplicationTests.class);
    
    	/**
    	 * Method Name main
    	 * 
    	 * @param args Return Type void
    	 */
    	public static void main(String[] args) {
    		ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("/jsf-consumer.xml");
    
    		VenderInfoService service = (VenderInfoService) appContext.getBean("venderInfoService");
    	    while (true) {
    			try {
    				long start = System.currentTimeMillis();
    		        String result = service.venderDownAmountList("10021");
    		        long end = System.currentTimeMillis();
    		        System.out.println("耗时:"+(end - start));
    		        System.out.println(result);
    				LOGGER.info("response msg from server :{}", result);
    				
    			} catch (Exception e) {
    				LOGGER.error(e.getMessage(), e);
    			}
    
    			try {
    				Thread.sleep(2000);
    			} catch (Exception e) {
    			}
    		}
    	}
    }
    

      

    还有使用API的方式(不依赖spring)调用JSF服务的方式。

     实例如下:

    package com.example.demo;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.spark.api.java.JavaRDD;
    import org.apache.spark.sql.Dataset;
    import org.apache.spark.sql.Row;
    import org.apache.spark.sql.SparkSession;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.jd.erqing.application.jsf.VenderInfoService;
    import com.jd.fastjson.JSONObject;
    
    import com.jd.jsf.gd.config.ConsumerConfig;
    import com.jd.jsf.gd.config.RegistryConfig;
    
    
    
    
    
    public class DemoApplication {
    
    	/**
    	 * SLF4J logger
    	 */
    	private final static Logger LOGGER = LoggerFactory.getLogger(DemoApplication.class);
    
    	/**
    	 * Method Name main
    	 * 
    	 * @param args Return Type void
    	 */
    	public static void main(String[] args) {
    //		// 引入杰夫接口
    //		ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("/jsf-consumer.xml");
    //		VenderInfoService service = (VenderInfoService) appContext.getBean("venderInfoService");
    		
    		
    		RegistryConfig jsfRegistry = new RegistryConfig();
    		jsfRegistry.setIndex("i.jsf.jd.com");
    		LOGGER.info("实例RegistryConfig");
    
    		// 服务提供者连接注册中心,设置属性
    		ConsumerConfig<VenderInfoService> consumerConfig = new ConsumerConfig<VenderInfoService>();
    		consumerConfig.setInterfaceId("XXXXXXXXXXXXXXXXXXXXXXXXX");
    		// consumerConfig.setAlias("XXXXXXXXXXXXXXXXX");  // 线下
    		consumerConfig.setAlias("XXXXXXXXXXXXXXXXXXXX");     //线上
    		consumerConfig.setProtocol("jsf");
    		Map<String,String> parameter = new HashMap();
    		parameter.put(".token", "XXXXXXXXXXXXXXXXXXXX");
    //		parameter.put("hide", "true");
    		
    		consumerConfig.setParameters(parameter);
    
    		// 如果外面已经有xml配的注册中心,使用consumerConfig.setRegistry(RegistryFactory.getRegistryConfigs());
    		consumerConfig.setRegistry(jsfRegistry);
    		LOGGER.info("实例ConsumerConfig");
    		VenderInfoService service = consumerConfig.refer();
    		LOGGER.info("得到调用端代理:{}", service);
    		
    		
    //		// 读入店铺id数据
    //		SparkSession spark = SparkSession.builder().appName("demo_spark").enableHiveSupport().getOrCreate();
    //		spark.sql("insert overwrite table dev.dev_spark_demo_temp partition (dt = '2019-08-08') select pop_vender_id, sale_ord_id from app.app_sjzt_payout_apply_with_order where  dt = '2019-08-05'");
    //		Dataset<Row> vender_set = spark.sql("select pop_vender_id from app.app_sjzt_payout_apply_with_order where dt = '2019-08-05' limit 2000");
    //
    //		// 将数据去重,转换成 List<Row> 格式
    //		vender_set =  vender_set.distinct();
    //		vender_set = vender_set.na().fill(0L);
    //		JavaRDD<Row> vender= vender_set.toJavaRDD();
    //		List<Row> vender_list = vender.collect();
    //		
    //		// 遍历商家id,调用jsf接口
    //		for(Row row:vender_list) {
    //			String id = row.getString(0);
    //			String result = service.venderDownAmountList(id);
    //			System.out.print(id + " "+ result + "
    ");
    //		}
    //		
    //		System.out.println( "Hello World!" );
    		
    		
    	    while (true) {
    			try {
    				long start = System.currentTimeMillis();
    		        String result = service.venderDownAmountList("10021");
    		        long end = System.currentTimeMillis();
    		        System.out.println("耗时:"+(end - start));
    		        System.out.println(result);
    				LOGGER.info("response msg from server :{}", result);
    				
    			} catch (Exception e) {
    				LOGGER.error(e.getMessage(), e);
    			}
    
    			try {
    				Thread.sleep(2000);
    			} catch (Exception e) {
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    Linux脚本文件注释
    Linux三剑客之grep命令
    Linux获取本机IP
    Linux的cut命令详解
    Linux的wc命令详解
    Linux的uniq命令详解
    Linux的sort命令详解
    shell之a+b求和脚本的三种写法
    shell的文件比较运算符和字符串比较运算符
    shell中变量$系列的含义
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/9404017.html
Copyright © 2011-2022 走看看