SpringBoot报错:Factory method ‘dataSource‘ threw exception; nested exception is java.lang.NullPointerE 关于类似的报错,之前搜了很多种解决办法,都没解决。后来才发现其实这个原因很简单,是因为在mapper文件中没有定义sql语句的入参,导致数据源配置失败,从而导致后续的Controller等出现问题。没想到开发这么久了,还会犯这种错误,仅以此博客,做个记录。
SpringBoot+Redis实现接口防刷功能 在实际开发中,当前端请求后台时,如果后端处理比较慢,但是用户是不知情的,此时后端仍在处理,但是前端用户以为没点到,那么再次点击又发起请求,就会导致在短时间内有很多请求给到后台,可能会出现后台崩溃或者数据重复添加的问题。那么如何解决这个问题呢?为了避免短时间内对一个接口访问,我们可以通过AOP+自定义注解+Redis的方式,在接口上加一个自定义注解,然后通过AOP的前置通知,在Redis中存入一个有效期的值,当访问接口时这个值还未过期,则返回提示信息给前端,以此来避免短时间内对接口的方法。
SpringBoot整合EasyExcel EasyExcel是阿里巴巴开源poi插件之一,是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。尽管Java解析、生成Excel不止EasyExcel,还有一些其他的框架,例如:Apache poi、jxl,但这些都存在一个严重的问题就是非常的耗内存。而EasyExcel是在尽可能节约内存的情况下支持读写百M的Excel,能在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。因此,本文将通过一个书籍列表的导入,作为案例,来揭开EasyExcel的使用过程。
自定义注解格式化处理BigDecimal 在开发过程中,如果有实体类的属性中存在BigDecimal的属性,并且需要对其进行校验,例如:限制BigDecimal的小数点位数是两位。但目前没有注解可以完成这个操作,因此我们可以使用下面的工具类和注解进行处理
Java实现驼峰命名的字符串转化 在开发场景中,我们会遇到一些涉及字符串的转化。例如:数据库字段的名称叫TYPE_NAME,但是有时候我们需要将其转化为typeName。或者将typeName的驼峰命名方式转化为TYPE_NAME,这时候就需要进行转化。因此,在这里提供了个工具类。接下来将进行演示。
Java通过工具类判断前端给定的实体类属性中是否为空 在Java开发过程中,当前端页面传递参数时,如果我们使用实体类进行接收,而一些属性的值是必须有值的,那么就需要对这些属性进行校验,但是如果逐一校验、进行空判断,那么就会有大量的冗余代码。因此我们可以通过封装一个工具类,利用反射进行处理。假设传递的实体类中name和age属性均不能为空。
java后端返回数据给前端时去除值为空或NULL的属性、忽略某些属性 在开发过程中,有时候需要将后端数据返回前端,此时有些数据为空属性不需要返回,或者有些属性不需要返回,因此就需要处理。字符串、基本数据类型的设置,使用JsonInclude.Include.NON_NULL。对象、数组之类的设置,使用JsonInclude.Include.NON_EMPTY。
Mybatis应用场景之动态传参、两字段查询、用户存在性的判断 这种方式值只适合一条记录的封装,但是不适合多条记录。有时候在业务场景中,我们需要进行唯一性判断,例如:用户登录的时候,我们要判断这个用户在用户表中是否存在,所以就不需要写select * from t_user where id =?举个例子:在学生表中查找名字为Tom的用户的数据记录有几条,或者年龄等于23的用户有几个,这时候就需要动态传参。在使用MyBatis查询数据库时,有时候对于数据表,仅需要查询两列数据,一列做map的key,一列作为map的value,然后将查询出的结果以map的形式返回。
Git的介绍和命令汇总 在Git中,有四个工作区域:工作区域(Working Directory)、暂存区(Stage/Index)、本地仓库(Repository)、远程仓库(Remote Directory)。每个区域的作用如下:当前项目的目录,其中包含了正在编辑的文件和子目录。在Git中,工作区并不属于Git版本控制系统的一部分,因此Git不会主动跟踪工作区中的文件变化。也称为索引(Index),是Git版本控制系统中用于暂存文件更改的区域。当使用git add命令。
Git回退版本的方式 命令作用git log查看历史提交记录回退到当前版本(取消暂存区的内容)回退到上个版本回退到上上个版本git reset --hard id (commit hash值)回退到指定版本。
Java获取给定月份的前N个月份和前N个季度 在项目开发过程中,遇到这样一个需求,即:给定某一月份,得到该月份前面的几个月份以及前面的几个季度。例如:给定2023-09,获取该月份前面的前3个月,即2023-08、2023-07、2023-06,以及该月份的前3个季度,即2023-06、2023-03、2022-12。
解决Vue设置图片的动态src不生效的问题 在vue项目中,想要动态设置img的src时,此时发现图片会加载失败。在Vue代码中是这样写的:在Vue的data中是这样写的:我的图片在根目录下的static里面:但是在页面上这个图片却无法加载出来。
Spring Boot 启动报错解决:No active profile set, falling back to default profiles: default 在SpringBoot启动时,控制台打印出来的信息有这么一条:No active profile set, falling back to default profiles: default。这句话的意思是:没有指定项目的配置文件,使用了默认配置文件。也就是application.properties或者application.yml。加入spring.profiles.active=local即可。
SpringBoot项目在启动后自动关闭 在创建SpringBoot项目的时候,Web的依赖没有导入,默认以普通java项目运行导致的终止。在pom.xml文件中引入web的jar包,然后刷新maven即可。
记录一次华三交换机配置IP地址和SNMP服务的过程 vlan 1ip address IP地址 子网掩码我通过网线将笔记本电脑连接到华三交换机,笔记本电脑的IP地址为192.168.1.120,所以将配置之后的华三交换机ping我的笔记本电脑,结果显示ping通了。