自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 Wsl 学习记录1-Wsl 使用第一天(持续更新)

WSLWindows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。Ubuntu 中 /# 和~#的区别root@ubuntu:/# 这个是根目录,对一般用户只读,root用户有所有权限root@ubuntu:~# 这个是home目

2022-04-17 18:23:51 313

原创 pyinstaller打包.exe文件学习记录

问题1:pyinstaller -F D:xxx\main.py打包时报错Exception: Cannot find existing PyQt5 plugin directories.

2022-02-27 11:25:58 260

原创 我要开始写注释啦

1:方法要加方法用途得注释2:map要加key value的注释3:数据库操作增、删、改要添加注释4:枚举判断时要列举枚举含义注释5:报错提示也要注释为何弹出异常

2021-10-26 16:13:14 238

原创 go学习记录6-mongo-driver

mongo接入application配置db: mgo: address1: dds-2***1.mongodb.rds.aliyuncs.com port1: 3717 address2: dds-2***2.mongodb.rds.aliyuncs.com port2: 3717 database: demo user: root password: Demo@123!# pool_size: 100

2021-09-09 06:50:58 616

原创 Java8 java.util.function包

Java8的工具包新增了function包,里面主要包含了Function,Consumer,Predicate,Supplier四种类。Function类抽象方法apply()实例化Function的时候需要实现其中的apply()方法,apply方法接收一个模板类型作为输入参数,在andThen()和compose()方法里会自动调用apply()方法。default方法andThen()default方法compose()静态方法identity()...

2021-08-07 07:01:58 288

转载 解决中文乱码

一、在返回中的头部信息中指定字符集为UTF-8 response.setCharacterEncoding("utf-8");二、在API上指定produces@RequestMapping(value = "/hello", produces = "application/json; charset=UTF-8")三、全局配置字符编码package com.reachauto.hkr.common.config;import com.fasterxml.jackson.databind.

2021-08-07 07:00:18 105667

转载 雪花算法Snowflake

SnowflakeSnowflake是一项网络服务,可通过一些简单的保证大规模生成唯一的 ID 号。其优点是:高性能,低延迟;独立的应用;按时间有序。缺点是:需要独立的开发和部署。41位的时间序列(精确到毫秒,41位的长度可以使用69年);10位的机器标识(10位的长度最多支持部署1024个节点);12位的计数顺序号(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)最高位是符号位,始终为0。Snowflake 是一个很高效很方便的GUID产生算法,一个int64_t字段就可以胜任

2021-08-07 06:59:11 207

转载 编码规范学习

controller层

2021-08-07 06:58:09 119

原创 java.io.StringReader

API说明:字符串输入流、其本质就是字符串/** * A character stream whose source is a string. * * @author Mark Reinhold * @since JDK1.1 */public class StringReader extends Reader {}

2021-08-07 06:56:20 685

原创 java.util.Properties

public synchronized void load(Reader reader) throws IOException { load0(new LineReader(reader)); }Properties.load();传进去一个输入流,字节流或者字符流,再使用Properties.getProperty();来读取配置文件里面的属性值。 public String getProperty(String key) { Object oval =

2021-07-30 09:46:36 127

转载 debug的记录

系统日志when 我需要在什么时候打印日志代码调试问题定位用户行为日志(记录操作日志)根因分析where我会在哪打印我的日志1.程序入口:入参在入口打印日志是因为这个时候传递进来的参数没有经过任何处理,将它打印在日志文件中能一眼就知道程序的原始数据是否符合我们的预期,是不是传递进来的原始数据就出现 的问题。2.异常捕获:try…catch在异常打印出详细的日志能让你快速定位错误在哪里,例如在程序抛出异常捕获时,在平时我们经常就是直接在控制台打印出堆栈信息e.printStackTrace

2021-07-22 19:06:38 337

转载 压测学习记录

jmeter使用标准指标分析响应时间:假设我们把响应时间分为如下几段:用户通过客户端向服务端发出请求的时间为: T1服务端接收到请求,处理该请求的时间为:T2服务端返回数据给客户端时间为: T3客户端接收到响应数据,处理数据呈现给用户时间为:T4从系统视角来看:系统的响应时间Ts= T1+T2+T3。该时间没有包括客户端对数据处理并呈现的时间T4从用户视角来看:用户眼中的的响应时间:Tu = T1+T2+T3+T4。用户通过客户端发出业务请求,到客户端展现相应的请求结果,这

2021-07-22 05:47:24 1183

转载 PropertyMapper

PropertyMapperPropertyMapper 是 Spring 框架中的工具类。核心PropertyMapper 类主要有四大核心:Source :一个存储提供值的 Supplier 与调用方法时对 Supplier 进行合法测试的 Predicate;SourceOperator:对 Source 实例进行处理的 lambda 接口,与 JDK 8 的 Function 接口不同的是它的返回值总是与入参相同;NullPointerExceptionSafeSupplier:特殊的

2021-07-16 08:47:41 811

原创 static使用

static使用修饰属性常用于共享属性 private static int onlineCount = 0;修饰成员方法常用于工具类,就是可以使用"类名.方法名"的方式操作方法,避免了先要new出对象的繁琐和资源消耗。public class CommonHelper { /** * 生成UUID * * @return String */ public static String uuid() { //生成UUI

2021-07-12 14:15:56 135

转载 Spring

Spring启动初始化启动加载启动成功后可以通过以下方法运行自己的初始代码@PostConstruct注解 @Component public class StartUpInit { @Autowired private SomeService service; @PostConstruct public void init(){ // ... }

2021-07-11 11:10:24 149

转载 RestTemplate

Springboot使用RestTemplatePOST传递参数采用 LinkedMultiValueMap ,不能使用HashMap MultiValueMap<String, String> map= new LinkedMultiValueMap<String,String>(); map.add("shopid","1"); MultiValueMap<String, Object> LinkedMultiValueMa

2021-07-10 06:26:35 1161

原创 HttpClient

HttpURLConnectionpackage java.net//创建连接对象 URL url=new URL(httpUrl); //创建连接 HttpURLConnection connection= (HttpURLConnection) url.openConnection(); //设置请求方法 connection.setRequestMethod("POST");

2021-07-10 06:25:04 376

原创 mongoDB

MongoDB建表语句使用my_test数据库,如果没有这个数据库会帮我们创建use my_test查看有多少表show tables show collectionsjava开发@Id主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束。如果自己不设置@Id主键,mongo会自动生成一个唯一主键,并且插入时效率远高于自己设置主键。在实际业务中不建议自己设置主键,应交给mongo自己生成,自己可以设置一个业务id,如int型字段,用自己设置的业务id来

2021-07-10 06:23:47 231

转载 自定义注解

自定义注解使用场景Java自定义注解一般使用场景为:自定义注解+拦截器或者AOP,使用自定义注解来自己设计框架,使得代码看起来非常优雅。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation{ String type(); String secondaryType();}注解的处理是通过java反射来处理的。如下,反射相关的类Class, Method,

2021-07-10 06:22:44 149

原创 websocket

webSockethttps://www.jianshu.com/p/2c9be4641d43

2021-07-10 05:51:15 572

转载 client Sdk

client Sdk学习spring.factories在Spring Boot中有一种非常解耦的扩展机制:Spring Factories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。约定当服务的提供者,提供了服务接口的一种实现之后,需在项目的classpath下的META-INF/spring.factories文件中配置该接口的实现类名称,以便程序读取配置文件来实例化。org.springframework.context.ApplicationContextInitia

2021-07-09 13:22:17 792

原创 @Cacheable、@CachePut和@CacheEvict

@Cacheable主要用来配置方法,能够根据方法的请求参数对其结果进行缓存。即当重复使用相同参数调用方法的时候,方法本身不会被调用执行,即方法本身被略过了,取而代之的是方法的结果直接从缓存中找到并返回了。参数介绍:value:缓存的名字,必须指定至少一个。key:缓存的key,可以为空,如果指定要按照SpEL表达式编写;如果不指定,则缺省按照方法的所有参数进行组合。condition:缓存的条件,可以为空,使用SpEL编写,返回true或者false,只有为true才能缓存。例子:

2021-05-30 08:17:32 192

转载 collect中groupingBy多级分组

Product prod1 = new Product(1L, 1, new BigDecimal("15.5"), "面包", "零食"); Product prod2 = new Product(2L, 2, new BigDecimal("20"), "饼干", "零食"); Product prod3 = new Product(3L, 3, new BigDecimal("30"), "月饼", "零食"); Product prod...

2021-05-30 08:16:16 2441

原创 Junit5单元测试

单元测试单元测试是代码正确性验证的最重要的工具,也是系统测试当中最重要的环节。在标准的开发过程中,单元测试的代码与实际程序的代码具有同等的重要性。单元测试是为了保证程序如期望的运行和获得结果,进行一些假定条件和假定结果的一种编程思维。单元测试是为了提高代码质量和可维护性,保证模块修改后的兼容性,可以通过单元测试来判断一个模块在修改后是否与修改前保持兼容、多大程度上不兼容、影响范围有多大。开发者就可以更加专注于模块内部的业务。单元测试无法代替人工的工作,他能够做到的是衡量一个模块修改后会不会影响其他模块的

2021-05-30 08:14:56 2451

原创 a==b Objects.equals(a,b) a.equals(b)

Objects.equals(a,b) public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); }此方法中已经做了非空判断,能避免疏忽和减化代码。a.equals(b) public static boolean equals(Object a, Object b) { return (a

2021-04-19 19:33:01 194

转载 加密解密初体验

加密一般情况下,使用不同语言开发的双方只有约定加密模式和明文填充方式,保证字节序列相同,保证秘钥的生成方式与编码相同,使用相同字符编解码方式等,才可以保证加密双方的互通。一、哈希HASHMD5特点1、不可逆运算2、对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)3、对相同的数据加密,得到的结果是一样的(也就是复制)。4、抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.5、弱抗碰撞 : 已知原数据和其 MD5 值,想找

2021-04-18 10:51:35 206

原创 注解与反射

java.lang.annotation包内置注解@Autowired。。。。源注解@Target描述注解的使用范围。methodtype(类上)@Retention需要在什么级别保存该注解信息,用于描述注解的生命周期。(注解用在什么地方有效)source(只源码级别有效) <class(编译级别仍有效)<runtime(所有都有效)@Inherited子类可继承父类的的该注解@Document说明该注解被包含在javadoc中自定义注解public @

2021-03-14 10:03:15 75

原创 Gson

使用 new Gson()方法作为使用Gson的开始,调用Json操作时,Gson实例不会维护任何状态,并且是显示安全的, 所以可以复用相同的对象来重复Json的序列化和反序列操作。so,应该将gson封装类,声明成静态方法。public class GsonUtil { public static Gson gson = new Gson();}...

2021-02-22 09:08:50 217

原创 复选框选择后转换成集合

前端传入复选值1:汉堡2:奶茶4:薯条8:披萨16:冰淇淋复选为值相加。 int number = bo.getCheckItem();//7为汉堡+奶茶+薯条 List<Integer> items = new ArrayList<>(); for (int i = 0; i < 32; i++) { if (((1 << i) & number) != 0) {

2021-02-20 14:37:33 185

原创 线程池参数配置

代码示例import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class CommonThreadPoolExecutor { private static final int CORE_POOL_SIZE = ?; private static final in

2021-02-06 20:00:50 310

转载 API错误码设计

错误码组成应用标识+功能域+错误类型+错误编码 错误码位数:8位错误码示例:I102P001使用规范:只增不改,避免混乱 应用标识(2位字母和数字)AXXX平台:A1 AXXX平台:A2 VXXX平台:V1ZXXX平台:Z1功能域(2位数字)未分类:00 X1相关:01X2相关:02X3相关:03 错误类型(1位字母)参数错误:P业务错误:B系统错误:S网络错误:N数据库错误:D缓存错误:CRPC错误:R文件IO错误:F其他错误:O 错误编码(3位数

2021-02-04 20:26:18 429 1

原创 Swagger

第一种pom <dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> </dependency>application.ymlswagger: print-init: true enabled: true

2021-01-31 16:26:43 150

原创 Java ThreadPoolExecutor的拒绝策略CallerRunsPolicy

CallerRunsPolicyexecute 去执行新任务,也就是main线程去执行,这种策略会降低新任务提交速度,影响整体性能。main方法 public static void main(String[] args) { ExecutorService es = new ThreadPoolExecutor(2, 2, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnab

2021-01-24 20:52:51 1576

原创 Stream-reduce的使用

提供方法无初始值,返回值可能为空,只有累加器表达式。Optional<T> reduce(BinaryOperator<T> accumulator);T reduce(T identity, BinaryOperator<T> accumulator);第三个参数只有当并行流时才起作用,串行流时,第三个参数无效哦。<U> U reduce(U identity, BiFunction<U, ? s

2021-01-24 06:59:46 368

转载 CompletableFuture使用

CompletableFuture使用在之前多线程的文章中会遇到一些问题: while(!fs.isDone());//Future返回如果没有完成,则一直循环等待,直到Future返回完成 System.out.println(fs.get()); //打印各个线程(任务)执行的结果1)若Future返回没有完成,当前主线程是堵塞的,主线程业务会一直等着。2)轮询调用isDone,不优雅。解决上述问题并应对更多的需要:1)很多个异步线程执行时间不

2021-01-23 08:00:58 481

原创 JAVA多线程五种创建方式

JAVA多线程三种创建方式一、继承Thread类Mythread类/** * @creater keke * @time 2021/1/20 16:48 * @description */public class MyThread extends Thread { @Override public void run() { //通过继承Thread类的方式实现多线程时,可以直接使用this获取当前执行的线程 System.out

2021-01-20 20:54:30 182

转载 springCloud抽取配置文件服务实现多环境配置

配置中心服务Config Server 的搭建创建pom文件 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency

2021-01-18 16:17:42 474

转载 Spring Cloud五大核心组件

链接: Spring Cloud五大核心组件.

2021-01-17 09:25:48 227 1

原创 @Bean使用

Spring配置类注解@Bean用在方法上,生命当前方法返回值为bean,替代xml @Bean(name = "httpsTemplate") public RestTemplate httpsRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException { HttpComponentsClientHttpRequestFactory requestFa

2021-01-17 08:53:35 172

原创 SpringAop @annotation\@Aspect练习

切面记录日志练习切面类@Slf4j@Aspect@Componentpublic class AspectForFeign { @Pointcut("execution(public * com.keke.remote..*Feign.*(..))") public void pointcut() { } @Around("pointcut()") public Object around(ProceedingJoinPoint joinPoin

2021-01-17 08:01:12 506

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除