常用的开发 代码

常用的开发

Post请求
@RequestMapping(value = "/list", method = RequestMethod.POST)

打印日志
logger.info("订单列表查询入参::"+JSON.toJSONString(param));

是否为空 对象
StringUtils.isBlank()

是否不为空 对象
StringUtils.isNotBlank(miceNo)

字符串是否为空
StringUtils.isEmpty(passengerInfo.getIdCard())

创建list
List<OrderDTO> orderList = new ArrayList<>();

不为空
StringUtils.isNotBlank()

日期类型  Date  是否为空
Objects.nonNull(order.getCreatedate())

list对象是否为空
CollectionUtils.isEmpty(segmentInfos);
list是否为不为空
CollectionUtils.isNotEmpty(cityList2)

//把入参对象,转化为字符串
JSONObject.toJSONString(orderInfo)

list去重
 List<String> pnrList = pnrList.stream().distinct().collect(Collectors.toList());


把字符串按,分割成数组
String[] pnrNos = pnrNoStr.split(",");


Json化 list 对象都行 将一个实体对象转换成Json字符串 
JSONObject.toJSONString()

创建hashmap   值可以是各种类型
Map<String,Object> headers = new HashMap<>();
headers.put("JF_SYS","ECS-B");
headers.put("JF_MU","ordermanagement");
headers.put("JF_RN", IdUtil.simpleUUID());
headers.put("JF_CHANNEL","B2B");
String h = JSONObject.toJSONString(headers);

抛异常里打印错误日志
 logger.error("大订单列表接口失败::{}", e.getMessage());

返回参数时,三目运算更加简洁
return map.containsKey(orderStatus)?map.get(orderStatus):orderStatus;

字符串转数组  在转 list
 private static final String OCM_ORDERLIST_FULLTYPE = "1,2,3,7,8";
String[] types = OCM_ORDERLIST_FULLTYPE.split(",");
List<String> ocmFullType = Arrays.asList(types);






RedisTemplateUtil 工具类 是基于RedisTemplate来自己封装的。

打印日志
LOGGER.info("定时任务开始执行,生成填开差错单或者取消差错单报表......");

错误日志
logger.error("定时任务取消保证金报错:", e);

定时任务注入到bean
@Component

把配置的信息加载到我们代码中  可以是apollo,可以使本地yam,看你配置中心在哪里。
@Value("${api.ocm.couponOnlineUrl}")
private String couponUrl;


多个字符串拼接  非线程安全的
StringBuilder sb = new StringBuilder();
sb.append("接口[").append(requestURI).append("]请求信息:").append("\n")
                .append("ip=").append(HTTPRequestUtils.getInstance().getClientIP(request)).append("\n")
                .append("url=").append(request.getRequestURL().toString()).append("\n")
                .append("httpMethod=").append(request.getMethod()).append("\n")
                .append("param=").append(paramJsonStr).append("\n")
                .append("userid=").append(userId).append("\n")
                .append("请求时间耗时=").append(System.currentTimeMillis() - preTimeString);


反射用法 
HTTPRequestUtils 类信息
HTTPRequestUtils.getInstance() 类对象
.getClientIP 调用这个对象的方法。

MDC.put("REMOTE_IP",HTTPRequestUtils.getInstance().getClientIP(request));


String   StringBuffer 是不同的
request.getRequestURL() 返回的是StringBuffer类型的数据。 这里是string类型 所以要tostring一下
MDC.put("interface",request.getRequestURL().toString());



@Data
实体类的get set 方法 可以自动生成

打印开始时间
long startTime = System.currentTimeMillis();

结束时间
long endTime = System.currentTimeMillis();

花费时间
long costTime = endTime - startTime;

时间
LocalDateTime startDateTime = LocalDateTime.now();


 //推送mq之前,把订单信息存到redis
这里拼装订单消息
OrderInfo orderInfo = orderInfoHandle.bulidBOrderMqInfo(order);

//参数意思  key  value   超时时间                
jedisClusterHelper.saveOrUpdate(Constants.ORDER_REDIS_PRIFIX+orderNo, orderInfo, Constants.ORDER_REDIS_EXPIRETIME);




数据源配置类常用注解


@Configuration  将想要的组件添加到容器中


@MapperScan
添加@MapperScan(“com.winter.dao”)注解以后,com.winter.dao包下面的接口类,在编译之后都会生成相应的实现类


配置中心是apollo,这样可以把配置引入到代码中
@Value("${SVCChannel}")
private String svcChannelId;

生成uid
String rid = UUID.randomUUID().toString().replaceAll("-","");


//是否包含某个字符
@Value("${SMS_BlockSite_Ticketed}")
private String smsBlockSite;

 String bookagent = order.getBookAgent();
 if(StringUtils.contains(smsBlockSite, bookagent)) {
			log.info("{}不做出票操作{}",orderno,bookagent);
	}


//检查字符序列(CharSequence)是否包含给定数组中的任何字符序列
StringUtils.containsAny("zzabyycdxx", "za") = true
StringUtils.containsAny("abc", "d", "abc")  = true


比较两个字符串是否相等,如果两个均为null,则也认为相等
StringUtils.equals("", "");   //结果是true





你可能感兴趣的:(java,json,servlet)