自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 jdk1.8新特性对相关对集合的操作

【代码】jdk1.8新特性对相关对集合的操作。

2023-09-05 16:40:33 131

原创 解析json数据导出某个字段的值到excel(记录)

【代码】解析json数据导出某个字段的值到excel(记录)

2023-08-03 10:16:40 246

原创 手撸一个动态Feign,实现一个“万能”接口调用

当调用sytem微服务的时候,传递一个feignclient的name为system进去,然后定义一个通用的方法,指定调用的url,传递的参数,就可以了呢?对于fegin调用,我们一般的用法:为每个微服务都创建对应的feignclient接口,然后为每个微服务的controller接口,一一编写对应的方法,去调用对应微服务的接口。,为调用该接口所传递的参数,这里加了@RequestBody,那对应的controller接口,接收参数也需要加上该注解。好了,具体的操作步骤,就是上面所说的了!

2023-02-13 16:18:33 3770 1

原创 linux配置jdk1.8

```

2022-08-30 13:48:14 769

转载 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透描述:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-valu

2022-03-18 11:55:14 251

原创 Windows关闭指定端口命令

假设要关闭端口号为8175,使用下面的命令,查出此端口号对应的PIDnetstat -ano|findstr 8175上图红框内的 4388就是8175端口对应的PID,再使用下面的命令就可以关闭这个端口了taskkill /PID 4388/F

2022-03-02 09:58:08 3996

原创 mysql5.7安装教程(linux)

1、系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql2、下载mysql在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:执行如下命名:#mkdir /data/software#cd /data/software–下载安装包–建议:在windows上使用迅雷下载,速度很快(

2022-01-10 11:26:48 397

原创 定时任务@Scheduled(cron = “* * * * * *?“) 表达式详解

cron表达式格式:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}cron表达式各占位符解释:{秒数}{分钟} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常“*” 代表每隔1秒钟触发;“,” 代表在指定的秒数触发,比如”0,15,45”代表0秒、15秒和45秒时触发任务“-“代表在指定的范围内触发,比如”25-45”代表从25秒开始触发到45秒结束触发,每隔1秒触发1次“/”代表触发步进(

2021-12-29 14:29:46 2264

原创 微信分享功能问题-描述内容换行,导致js加载失败

jsContent内容存在换行符,导致js处理失败,解决办法,在后台接口中替换’/r/n’为空,并截取前30位weiXinJsSdk.setSharcontent(StringUtils.isNotEmpty(data.getProfiles()) ? data.getProfiles().replaceAll("\r\n", “”).substring(0, 30) : “”); //微信分享 StringBuilder sb = new StringBuilder("https:/

2021-12-10 14:30:30 1123

原创 es大量数据导入效率优化

项目需求中,简历信息涉及10张表,需要联查获取组装数据,实测,查询一条数据需要5s,大概算了一下总时间的话需要60个小时左右导入完成。优化方法:数据分段+多线程1、10万条数据为例,数据分成10份,每一份10000条;2、每一份数据起一个线程,10个线程,代码大致如下:public Result putAllJobUserInfo() throws ExecutionException, InterruptedException { long l = System.currentT

2021-10-20 18:20:40 1355

原创 自动生成mybatisplus的相关代码

导入对应的jar包,这就不用多说了package com.app.appapi.generatorcode;import com.baomidou.mybatisplus.core.toolkit.StringPool;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.InjectionConfig;import com.baomidou.mybati

2021-09-16 16:10:23 177

原创 Mybatis的SQL注入

Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成。编写xml文件时,MyBatis支持两种参数符号,一种是#,另一种是$。比如:<select id="queryAll" resultMap="resultMap"> SELECT * FROM NEWS WHERE ID = #{id}</select>#使用预编译,$使用拼接SQL。Myb

2021-07-13 11:55:11 5594

原创 layui中接收modelView中返回的对象并赋值给容器

后端直接返list,不用转成json串layui前端一般都是data:***,如下图重点来了

2021-03-22 10:42:42 1562

原创 后端处理方式:特殊格式时间转换(2020-11-27T02:58:41.000000Z)

注意:使用dealDateFormat方法处理(2020-11-27T02:58:41.000000Z)这类时间类型后会出现和实际时间相差8小时,所以需要在处理之前加8小时(使用hourAddNum3方法处理)// 使用dealDateFormat处理这种类型的时间后会缺8个小时,需要加8小时DateUtil.dealDateFormat(DateUtil.hourAddNum3("2020-11-27T02:58:41.000000Z",8))import java.text.DateForma

2021-03-01 18:02:11 792 6

原创 微信生成专属海报(专属二维码)

通过get请求获取专属海报 /** * 获取专属海报 * * @param mid 会议编号 * @param openId 邀请人唯一码 * @return */ @SneakyThrows @ApiOperation(value = "获取专属海报", notes = "获取专属海报") @RequestMapping(value = "/getOwnPoster") public ModelAn

2021-03-01 17:29:27 1009

原创 前端处理方式:特殊格式时间转换(2020-11-27T02:58:41.000000Z)

前端js处理特殊时间格式(2020-11-27T02:58:41.000000Z): //特殊格式时间转换(2020-11-27T02:58:41.000000Z) function timeChange(UTCDateString){ if (!UTCDateString) { return '-'; } function formatFunc(str) { return str > 9

2021-02-03 09:44:06 669

原创 springboot 使用spring的线程池异步执行

springboot异步执行1.启动类在这里插入代码片@SpringBootApplicationpublic class ThreadStudyApplication { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(ThreadStudyApplication.class); springApplicat

2021-01-15 09:49:22 307

原创 微信网页授权获取用户信息实战代码

微信授权的整体思路:1 第一步:用户同意授权,获取code2 第二步:通过code换取网页授权access_token3 第三步:刷新access_token(如果需要)4 第四步:拉取用户信息(需scope为 snsapi_userinfo)5 附:检验授权凭证(access_token)是否有效微信授权官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization

2021-01-14 14:36:54 587 3

原创 sql先排序后去重

https://www.cnblogs.com/dsj2016/p/10679366.html注意对时间进行排序时,需要取最大值MAX(createTime) DESCSELECT TOP 10 orgName FROM Test_Report_log WHERE renCode = '0000' GROUP BY orgName ORDER BY MAX(createTime) DESC;

2020-12-28 16:51:22 1095

原创 读取*.properties文件的配置信息

FileName:配置文件的文件名(带后缀)key:想要读取配置文件中的关键字key(如下图红框中的key) public static String GetValues(String FileName, String key) throws IOException { Properties properties = new Properties(); // 使用InPutStream流读取properties文件 String path = RuntimeEnv.getInstance()

2020-12-15 15:27:40 338 1

原创 java两个项目之间通过webservice调用-源码仅供参考

项目1、本项目为struts2项目所以需要配置配置文件applicationcontex-cxf.xml配置<!-- 定义具体实现的 Bean ,这个 Bean 的定义与 Spring 普通的 Bean 定义是一样的 --> <bean id="webServiceInterface" class="com.git.easyloan.picc.fpdb.piccservice.impl.WebServiceInterfaceImpl" /> <jaxws:serv

2020-10-20 16:36:53 494

原创 IDEA导入javaWeb项目注解爆红问题

出现此问题的原因一般都是jar包没有被扫描到;解决办法:1、在idea的设置里面如图:如果有多个jar包文件夹就都给加进来2、一般jdk版本正确的话,这样选择后重新编译完就应该好了,如果还有问题,那就是jdk版本有问题了,那就更换一下jdk版本试试,如图选择你本地的jdk路径,点击ok修改这两个地方,然后点击apply,再点击ok。这样应该就好了。...

2020-10-13 14:05:59 2374

原创 oracle—“操作记录已被里一个用户锁住” 解决办法

查询锁住sessionSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid;锁表释放sessionALTER system kill session '537, 52813';

2020-09-08 13:03:43 291

原创 面试问sql优化怎么回答

(1)最重要的是尽量避免全表扫描”(2)适当的创建索引,考虑在 where 及 order by 涉及的列上建立索引(把所建的索引所用列名,用在where语句中,并尽量在条件的最右边,索引相关知识:https://www.jianshu.com/p/f588c41f1cb5)(3)尽量避免在 where 子句中对字段进行 null 值判断、使用!=或<>操作符、使用 or 来连接条件、对字段进行函数操作等(4)in 和 not in 也要慎用,否则可能会导致全表扫描(5)很多时候用 ex

2020-09-07 15:56:46 1318

原创 lock和synchronized的区别

lock是一个接口,而synchronized是java的一个关键字,synchronized是内置的语言实现;(具体实现上的区别在《Java虚拟机》中有讲解底层的CAS不同,以前有读过现在又遗忘了。)synchronized在发生异常时候会自动释放占有的锁,因此不会出现死锁;而lock发生异常时候,不会主动释放占有的锁,必须手动unlock来释放锁,可能引起死锁的发生。(所以最好将同步代码块用try catch包起来,finally中写入unlock,避免死锁的发生。)lock等待锁过程中..

2020-09-04 15:49:26 581

原创 replaceFirst、replaceAll、replace区别

replace、replaceAll和replaceFirst是Java中常用的替换字符的方法,它们的方法定义是:replace(CharSequence target, CharSequence replacement) ,用replacement替换所有的target,两个参数都是字符串。replaceAll(String regex, String replacement) ,用replacement替换所有的regex匹配项,regex很明显是个正则表达式,replacement是字符串。re

2020-09-03 15:02:08 1224

转载 基本数据类型和包装数据类型的使用标准

【强制】所有pojo类属性必须使用包装数据类型;【强制】RPC方法的返回值和参数必须使用包装数据类型;【推荐】所有局部变量都推荐使用基础数据类型。这里建议我们使用包装类型,原因是什么呢?举一个扣费的例子,我们做一个扣费系统,扣费时需要从外部的定价系统中读取一个费率的值,我们预期该接口的返回值中会包含一个浮点型的费率字段。当我们取到这个值得时候就使用公式:金额*费率=费用 进行计算,计算结果进行划扣。如果由于计费系统异常,他可能会返回个默认值,如果这个字段是Double类型的话,该默认值为nul.

2020-09-03 14:30:56 459

转载 pojo类中的布尔类型的变量为什么不能加is

【强制】 POJO类中的布尔类型的变量,都不不要加is,否则部分框架解析会引起序列化错误。反例:定义为基本数据类型boolean isSuccess;的属性,他的方法也是isSuccess();RPC框架在反向解析的时候,会误认为对应的属性名称是“success”,而不是所定义的isSuccess,导致属性获取不到,进而抛出异常。那么,为什么会有这样的规定呢?我们看一下POJO中布尔类型变量不同的命名有什么区别吧。示例:class Model1 { private Boolean isS

2020-09-03 14:18:47 580

转载 自动拆装箱的那些事

哪些地方会自动拆装箱(比较有意思的是场景四)场景一、将基本数据类型放入集合类我们知道,Java 中的集合类只能接收对象类型,那么以下代码为什么会不报错呢?List<Integer> li = new ArrayList<>();for (int i = 1; i < 50; i ++){ li.add(i);}将上面代码进行反编译,可以得到以下代码:List<Integer> li = new ArrayList<>();for

2020-09-03 14:09:13 192

原创 springboot和springcloud及常用注解积累

@SpringBootApplication是springboot启动类,包括三个注解(@ComponentScan && @Configuration && @EnableAutoConfiguration),他们的作用分别是:@Configuration: 表示将该类作用springboot配置文件类@EnableAutoConfiguration:表示程序启动时,自动加载springboot默认的配置@ComponentScan:表示程序启动是,自动扫描当前包及子

2020-09-02 14:48:26 331 1

转载 oracle数据库数据表误删后,恢复数据处理方式

有两种方案解决此问题,具体操作:一:根据时间来恢复:1、查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;2、查询删除数据时间点之前的数据select * from 表名 as of timestamp to_timestamp(‘2016-08-11 16:12:11’,‘yyyy-mm-dd hh24:mi:ss’);(若

2020-08-20 10:32:28 306

翻译 记录一下很好用的java爬虫代码-很有意思,原理也很简单,一看就懂

**主要功能是:**爬取百度图片中的图片,一键下载功能就是这样,根据输入的关键字不同,自动下载不同的图片,当然,这些图片都是从百度图片中爬取出来的。思路随便输入一个关键字,百度图片就会展示出很多图片F12打开控制台,看源码,找到图片的地址,多看几个,会发现规律都一样。规律还是很容易简单的吧,写一个简单的正则表达式 https://.*?0.jpg 当然,可以写得更准确,但是这个已经够用,就不写那么精确了。剩下的就简单了,利用java中的URL这个类和IO流,把展示很多图片的那个页面给读出成一个

2020-08-07 11:16:18 344

原创 解决wps如何只复制标题文字(不复制正文)

office好像提供直接右键点击标题选择复制。本地没有office不做过多阐述,重点说一下wps的这个问题。公司有一个项目的数据结构文档,很大上千张表,包含数据结构等其他内容,现在是要这个文档中的所有表名;**解决方案:**将文档生成目录,直接把目录中需要的部分复制出来,这样就获取到表名了(前提是表名要是任意级别的标题)。...

2020-07-13 16:43:05 4805

原创 List、Map、Set三个接口,存取元素时,各有什么特点

【Java面试题】List、Map、Set三个接口,存取元素时,各有什么特点?List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。Set里面不允许有重复的元素,存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果...

2020-01-16 17:15:42 3567

原创 *福音*阿里云redis5.0.*集群搭建及java代码测试详细(终于不用ruby了)

redis集群搭建:1.​​​​CentOs命令如下:wget http://download.redis.io/releases/redis-5.0.6.tar.gz tar xzf redis-5.0.6.tar.gz cd redis-5.0.6 yum install gcc make MALLOC=libc cd src && make insta...

2019-11-28 10:59:55 430

原创 面试经常问的:mybatis的执行流程(比较简洁)

mybatis的执行流程在网找了好多,说的都很详细,但是太多不太简洁,看以下代码就懂了:实际流程大概就是注释的那几句话,面试的时候就这么说就行1、获取mybatis配置文件并读取配置2、获取sqlsessionfactory,并获取实现类(DefaultSqlSessionFactory)3、 通过调用会话工厂的实现类中(DefaultSqlSessionFactory)的openS...

2019-11-26 17:21:47 753

原创 java.net.UnknownHostException 未知的名称或服务

在服务器上部署jar包或者war包时遇见类似:“**java.net.UnknownHostException 未知的名称或服务”**这个的错误,百思不得其解,总以为是项目代码里面有哪个配置或者什么写错了,但是百度了一圈终于得知是服务器的主机地址没有绑定ip地址,也是醉了!!!!!!!!解决办法:获取主机名的命令:hostnamevi /etc/hosts添加一行:你的服务器ip地址 你...

2019-11-22 09:45:00 4606

原创 通俗易懂RESTful,如何设计RESTful风格API

REST – REpresentational State Transfer 直译:表现层状态转移。这个中文直译经常出现在很多文章中。尼玛,谁听得懂“表现层状态转移”,这是人话吗?那就逐个单词来理解REST名称REST – REpresentational State Transfer首先,之所以晦涩是因为前面主语被去掉了,全称是 Resource Representational Stat...

2019-11-18 10:30:34 302

原创 java判断一个字符串是否为空,isEmpty和isBlank的区别

实际应用中,经常会用到判断字符串是否为空的逻辑比较简单的就是用 Str != null && Str.length() >0 来判断其实很多java工具集都是有包装好的接口可以使用的比如 StringUtils.isEmpty(String str) 和 StringUtils.isBlank(String str)isEmpty和isBlank的区别在于i...

2019-08-26 09:38:08 441

原创 centos7永久修改ip地址

1、 使用NAT的网络模式虚拟机关机状态下,点击“编辑虚拟机设置”,“网络适配器”,选择“NAT模式”2、开启虚拟机,修改配置文件输入如下命令 vi /etc/sysconfig/network-scripts/ifcfg-ens33出现下面信息TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcpDE...

2019-08-23 09:56:24 1108

吃鸡鼠标宏(完美适合罗技402和502)

完美适应G402等5键以上鼠标,鼠标支持编写脚本或者导入文件功能,默认开启单倍镜压枪模式,大写锁定键用于切换4、6倍模式,鼠标中设置好设置为“设置永久配置文件”,可根据自己习惯修改脚本,使用犯法,直接将内容复制进“编写脚本”中

2019-06-23

DB2错误代码.txt

sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +100 02000 没有找到满足SQL语句的行 +110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统 +111 01590 为2型索引设置了SUBPAGES语句 +117 01525 要插入的值的个数不等于被插入表的列数 +162 01514 指定的表空间被置为检查挂起状态

2019-05-15

Sublime Text3(windows版和Mac版)

Sublime Text 是一款流行的代码编辑器软件,也是HTML和散文先进的文本编辑器,可运行在Linux,Windows和Mac OS X。也是许多程序员喜欢使用的一款文本编辑器软件。

2017-09-20

基于java开发的山寨QQ

基本功能和QQ类似。首先,系统分为两大部分,第一部分是客户端,是用户使用的部分,第二部分就是服务器,所有的客户端都是通过服务器来进行用户身份验证及聊天转接的。客户端提供主要的界面及服务请求,如:登录界面、注册界面、找回密码界面、主窗体界面、聊天界面、信息查看界面等。客户端主要提供服务请求界面,核心的业务逻辑处理主要由服务器提供,并向客户端发送请求的结果。同时,服务器要能提供服务的开启、关闭功能及查看在线人数及客户端登录日志。

2017-09-12

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

TA关注的人

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