tomcat50168端口被占用解决方案
cmd里输入这个命令,结束占用端口的进程就行了 1taskkill -F -IM java.exe
java8的stream流
在1.8新特性中有一个stream流 可以对集合进行很多操作,在开发里大量用到 先创建两个类,用于我们操作 12345678910111213141516import java.util.ArrayList;/** * @ClassName: StringList * @Date: 2020/6/21 0021 21:08 * @Description: 一个继承了ArrayList<String>的类 * @Author: <achao1441470436@gmail.com> */public class StringList extends ArrayList<String> { public StringList put(String s) { super.add(s); //用于链式编程 return this; }} 1234567891011121314151617181920212223242526272829303132333435...
chrome常用插件
分享几个chrome常用插件chrome就是谷歌浏览器… 就是下面这些啦~
mysql使用druid时自动断开连接解决方案
今天接手了一个上了年龄的项目,用的是smm,数据库连接池用的druid,数据库版本较老,是5.0的mysql,我升级成mysql8.0后,一开始还没问题,然后大概每次无连接2分钟后数据库自动断开。。。 前端妹子立马跟我说接口报错了,我咯噔心里一慌,让前端妹子给我截一下报错信息(后台日志刷的太多,当时没注意到)。然后前端妹子说,哦又好了,我当时意识到不对劲,但也没有深究,直到这样的问题出了几次,每次一刷新又好了,我开始意识到问题的严重性。 一开始我复制了报错信息,也就是这一段 123Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failureThe last packet successfully received from the server was 8848 milliseconds ago. The last packet sent successfully to the server was 8848 milliseconds ago. 搜了半天,网上...
springboot聚合工程部署时遇到的坑
今天打包springboot聚合项目的时候,遇到了一个问题,一直报ClassNotFoundException 明明打包都打好了,运行的时候报这个错,弄了好久,解压jar包一看,怎么多了个目录?! 这个目录叫BOOT-INF,打开一看,里面是com文件。。。原来罪魁祸首就在这里,把BOOT-INF里的目录挪出来,然后就不报错了。。项目终于发布上线了!开心~ 123456789101112131415161718191.spring-boot maven打包,一般pom.xml文件里会加<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId></plugin>这样打的jar里会多一个目录BOOT-INF。2.引起问题,程序包不存在。3.解决办法,如果A子模块包依赖了B子模块包,在B子模块的pom文件,加入<plugin> <gro...
Optional进行优雅非空判断
又到了阿超说博客时间 今日给小伙伴们带来的是如何用Optional这个类 近日,国外一小哥因为不写注释和括号换行,以及用git经常覆盖掉同事的代码被揍 在这里阿超也顺便提醒一下大家:代码不规范,同事两行泪 那么进入今天的正题吧~今天带来的是1.8的这个类Optional,Optional在英文中是可选的意思,他在java中可以作为非空判断,是妥妥的炫技哦! 首先是进行字符串的长度取值 123456789101112/** * 获取一个字符串的长度 * * @param str * @return */Integer strLength(String str) { if (str == null) { return 0; } return str.length();} 相信有不少小伙伴看出来了,这段代码是大家经常写的,这种逻辑代码,传入的字符串为空,如果调用它的方法,会报NullPointerException 所以我们给她加了个非空判断 现在展示新写法: 12345678910/** * 获取一个字符串的长...
拦截器解决跨域问题
大家平时在项目开发中遇到跨域问题是怎么解决的呢? 我相信有很多小伙伴就会回答:在Controller加上@CrossOrigin就可以啦! 但我们知道,在企业开发中,会有很多个controller,controller数量多也便于维护和查找控制层代码 那有没有一种方式能解决这种繁琐的问题呢?答案是肯定的! 下面介绍如何用JSONP解决跨域问题,哦不是用拦截器解决hh 12345678910111213141516171819202122232425262728293031323334353637package com.ruben.controller.interceptor;import org.springframework.http.HttpStatus;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.Model...
快速开发
如今,开发网站已经不是什么稀奇事了 那么如何快速进行网站的开发呢? 首先我推荐的是这款快速开发框架——《jeecgboot》 Jeecg-Boot 是一款基于BPM的低代码开发平台!采用前后端分离架构: SpringBoot 2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码!!帮助Java项目解决70%的重复工作,让开发更关注业务逻辑,既能快速提高效率,节省研发成本,同时又不失灵活性!各种低代码能力,在线开发:Online表单、Online图表、Online报表、表单设计器、流程设计器、报表设计器、大屏设计器 等等… 其次,是一款gitee上的一套解决方案——《人人开源》 包含了一款快速开发框架Vue+springboot前后端分离、一整7Kstars的权限系统 这两款框架因为都是基于springboot,所以其他的组件都是开箱即用,用很少的配置甚至0配置就能引入组件开始使用 还有一套基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块...
箭头函数
最近在代码中用到大量箭头函数,例如 12345result = page.stream().map(p -> { //这个p相当于list里的每一项,map需要return Map<String, Object> tempMap = BeanUtil.beanToMap(p); tempMap.put("isMeLikeHisProduct", StringUtils.isNotBlank(master.getUFavorite()) && master.getUFavorite().contains(p.getId())); return tempMap;}).collect(Collectors.toList()); //可以把return的结果收集起来,转换成一个新的list 以及 1234567productList.forEach(product -> { //这个product相当于list里的每一项,forEach不需要return if (p...
Map和List的碰撞
大家都知道map和list是我们常用的数据结构 比如hashmap和arraylist 在实际开发中,有时会遇到一个问题,比如加了个需求,原来的数据库字段不够用,需要加字段,这样会导致很多处做修改,而我们如果灵活使用map和list就可以一个用字段以json的格式存放很多数据,但这种形式也有弊端,比如难以维护、难以拓展,所以一般情况下,能加字段,加表的话就先别用这种形式 但如果遇到不能动数据库的情况,就可以以这种方式(你甚至可以以这种方式把整个项目存放到一条数据里):joy:废话不多说: 12345678910111213141516171819202122232425262728293031323334package com.ruben;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestM...
