目录
1. 创作初衷
-> 文章内容主要包含
2. 收获
3. 日常
4. 努力成长
5. 憧憬
成为创作者的第730天了, 原来也是分享和记录一些工作日常的点点滴滴, 开发实战中遇到的坎坷,
写技术类博客的目的就是让看我博客的人少走弯路, 也避免了记忆的遗忘,重蹈之前的覆辙; 文章尽可能的提供不同解决方案, 有的地方也会写的不全, 部分文章也会持续更新, 文章质量也会越来越好
不管昨天发生了什么,不管昨天的自己有多难堪,有多无奈,有多苦涩,过去的就不会再来,也无法更改。就让昨天把所有的苦、所有的累、所有的痛都远远地带走,活好当下才是对人生最大的珍惜。今天是用来努力的,明天则是充满希望的。
1. springboot的基本开发操作
2. 生产环境下出现的问题以及解决方案
3. 微服务架构下的配置与服务
4. 常规的linux开发运维 以及docker的部署
5. 也会有一些核心技术, 安全校验, 算法, 设计模式的穿插
虽然数据不惊人, 但记录了创作中的点点滴滴
例一: 使用java通配符写代码
的的确确的简化了开发, 提高了开发效率, 写的不一定好,
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
* 构造器 构造方法封装
* 测试在 施工,订单,活动的部分代码中
*
* @Author pzy
* @Description: TODO 持续更新 最后统一到全部业务中
* @Version 2.1.0
*/
public class WrappersConstructor {
/**
* 条件构造器之 模糊搜索公共字段 无需代码中new构造器
*
* @param t 构造器生成条件
* @param searchName 模糊搜索字段(前端传递)
* @param conditions 搜索条件(数据库)
* @param 类型
* @return
*/
public static QueryWrapper wrapperConstructor(T t, String searchName, String... conditions) {
if (t == null) {
throw new RuntimeException("error ways at wrapperConstructor[args1,args2,args3...], args1 value of empty is not null");
}
return WrappersConstructor.wrapperBaseConstructor(new QueryWrapper(), searchName, conditions);
}
/**
* 条件构造器之 模糊搜索公共字段 测试类型
*
* @param searchName 模糊搜索字段(前端传递)
* @param conditions 搜索条件(数据库)
* @param 类型
* @return
*/
public static QueryWrapper wrapperConstructor(String searchName, String... conditions) {
return WrappersConstructor.wrapperBaseConstructor(new QueryWrapper(), searchName, conditions);
}
/**
* 条件构造器之 模糊搜索公共字段 弱校验
*
* @param queryWrapper
* @param searchName
* @param conditions
* @param
* @return
*/
public static QueryWrapper wrapperConstructor(QueryWrapper queryWrapper, String searchName, String... conditions) {
if (conditions == null || conditions.length < 1) {
return new QueryWrapper();
}
return WrappersConstructor.wrapperBaseConstructor(queryWrapper, searchName, conditions);
}
/**
* 条件构造器之 模糊搜索公共字段 强校验
* Force Re-Check
*
* @param forceCheck (传递true 校验, 然后抛异常, 不可以不传递)
* @param queryWrapper
* @param searchName
* @param conditions
* @param
* @return
*/
public static QueryWrapper wrapperConstructor(boolean forceCheck, QueryWrapper queryWrapper, String searchName, String... conditions) {
//用法两个
if (conditions == null || conditions.length < 1) {
if (forceCheck) {
throw new RuntimeException("error ways at wrapperConstructor[args1,args2,args3...], args3 value of empty is not allowed");
}
return new QueryWrapper<>();
}
return WrappersConstructor.wrapperBaseConstructor(queryWrapper, searchName, conditions);
}
/**
* 条件构造器 模糊搜索基础数据创建
* 一个搜索名 对应多个搜索条件
*
* @param queryWrapper
* @param searchName
* @param conditions
* @param
* @return
*/
private static QueryWrapper wrapperBaseConstructor(QueryWrapper queryWrapper, String searchName, String... conditions) {
return queryWrapper.and(StringUtils.isNotBlank(searchName), wrapper -> {
wrapper.like(conditions[0], searchName);
//计算数组
String[] newConditions = MathUtils.removeFirstElement(conditions);
if (newConditions.length > 0) {
//拼接 第一个没有or 后面有or
for (String condition : newConditions) {
wrapper.or().like(condition, searchName);
}
}
});
}
/**
* 操作反转 紧急添加 暂不优化
*
* @param queryWrapper
* @param searchName
* @param conditions
* @param
* @return
*/
public static QueryWrapper wrapperReverseConstructor(QueryWrapper queryWrapper, String searchName, String... conditions) {
return queryWrapper.and(StringUtils.isNotBlank(searchName), wrapper -> {
wrapper.like(searchName, conditions[0]);
//计算数组
String[] newConditions = MathUtils.removeFirstElement(conditions);
if (newConditions.length > 0) {
//拼接 第一个没有or 后面有or
for (String condition : newConditions) {
wrapper.or().like(searchName, condition);
}
}
});
}
}
持续创作, 每月五到六篇, 会从java基础 一直到微服务, 包括基础运维 自动化等
持续更新, 同时本人也会保持空杯的心态,持续学习,正如: 学如逆水行舟,不进则退
将来,就是你站在茫茫大海的这一边,遥望着海的那一边,充满好奇心,憧憬这对海那边的向往,正是对未知的不了解与向往,所以才有了去追逐将来的勇气。
作者 pzy