自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MengW9的博客

心若没有栖息的地方,哪里都是流浪

  • 博客(93)
  • 收藏
  • 关注

原创 Linux判断服务进程存在,存在则重启,不存在则启动

1、查看进程pid通过获取进程pid来判断该进程是否存在ps -ef | grep app.jar | grep -v grep | awk '{print $2}'、ps -ef | grep app.jar  打印出包含 app.jar 的所有进程信息(一行一个进程的信息)grep -v grep  过滤掉包含 grep 字符的行,过滤掉当前的查找进程awk '{print $2}...

2022-04-01 16:00:00 6638

原创 Maven中maven中 maven-clean-plugin 有红色波浪线

【问题展示】Maven中包内Plugins中有红色波浪线:【解决方案】第一步:判断是Plugins中哪一个maven包我们只需要先判断是maven报中下面什么地方有红色波浪线。例如我这里是maven-clean-plugin为红色波浪线。第二步:找到Lifecycle中对应的包选项重新build我们对对应报错的maven 中 clean进行 run maven build得...

2021-05-13 14:00:00 1178

原创 SpringBoot 前端发送请求时间字符串格式化问题

如果后端使用LocalDateTime接收,会直接报错,系统找不到可以对时间格式化的方法。因为前端发送过来的时间默认是字符串的时间,格式如yyyy-MM-dd HH:mm:ss,当然,大多数前后端分离,后端肯定不是用的时间字符串操作,大多都需要转换。一、param请求格式化只需要到请求的字段加格式化注解@DateTimeFormat(pattern = "yyyy-MM-dd H...

2020-12-22 14:07:00 603

原创 Nginx学习(一)

Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好Nginx专为性能优化而开发,性能是其最重要的要求,十分注重效率,有报告Nginx能支持高达50000个并发连接数1、代理正向代理正向代理:局域网中的电脑用户想要直接访问网络是不可行的,只能通过代理服务器来访问,这种代理服务就被称为正向代理...

2020-10-26 18:31:00 161

原创 如何把一个15分钟的程序优化到了10秒

今天这篇文章是讲性能优化的。前段时间我优化了一个程序,感觉收获还是蛮大的,所以总结了一些用到的优化思路,主要集中在代码层面,希望可以和大家一起交流探讨。优化前我们有一个定时任务,循环从数据库捞一批数据(业务上称它为资源)出来处理,一次捞取1000条。处理流程较长,需要查询这批资源的各种关联信息,还要根据组织查询一批用户,根据特定的算法计算出每一条资源需要分发给哪个用户,最后执行分发,...

2020-10-14 19:46:00 184

转载 一次性把Java的四种引用说清楚!

一次性把Java的四种引用说清楚!四种引用的区别其实四种引用的区别在于GC的时候,对它们的处理不同。用一句话来概括,就是:如果一个对象GC Root可达,强引用不会被回收,软引用在内存不足时会被回收,弱引用在这个对象第一次GC会被回收。❝如果GC Root不可达,那不论什么引用,都会被回收❞虚引用比较特殊,等于没有引用,不会影响对象的生命周期,但可以在对象被收集器回收时收到一个系统通知。下面结合案例分别来讲一下四种引用在面对GC时的表现以及它们的常见用途。先设置一下JVM的参数:-Xms

2020-10-13 18:09:00 109

原创 Spring Cache入门

前言今天这篇文章是比较偏“教程”一点的文章。但也由浅入深,认真地分析了源码,并且介绍了一些在使用Spring Cache中常见的问题和解决方案,肯定是比简单的入门文档更有深度一些的,相信大家看了之后会有一定的收获。为什么使用缓存前几天我在文章《我是如何把一个15分钟的程序优化到了10秒的》中,提到了一些在代码层面优化性能的方法。其中第一个就是使用缓存。使用缓存是一个很“高性价比”...

2020-10-12 18:10:00 878

转载 Java8之Optional 判空,简化判空操作

一、导语在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。传统阶层判空为什么要用Optional,它到底是什么东西你也看到了上面的那张图,一旦代码量大起来了,条件多了,代码就会变得很冗余,变得难以维护。那么此时我们就有必要了解Optional了。Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T

2020-10-10 17:02:39 869

转载 Java8之Lambda表达式

一、简介lambda 表达式是在 java8 中新增加的新特性,lambda 表达式其实就是一个匿名函数,有助于帮助开发者对一个接口更好的实现,也可以理解为 lambda 表达式就是用来实现接口中的抽象方法。二、基础语法因为 lambda 是一个匿名函数,而对于一个方法需要关注他的名称、参数类型、个数,返回值。但是由于它是匿名函数,所以对于 lambda 表达式来说就不需要关注他的名称,对于放回值类型也可以省略语法 ( ) -> { } -------------------

2020-10-10 15:59:18 195

转载 Java8之Stream流

Java8之Stream流​ Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定

2020-10-10 10:00:51 133

原创 解决Parameter 'xxxList' not found. Available parameters are [Collection,list]

在使用foreach语句时会经常报Parameter ‘ordersList’ not found. Available parameters are [Collection,list] 这个错误,造成这个错误的主要原因写法错误:请看错误实例mapper接口中List<Orders> selectKeyList(List<Integer> ordersLis...

2020-09-25 16:53:00 2635 2

原创 Linux系统下jar包的多种启动方式

一、启动jar包Linux 运行jar包命令如下:方式一:java -jar shareniu.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二java -jar shareniu.jar &&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。继续改进,如...

2020-09-23 20:19:00 1695 2

原创 MySql外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL

名称解释CASCADE:级联模式,父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:置空模式,父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;N...

2020-09-18 17:47:00 334

原创 kubernetes概述

一、简介1、介绍​ 服务编排工具k8s,kubernetes其实源于希腊语意思(舵手,领航员)。犹豫不太好挤也不太好写,就有了另一个名称叫k8s,kubernetes是谷歌在2014年开始实施的一个项目,当时google已经有了大规模服务容器管理的经验,内部Borg系统,负责对google内部的一些服务进行调度和管理,它的目的是让用户不必操心资源管理的问题,让他们专注自己的核心业务...

2020-09-09 17:02:00 195

原创 redis反序列化报错解决

异常:Cannot serialize; nested exception isorg.springframework.core.serializer.support.SerializationFailedException:Failedto serialize object using DefaultSerializer; nested exception isjava.io.N...

2020-08-26 18:53:00 770

原创 Java实现InputStream流的复制

​ 获取到一个inputstream后,可能要多次利用它进行read的操作。由于流读过一次就不能再读了,而InputStream对象本身不能复制,而且它也没有实现Cloneable接口。实现思路:1、先把InputStream转化成ByteArrayOutputStream2、后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来代码实现...

2020-08-20 15:12:00 610

原创 Java正则表达式匹配的坑

今天在判断字符串是否存在某个字符串,直接用String.matches(regex),死活匹配不出来,在线正则工具用了很多都是可以的,后面找到问题,总结一下,防止再次踩坑。一、前提java中判断一段字符串中是否包含某个字符串的方式:1、String.matches(regex);阅读源码发现,这个方法本质是调用了Pattern.matches(regex, str),而该方...

2020-08-19 18:27:00 435 1

原创 编码技巧

编码技巧1、字符串变量和字符串常量equals的时候将字符串常量写在前面这是一个比较常见的小技巧了,如果有以下代码:String str = "123";if (str.equals("123")){...}建议修改为:String str = "123";if("123".equals(str)){ ...}这么做主要是可以避免空指针异常idea常用快捷键Ø T...

2020-08-06 08:59:00 173

原创 Java开发过程中的技巧

①不能相信调用端。重要的参数都要先做验证,即使是非空值也需要做验证,不符合条件的就要直接返回或抛异常,不能参与业务 SQL 的查询,否则频繁的访问也会对服务造成负担。②SQL 语句要先做性能查询。对于数据量大的表,建好索引后,所有的 SQL 查询语句要用 explain 检测性能,并且根据结果来进一步优化索引。③代码必须要 Review。尤其是像空值这种细小的错误在 Java 里可以...

2020-08-04 17:11:00 114

原创 Java8 将List<JavaBean>中某个属性取出来为单独的一个集合List<String>

有很多时候我们会遇到这样的场景,就是要将一个list中的某一个元素中的某一属性单独拿出来放在一个新的list里面,这中时候,我们就可以用以下的方法来进行实现:List<Bean> items = new ArrayList<>();List<String> collect = items.stream().map(Bean::getName).co...

2020-07-16 17:03:00 2959

原创 mysql建立索引的一些小规则

1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索...

2020-07-15 13:57:00 290

原创 MyBatis-Puls条件构造器

MyBatis-Puls条件构造器官方文档:baomidou条件构造器查询方式说明setSqlSelect设置 SELECT 查询字段whereWHERE 语句,拼接 + WHERE 条件andAND 语句,拼接 + AND 字段=值andNewAND 语句,拼接 + AND (字段=值)orOR 语句,拼接 + OR 字段=值...

2020-06-05 11:55:00 110

原创 mysql查询非重复的行内容,不重复的记录数count(distinct xx)

mysql查询非重复的行内容,不重复的记录数count(distinct xx)count去重id, p_id, p_name , p_content , p_time1 343 aaa aaaaaa 2012-09-012 344 bbb bbbbbb 2012-09-023 321 ccc ccccccc...

2020-06-05 11:52:00 492

原创 优雅的参数校验 Preconditions

Google Guava中提供了一个Preconditions类,用于校验入参的正确性一、引入Java maven项目引入<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency> <groupId>com.google.guava&lt...

2020-05-22 16:43:00 243

原创 IDEA常用快捷键

说IDEA对新手来说难,可能其中一个原因就是快捷键组合多而且复杂但是它也很全,基本所有功能都可以通过快捷键来完成,可以这么说,如果你掌握了所有IDEA的快捷键使用,那么你完全可以丢掉鼠标,而且不影响开发效率。一、Ctrl 快捷键Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)C...

2020-05-21 17:57:00 56

原创 Maven多仓库配置(公司仓库和阿里云仓库)

Maven多仓库配置(公司仓库和阿里云仓库)一、之前的配置之前maven本地的setting.xml的仓库配置,都是直接设置mirror节点<mirrors> <mirror> <id>aliyun</id> <name>aliyun</...

2020-04-06 16:07:00 855 2

原创 SQLite时间戳格式,在springboot报转换异常

SQLite时间戳格式,在springboot报转换异常数据库定义: gmt_create 类型datetime需要在application.yml数据库url里面加上url: jdbc:sqlite:target/classes/doc/local.db?date_string_format=yyyy-MM-dd HH:mm:ss实体类...

2020-04-03 22:07:00 645

原创 MyBatis映射异常:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter...

MyBatis映射异常:nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getternested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for p...

2020-04-02 18:21:00 720

原创 MyBatis的两个内置函数

MyBatis的两个内置函数1、_parameter 代表整个参数单个参数,_parameter 就是这个参数多个参数 会被封装成一个map,_parameter就是代表这个map例如接口中有一个方法 public List<Employee> getEmpsTestInnerParameter(Employee employee);_parameter就代表em...

2020-04-02 17:18:00 317

原创 Adb文件及文件夹操作命令

1.创建文件夹:adb shell mkdir /data/local/tmp/local多级的一次只能创建一级adb shell mkdir /data/local/tmp/local/tmp2.查看文件夹及下面内容:adb shell ls /data/local/tmp/local/tmp结果:No such file or directory 说明文件夹不存在;否则,...

2020-04-02 09:58:00 16446 2

原创 Linux断网安装jdk1.8

1.创建目录存放jdk包mkdir /usr/java2.上传jdk包通过xftp或者其他远程工具3.解压jdktar zxvf jdk-8u221-linux-x64.tar.gz4.打开配置文件vi /etc/profile在配置文件中加入export JAVA_HOME=/usr/java/jdk1.8.0_221 export CLASSPATH=.:$J...

2020-01-20 18:35:00 172 1

原创 Linux 断网安装MySQL5.x操作步骤

1.下载MySQL安装包由于官网下载比较慢,暂时我这边采用的方法是通过网易云的centos镜像下载的地址是http://mirrors.163.com/mysql/Downloads/MySQL-5.7/然后手动下载 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz 文件通过xftp或者其他工具上传到 /usr/local 目录下面然后开始...

2020-01-20 18:34:00 221

原创 Mysql连接出现时区问题

错误提示:The server time zone value ‘¥x¥_¼Ð·Ç®É¶¡’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration pr...

2020-01-19 11:43:00 737

原创 IntelliJ IDEA为类和方法自动添加注释

阅读正文:1、为类添加自动注释模版File-->Settings-->Editor-->File and Code Templates/** * @author :mengw9 * @date :Created By ${DATE} ${TIME} * @description:${description} * @modified B...

2020-01-14 17:20:00 152

原创 FastJSON将Java对象转为json,日期显示时间戳未格式化解决办法

JSON版本:FastJsonJava 对象转换为 JSON 格式定义以下 Person JavaBean:public class Person { @JSONField(name = "AGE") private int age; @JSONField(name = "FULL NAME") private String fu...

2020-01-11 14:21:00 277

原创 Git统计代码量

统计代码行数命令如下:git log --since ==2017-04-10 --until=2017-07-10 | wc -l1822其他的命令(以下来自于网络):统计某人的代码提交量,包括增加,删除:git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{...

2020-01-10 17:43:00 363

原创 分享在开发多终端使用比较多的Adb命令

分享在开发多终端或者涉及PC-Android的传输使用比较多的Adb命令查看连接的设备adb devices列出设备安装的软件包adb shell pm list packages使用这个方法可以自定义判断是否有这个包,然后判断是否有安装这个软件。查找文件名adb shell ls [文件名]和上面安装包类似,可以通过判断是否有这个文件,用于操作文件前的判断,避免报...

2020-01-07 16:38:00 137

原创 MyBatis中使用selectKey,返回结果一直是1

MyBatis中使用selectKey,返回结果一直是1,结合这个问题,笔记一下selectKey标签以及问题的原因先说需求,向数据库插入一条记录,表的id是自增的,插入以后返回插入记录的id下面是xml文件中的插入的sql<insert id="insertCompete" parameterType="CompetesWithBLOBs"> insert...

2019-12-30 16:56:00 222

原创 MyBatis 处理sql中的 大于,小于,大于等于,小于等于

MyBatis中的sql语句中的 “<” 和 “>” 号要用转义字符 “<” 和 ”>“ ,否则会报错!如查找年龄大于等于指定年龄的用户信息:SELECT * FROM T_USER WHERE AGE &gt;=#{age}进行转义:原符号<<=>>=&'"替换符号<&...

2019-12-27 10:37:00 1499 1

原创 java中通过Adb判断PC是否连接了移动设备

最近用到PC端和移动端通过USB连接传输数据的方式,于是总在使用Adb命令,为了逻辑的严谨和代码容错,想在传输数据的之前,PC和移动端先建立一次会话,防止移动端还未连接就直接传输数据会报错,找了很久并未发现这类方法,于是自己在代码里面通过Adb实现了这个方法。供大家参考,欢迎大家有更好的实现方式多多交流。直接上代码/** * @Description: 判断是否连接设备...

2019-12-20 14:51:00 741

空空如也

空空如也

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

TA关注的人

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