idea
抽取相同多重复的代码成为一个函数ctrl + Alt + M
选中相关代码+ 右键ReFactor + Extract Method
java新特性
stream流去重
1234List<String> orderNoList = inOutWarehouseRecordMap.values().stream() .map(InOutWarehouseRecord::getOrderNo) .distinct() .collect(Collectors.toList());
将value为集合的map转化为list
12//Map<Long, List<RecordGoodsDetail>> goodsDetailMapList<RecordGoodsDetail> allDetails = goodsDetailMap.values().stream() .flatMap(List::stream).collect(Collectors.toList());
常用构造方式
12345List<SuppliedMaterialsDTO> suppliedMaterialsDTOList = records.stream ...
mysql默认不支持远程连接
1.查看linux防火墙是否开启,阻拦3306端口
1systemctl status firewalld
2.云服务器安全组是否打开
3.mysql默认不支持远程访问,修改etc目录下的my.cnf,配置mysqld下bind_address未0.0.0.0
如果有skip-networking。需要注释掉,然后重启mysql
12345-- 搜索myusql配置文件位置mysql --help|grep my.cnf cd etcvim my.cnfsystemctl restart mysql
4.查看mysql对应用户权限
123456789101112-- 使用你的MySQL root用户登录mysql -u root -p-- 选择mysql数据库USE mysql;-- 查看用户和主机权限SELECT user, host FROM user;-- 给用户添加远程连接权限GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_passwor ...
日志文件
Gradle 配置如果你使用 Gradle 构建工具,可以在 build.gradle 文件中添加以下依赖:
123456789101112131415groovy复制代码dependencies { // Spring Boot Web Starter 会默认包含 Logback 依赖 implementation 'org.springframework.boot:spring-boot-starter-web' // 如果需要排除默认的 Logback 依赖(在其他框架中需要时) configurations { all*.exclude group: 'ch.qos.logback', module: 'logback-classic' } // Logback 核心依赖 implementation 'ch.qos.logback:logback-classic:1.2.10' // 确保使用最新版本 // ...
即时通讯
润华项目企业协作即时通讯设计:
根据业务即当前人员在需要进行流程审核时调用远程api达到即时通讯发信息的效果。
调用示例:
123456SendClientMessageForm messageForm = SendClientMessageForm.builder() .userId(transferOrderUser) .url(PathConstants.TRANSFER_NOTICE) .content(String.format("%s给您发送了一条产品调拨申请,请及时审批!", user.getNickname())) .build();instantMessageUtil.sendMessage(messageForm);
接口调用demo:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051@Slf4j@Componentpublic class Instan ...
常用api或操作
1.DateTimeFormatter对当前日期进行格式化,并提取出年、月、日的字符串表示。
1234567891011DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");// 获取当前日期并格式化为 "yyyyMMdd" 格式的字符串String day = LocalDate.now().format(dtf); // 输出例如 "20240628"// 提取出前六位字符作为月份,格式为 "yyyyMM"String month = day.substring(0, 6); // 输出例如 "202406"// 提取出前四位字符作为年份,格式为 "yyyy"String year = day.substring(0, 4); // 输出例如 "2024"
2.通常用于将集合的数据根据某个字段进行分类累加 eg:如下根据废料集合的marker来进行计算重量并整合
12 ...
设计模式
1123
enum枚举
1.switch搭配枚举
2.根据传入的type来转化枚举
12345678910111213141516171819202122@Getter@AllArgsConstructorpublic enum ScoreTypeEnum { NOW_YEAR(1, "今年"), YEAR(2, "指定年"), MONTH(3, "指定月(今年某月)"), YEAR_MONTH(4, "指定年月") ; private final int type; private final String desc; public static ScoreTypeEnum getType(Integer type){ return Arrays.stream(ScoreTypeEnum.values()).filter(scoreTypeEnum -> type.equals(scoreTypeEnum.getType())).findFi ...
常用dao操作
zeus常用dao操作:
1.省略if判断写法
1234Criteria criteria = Criteria.where(WaitingGetMaterial::getTaskId).ne(""). and(WaitingGetMaterial::getBusinessUnit).is(vo.getBusinessUnit(),Objects::nonNull) .and(WaitingGetMaterial::getMarker).fullLike(vo.getMarker(), StringUtils::isNotBlank) .and(WaitingGetMaterial::getMaterialName).is(name,Objects::nonNull);
2.添加两个互为或的条件
12345678// 如果查询字符串不为空,添加模糊查询条件if (StringUtils.isNotEmpty(dto.getQueryString())) { Crit ...
什么是微服务
概述:(1)微服务就是一种架构风格(2)微服务就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程。
—————————————–帅气的分割线—————————-
这里就扩展的介绍一下微服务,赶时间的朋友可以溜了,因为下面的内容只是扩展的介绍一下微服务
1、微服务的由来微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。
2、为什么需要微服务在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高。到后面引入了SOA服务化,但是,由于 SOA 早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如:J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要 ...