- 博客(28)
- 收藏
- 关注
原创 Linux下查找cpu占用最大的线程
1、我们使用top命令查找java命令下cpu占用最高的进程:例如pid为9595的进程是占用cpu使用率最大的。2、使用 top -H -p 9595 查看当前pid为9595进程下各线程占用cpu情况我们现在看到,pid为10034的线程占用我们cpu是最高的3、将线程的pid由10进制转成16进制3、我们把进程的全部堆栈信息导入到临时文件中4、通过16进制的线程id去临时文件中查看数据输入 /线程id 找到我们刚才发现的最耗cpu的线程堆栈,查看原因
2020-12-22 17:59:57
2459
1
原创 后端解决跨域问题的方案
1.使用过滤器的方式,拦截所有请求,往响应头设置参数@Component@WebFilter(filterName = "corsFilter", urlPatterns = "/**")public class CorsFilter implements Filter { @Override public void init(FilterConfig filterConfig) {} @Override public void doFilter(Servlet
2020-10-16 23:08:31
379
原创 解决 Creation of SecureRandom instance for session ID generation 耗时太久问题
SpringBoot +SpringSecurity项目重新启动的时候,内置tomcat重新加载配置,用户第一次登陆的时候,接口特别慢,甚至超时。日志显示一条WARN级别日志值得注意:org.apache.catalina.util.SessionIdGeneratorBase - Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [19,665] milliseconds.问题说明
2020-09-09 20:31:08
4305
原创 IO操作中flush()方法作用
在对IO进行写操作时,我们一般都先会用到flush()方法,然后再代用close()方法关闭流。PrintWriter out = response.getWriter(); out.write(objectMapper.writeValueAsString(ResultUtil.successOf(ResultEnum.LOGIN_ELSEWHERE))); out.flush(); out.close();在我们使用缓冲区进行写操作时,程序会先把
2020-08-18 14:16:57
4338
原创 Spring切面编程获取HttpServletRequest和HttpServletResponse
在切面编程的时候,HttpServletRequest和HttpServletResponse是不属于传入的参数范围的。这个时候怎么获取request和response参数呢?HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();//获取requestHttpServletResponse response = ((Ser
2020-07-23 17:10:51
3489
转载 JAVA中锁有哪些?
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。 公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁...
2020-07-21 11:25:18
136
原创 接口验参(优雅地写代码)
使用@Validated注解标识验参:@Validated@RestController@RequestMapping("/api")public class DataController { @PostMapping("/insert") public String insert(@RequestBody @Validated User user){ return "通过验证"; } @GetMapping("/get") publi
2020-07-10 11:45:09
301
原创 Java多线程(一)线程的创建
Java创建线程的方式有两种①继承Thread类重写run()方法/** * Created by hewenhao on 2020/5/12 * Description 线程创建方式-:继承Thread类,重写run()方法 */public class ExtendsThread extends Thread{ @Override public void run() { System.out.println("线程id:" + Thread.curr
2020-05-12 11:58:44
168
原创 Java多线程(守护线程)
线程分为用户线程和守护线程。守护线程相当于用户线程的保姆,只要存在一个用户线程,守护线程就得随时待命。(PS:典型的守护线程就是JVM中的垃圾回收线程(GC)。)如果用户线程都退出了,守护线程就会自动退出,不管他是否在执行任务。守护线程不能进行IO和读取数据库操作。如何创建守护线程?Thread thread = new Thread();thread.setDa...
2020-04-30 17:12:23
164
原创 使用 logstash将mysql数据同步到ElasticSearch
1、linux环境安装logstash①官网下载压缩包,解压安装(安装不难,大同小异,可参考我以前linux安装的博客)2.在config目录下新建mysql.conf文件input { jdbc { #jdbc驱动包位置 jdbc_driver_library => "mysql-connector-java-5.1.38.jar"...
2020-04-07 16:47:55
211
原创 ElasticSearch可视化工具 Kibana在linux环境安装
1、在linux系统安装Kibana①官网下载压缩包,解压安装(安装不难,大同小异,可参考我以前linux安装的博客)②修改config文件夹下的kibana.yml文件server.port: 5601 (端口号)server.host: "*.*.*.*" (自己服务器的ip地址,如果有内网ip写内网ip)elasticsearch.url: "http://*.*.*.*...
2020-04-07 16:39:21
428
2
原创 ElasticSearch在Linux环境上搭建
1、在linux系统安装es①官网下载压缩包,解压安装(安装不难,大同小异,可参考我以前linux安装的博客)②修改config文件夹下的elasticsearch.yml文件#配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。cluster.name: my-es (自定义的名字,连...
2020-04-07 16:28:33
199
原创 Linux系统下项目出现Could not initialize class javax.imageio.ImageIO错误
修改tomcat bin目录下的 catalina.sh 文件在文件大概35%内容附近 加上JAVA_OPTS="-Djava.awt.headless=true"
2020-02-14 19:17:03
3498
原创 SpringBoot使用EasyPoi实现Excel文档导出
1、添加依赖<!--EasyPoi导入导出--> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <versi...
2019-12-26 17:36:44
683
原创 SpringBoot 整合异步任务
第一步:在启动类添加开启异步任务注解第二步:新建一个异步任务类,使用@Component注解将类交给Spring管理,@Async表示该方法启用异步方式3、test包新建测试类执行结果如下:从结果看来异步任务开启成功。你们也可以将@Async注解从方法上删除后测试看下效果,是没有了异步效果的,我这里就不展示了。...
2019-12-26 14:27:11
185
原创 SpringBoot 整合定时任务
第一步:在SpringBoot启动类上加上开启定时任务注解第二步:新建任务类,添加@Component注解将类交给Spring管理,具体方法使用@Scheduled+corn表达式指明具体执行计划执行结果:...
2019-12-26 13:58:09
126
原创 SpringBoot 参数验证 + 全局异常
我说的这一种是在传入对象参数验证:注意:@Valid 和 BindingResult 是一一对应的,如果有多个@Valid,那么每个@Valid后面跟着的BindingResult就是这个@Valid的验证结果,顺序不能乱如果绑定结果有错误,则抛出一个业务异常。(这边我们自己定义一个业务异常类)这边异常的code可以是自己定义的一些枚举类型再定义一个全局异常类,对全局异常进...
2019-12-26 11:12:39
659
3
原创 SpringBoot AOP切面
AOP切面编程,可用于日志管理,今天在网上学了一套,自己写篇博客记录一下。第一步添加Maven依赖:(aop用于切面编程,lombok简化开发,lombok有兴趣自己去了解一下)这是我目录的具体结构:在aspect文件夹新建HttpAspect文件:@Slf4j注解是lombok包下的,为该类提供日志,效果跟 private static final Log...
2019-12-25 18:46:37
170
原创 String.spilt的一个意外发现
今天在工作的时候,发现代码存在一些问题,于是有了下面的发现。StringBuilder 中存了一个空字符串,空字符串经过逗号分割后,输出的数组长度原以为会是0,后来发现输出1,查看源码发现split方法在没有匹配到符合的数据时会自动添加一个空字符串到数组中,所以显示长度为1...
2019-08-29 00:24:58
175
原创 linux安装mongodb
1、下载mongodb安装包,我下的是mongodb-linux-x86_64-3.2.22.tgz2、解压 tar -zxvf mongodb-linux-x86_64-3.2.22.tgz -C /usr/local 到 /usr/local目录3、mv mongodb-linux-x86_64-3.2.22 mongodb 更改目录名称为mongodb4、vi /etc/prof...
2019-08-12 13:57:00
169
原创 linux安装zookeeper
1、官网下载zookeeper压缩包2、上传压缩包到linux,在/usr/local mkdir zookeeper目录3、解压到zookeeper目录 tar -zxvf 压缩包名称 -C /usr/local/zookeeper4、cd 到zookeeper的conf目录 cp zoo_sample.cfg zoo.cfg5、cd 到zookeep...
2019-07-15 10:29:16
93
原创 linux安装dubbo
安装dubbo前提是linux下有tomcat,tomcat安装教程在我的另一篇博客。1、下载dubbo-admin war包2、cd 到tomcat目录3、rm -rf webapps/ROOT 清除掉ROOT文件夹及其下面的文件4、unzip war包名称 -d webapps/ROOT (注意ROOT全大写)5、如需改动dubbo配置cd /webapps/ROOT/...
2019-07-15 10:22:00
369
原创 linux下安装tomcat
1、tomcat官网下载压缩包2、上传压缩包到linux打开sftp,然后直接拉压缩包进去即可(压缩包默认拉到/home/bbb(bbb是当前用户名),即~目录)3、进入到/usr/local目录 mkdir一个tomcat文件夹(可能会提示没有权限,需要su命令+输入密码更改当前权限)4、解压 到tomcat目录tar -zxvf 压缩包名称 -...
2019-07-15 10:14:49
86
原创 SpringBoot热部署
在pom.xml文件添加依赖:在application.properties添加配置内容:还有一点要注意,eclipse必须开启项目自动编译功能,否则不成功。以上操作可行仅针对Eclipse,Idea好像还要装一个插件。...
2019-06-11 14:12:58
92
原创 新建Maven项目写SpringBoot,Controller返回指定页面找不到解决方案
今天在学习SpringBoot框架的时候,新建一个maven项目去写SpringBoot,在写controller的时候,运行发现页面显示错误在controller里面输出语句,在控制台是可以看到的,证明有进入controller。将@Controller改为@RestController,运行可以看到能返回指定字符串到页面但是为啥@Controller不行呢,后来发现,用新建ma...
2019-06-11 11:27:29
2210
原创 Java for循环迭代list移除元素不成功
今天在编码的时候,发现一个问题,使用for循环迭代list,然后在迭代的过程中判断某些条件,符合情况就remove掉,但是发现一些符合条件的对象并没有被删除,后来得知,for循环迭代list进行修改的话,下标会不稳定,导致元素并不能如愿进行操作。需要使用迭代器Iterator迭代list并进行操作。如图操作,如愿以偿。...
2019-06-05 14:06:46
397
原创 前端页面使用Jquery序列化表单,controller用对象接收参数,中文字段乱码
昨天在进行需求开发的时候,发现传进来的参数一直没有查询到响应的数据,打印出入参时,发现原来对象接收的中文字符串类似乱码而导致的。后来百度上找答案,找到的都是类似这种答案试过几种方式,还是没能如我所愿。后来在百度途中受到答案启发,用另外一种方法,用request.getParameter("参数名")接收参数,然后把他set到对象里面。使用request.getParameter...
2019-06-05 11:43:52
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人