常用的开发
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
常用的开发 代码
于 2023-04-06 17:06:36 首次发布