工作笔记
文章平均质量分 61
大张旗鼓地离开,其实都是试探,真正的离开,是没有告别的,从来扯着嗓子喊着要走的人,都是最后自己把摔了一地的玻璃碎片,闷头弯腰一片一片拾了起来。而真正想离开的人,只是挑了一个风和日丽的下午,表了件最常穿的大衣出了门,然后就再也没有回来过。
雪孤城
所念皆星河,所系皆山河
展开
-
List.stream().collect(Collectors.toMap(User::getId, k1->k1,(k1,k2)->k2))的意义
原创 2022-04-10 22:35:06 · 2128 阅读 · 1 评论 -
Java Optional类API笔记
1. 创建Optional类API1.1 Optional.of(T t) :创建一个 Optional 实例,当 t 为null时抛出异常API:1.2 Optional.ofNullable(T t):创建一个 Optional 实例,但当 t为null时不会抛出异常,而是返回一个空的实例API:1.3 Optional.empty(): 创建一个空的 Optional 实例API:2. Optional类获取值API2.1 Optional. get(原创 2022-03-12 21:15:04 · 1118 阅读 · 1 评论 -
Java 8 Stream流API解析
1. Stream流简介Java 8 API添加了一个新的抽象称为流Stream,可以以一种声明的方式处理数据。Stream流使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream流特点:不是数据结构,不会保存数据,只是在原数据集上定义了一组操作惰性求值,流在中间处理过程中,只是对操作进行了记录,并不会立即执行,需要等到执行终止操作的时候才会进行实际的计算Stream不保存数据,它会将操作后的数据保存到另外一个对象中一般使用步骤原创 2021-06-18 18:06:08 · 10347 阅读 · 1 评论 -
Java实现随机验证码和验证码图片渲染功能
0.注意事项:图片格式(宽、高)、干扰线及数量在工具类的成员变量配置验证码验证。验证码生成后是存储在session中的,使用相同的属性名(类似key)即可取出,然后进行比对1. 验证码生成工具类package com.jbp.util;import java.awt.*;import java.awt.image.BufferedImage;import java.util.Random;/** * @ClassName: OptimizeVerificationCodeUtil原创 2021-05-13 15:47:42 · 26410 阅读 · 6 评论 -
Windows下MySQL8 忘记 root 密码
注意:MySQL8 不能直接使用skip-grant-tables命令来重置密码1. 停止服务方法一:任务管理器-服务下面找到MySQL服务,直接停掉方法二:管理员身份打开命令窗口行,输入net stop mysql注意:如果,没有配置环境变量,需要进入bin目录下,然后输入该命令2. 启动MySQL输入mysqld --console --skip-grant-tables --shared-memory 启动完毕后,再另行启动一个doc窗口3. 修改密码另行启动一个doc原创 2021-05-06 16:18:05 · 28748 阅读 · 3 评论 -
EasyExcel数据导出功能的封装及上传到云服务器(OSS)
1. 工具类1.1 EasyExcel封装类package com.example.utils.easyexcel;import com.alibaba.excel.metadata.CellData;import com.alibaba.excel.metadata.Head;import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;import com.alibaba.excel.write.metadata.style原创 2021-03-22 22:48:40 · 34078 阅读 · 15 评论 -
压力测试相关概念解析
1.压力测试的定义压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。软件系统的负载压力是指系统在某种指定软件、硬件及网络环原创 2021-01-17 14:51:14 · 1263 阅读 · 0 评论 -
异常统一处理 2
1.pom坐标 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.12</version> </dependency>2 .控制代码2.1 异常处理方式原创 2020-12-19 20:19:56 · 185 阅读 · 1 评论 -
Java数据校验:JSR-303
1.简介JSR是Java Specification Requests的缩写,意思是Java 规范提案JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation即,JSR 303,Bean Validation规范 ,为Bean验证定义了元数据模型和API.。默认的元数据模型是通过Annotations来描述的,但是也可以使用XML来重载或者扩展。2.常用校验注解分类:Bean Validation 中内置的 constraintConstraint详细信原创 2020-12-19 19:18:25 · 31302 阅读 · 2 评论 -
Java拼装获取树形菜单结构
1.数据库表结构建表语句:CREATE TABLE `pms_category` ( `cat_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类id', `name` char(50) DEFAULT NULL COMMENT '分类名称', `parent_cid` bigint(20) DEFAULT NULL COMMENT '父分类id', `cat_level` int(11) DEFAULT NULL COMMENT '层原创 2020-12-15 21:17:44 · 8410 阅读 · 1 评论 -
在SpringBoot项目使用拦截器实现简单的登陆功能
在SpringBoot项目使用拦截器实现简单的登陆功能HandlerInterceptor是SpringWebMVC的拦截器,类似于Servlet开发中的过滤器Filter,用于对请求进行拦截和处理。可以应用如下场景:1、权限检查:如检测请求是否具有登录权限,如果没有直接返回到登陆页面。2、性能监控:用请求处理前和请求处理后的时间差计算整个请求响应完成所消耗的时间。3、日志记录:可以记录请...原创 2019-12-23 15:42:58 · 27928 阅读 · 0 评论 -
ModBus/Tcp协议下的一次实机对接
1.前言项目需要用到一个光线测温的仪器,用的是工业设备比较通用的ModBus协议,博主之前并无相关经验,故记录开发到对接时的各种问题和坑点。2.坑点①。loader shabi 。懂的自然懂。②。文档不全。这个是最大的问题,我开发时,厂家只给了一些通用的开发文档,涉及到数据具体的offset(地址),slaveId(机器id)等重点数据是实机对接时候才给我的。前期我让公司cto看了我的文档,说我的文档不全,后面向leader反应,被认为是我开发水平低,想gc我。③。测试仪器不全。全套组合是主原创 2020-11-12 22:41:17 · 1668 阅读 · 0 评论 -
MockMvc入门
1.使用场景对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便2. 流程解析MockMvcBuilder实例化MockMvcmockMvc调用原创 2020-10-23 16:42:25 · 2559 阅读 · 2 评论 -
通过Git往GitHub提交一个项目
1. 在项目的文件位置打开 Git Bash Here ,进入命令行界面2.输入 git init 。在当前项目的目录中生成本地的git管理(会发现在当前目录下多了一个.git文件夹)3. 输入 git add . 。将项目上所有的文件添加到仓库中的意思,如果想添加某个特定的文件,只需把 . 换成这个特定的文件名即可4. 输入 git commit -m “提交” 。表示对这次提交的注释,双引号里面的内容可以根据个人的需要改。5. 如果是第一次操作,需要输入邮箱账号6. 输入 git re原创 2020-10-10 17:24:03 · 307 阅读 · 0 评论 -
Java日历类:Calendar类
1.获取时间//Calendar实例化Calendar cal = Calendar.getInstance();cal.get(Calendar.DATE);//-----------------------当天 1-31cal.get(Calendar.DAY_OF_MONTH);//---------------当天 1-31 ,这个相对而言会比较准确cal.get(Calendar.DAY_OF_WEEK);//----------------从星期天开始计算,如果今天星期二,那么返回3原创 2020-09-28 16:02:00 · 26145 阅读 · 1 评论 -
对Excel表格的操作:Apache POI
1.简介:Apache POI [是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。其中使用最多的就是使用POI操作Excel文件。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。POI结构:HSSF :提供读写Microsoft Excel XLS格式档案的功能XSSF :提供读写Microsoft Excel OOXML X原创 2020-09-22 21:35:37 · 26059 阅读 · 0 评论 -
基于RedisTemplate中的 set 的交,差,并集
1.set类型常用方法添加元素:redisTemplate.opsForSet().add(key, values)移除元素(单个值、多个值):redisTemplate.opsForSet().remove(key, values)删除并且返回一个随机的元素:redisTemplate.opsForSet().pop(key)获取集合的大小:redisTemplate.opsForSet().size(key)判断集合是否包含value:redisTemplate.opsForSet().is原创 2020-09-22 10:37:55 · 12074 阅读 · 0 评论 -
<selectKey>标签的作用
作用:一些情况下,新增一条数据信息,但其主键(id)是数据库自动在数据库生成(自增),而有些业务逻辑的处理是需要要到这个生成的主键(id)。标签就是用来获取这个生成的主键(id)例:<insert id="add" parameterType="com.demo.pojo.User"> <!--通过mybatis框架提供的selectKey标签获得自增产生的ID值--> <selectKey resultType="java.lang.I原创 2020-09-21 14:21:14 · 43462 阅读 · 3 评论 -
怎么设计一个优惠系统
怎么设计一个优惠系统参与的项目有过类似的系统,但当时不是本人负责设计,故可能有些细节问题,勿怪。大致的流程图:只是大致的流程图,细节需完善,比如最终支付完成后,肯定需要落地MySQL保存该支付信息的,还有下单操作是多线程操作,而不是图中的单机操作,一些线程安全问题需要考虑。大概面临的问题:1.改系统设计之初就需面临高并发处理,怎么实现多线程下单?以目前主流框架SpringBoot为例...原创 2020-04-02 23:57:48 · 569 阅读 · 0 评论 -
分布式事务及解决方案
分布式事务及解决方案1.相关概念:1.1分布式系统?即部署在不同的节点(服务器)的通过网络来完成交互的协同工作的系统如:电商的订单服务,下单—>减库存,订单和库存服务不在同一个节点上。1.2事务?由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔 离性(isolation)和持久性(durability)原子性:执......原创 2020-03-09 15:08:02 · 203 阅读 · 0 评论 -
Eureka Server搭建
Eureka Server搭建工作项目是微服务开发,需要搭建 Eureka,记载下配置信息。1.maven坐标:parent模块:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring‐cloud‐dependencies</...原创 2020-03-05 11:11:03 · 768 阅读 · 0 评论 -
异常统一处理
异常统一处理项目中有负责此方面,最近有空正好总结下,代码为测试代码,非在项目中所写的业务代码,本质相同。异常抛出及处理流程:图片百度得来,觉得总结的比较好。1、在项目抛出自定义异常,springMVC框架抛出框架异常类型2、统一由异常捕获类捕获异常,并进行处理3、捕获到自定义异常则直接取出错误代码及错误信息,响应给用户。4、捕获到非自定义异常类型首先从Map中找该异常类型是否对应具...原创 2020-03-01 00:22:23 · 229 阅读 · 0 评论 -
MongoRepository接口 save方法
MongoRepository接口 save方法项目中一些页面资料是是使用 MongoDB进行存储,在编写接口的过程中,碰到XXXPageRepository(项目自定义类,继承了MongoRepository)的save方法。MongoDB进行数据添加时有两种方法:save方法insert方法区别: 进行数据添加操作时,使用insert:方法,当主键在集合中存在时,不做任何处理,...原创 2020-02-29 21:50:42 · 4741 阅读 · 0 评论 -
win10系统修改hosts文件
win10系统修改hosts文件hosts文件位置:以笔记本方式打开hosts文件,修改—》另存为一个txt文件,去掉.txt后缀,再粘贴至etc文件夹下,提示确认覆盖,ok。...原创 2020-02-25 17:18:13 · 406 阅读 · 0 评论 -
“幂等性”解析
“幂等性”解析定义:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。即,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。一次或多次请求对资源均没有副作用,比如查询数据库操作,没有增删改,因此对数据库没有任何影响幂等性关注的是以后的多次请求是否对资源产生的副作用,而不关注结果网络超时等问题,不在讨论范围业务场景:付款请求中,无论出现何种情...原创 2020-02-18 14:39:03 · 148 阅读 · 0 评论 -
自定义注解常用笔记@Target,@Retention,@Document,@Inherited
自定义注解常用笔记@Target,@Retention,@Document,@Inherited图例:crtl进入该注解@Target@Target :(自定义)注解的作用目标@Target(ElementType.TYPE)——接口、类、枚举、注解@Target(ElementType.FIELD)——字段、枚举的常量@Target(ElementType.METHOD)——...原创 2020-02-17 11:08:50 · 616 阅读 · 0 评论