Java后端
文章平均质量分 65
Java开发和相关的文章放在这里
春花秋时知多少
时间是最珍贵的宝贝,经历是独有的教育
展开
-
【Java】直接return 会触发try-catch 里面的finally方法么
finally的优先级高,加锁之后,尽量后续的代码全部用try包裹,在finally里面解锁,确保解锁成功finally里面也可以执行逻辑代码,需要确保执行的时候,可以考虑使用finally方法但是要注意 如果finally里面出现异常,,则后续的代码也不会执行。原创 2023-06-30 11:43:10 · 400 阅读 · 0 评论 -
【Mybatis】mybatis mysql count(*) 能不能用 Integer 来接收?
答案是可以,但你要确保不会溢出,你用byte接收都可以,只要xml里面的返回类型(resultType) 同步修改即可。当然还是建议按照统一的标准走(一般都用long),不要这边是integer,那边是Long,频繁的类型转化会非常的痛苦。一般count(*) 接收的方法都是 long型的,那我们用int来接收可以么?编写一个测试类,把对应的类型改成int ,然后观察能够正确的得到结果。进一步测试,使用byte 来接收,且创造一个溢出值。1、可以接收,只要是数字,byte都可以接收。每日一记,好运连连。原创 2022-12-01 11:50:38 · 1722 阅读 · 0 评论 -
【Java】springboot 枚举参数
不过本次测试的是默认的springboot对枚举的处理逻辑,讨论未做额外处理的情况下,spring接口使用枚举的效果和问题。来实现 自定义转化逻辑,那么你想怎么处理参数就是你自己的事情了,可以做兼容处理,识别里面的值来转化成枚举而不限定name。然后手动调用接口,改变参数值,观察返回值和后台日志,打印出名称则表示获取到了对应的枚举,反之则未获取成功。默认spring的接口对枚举类型的接收处理逻辑比较简单,就是。测试非常简单,写一个接口三个枚举参数或三个接口三个枚举参数。原创 2022-11-30 14:09:56 · 1907 阅读 · 0 评论 -
maven无法编译querydsl的问题排查
首先要编译querydsl 需要在pom文件里面引入插件就是build里面加上依赖就好了 <build> <plugins> <plugin> <groupId>com.mysema.maven</groupId> <artifactId>apt-maven-plugin</artifactId>原创 2021-01-12 19:18:53 · 2974 阅读 · 1 评论 -
[Java] Lock(锁)的tryLock失败是否需要unlock?
因为锁是非常重要且占用资源的,所以基本上都知道需要解锁常见的代码示例如下没啥问题,但是如果用tryLock获取锁是否也是这样呢?如果没有获取到锁需要解锁么?如果未加锁解锁是不影响还是异常呢?正确的写法是怎样呢?其实实验的方法很简单,写个测试类实验一下就可以了1、如果未加锁就解锁是不影响还是异常呢结果:会产生异常报错2、tryLock没有获取到锁需要解锁么?因为需要让它获取锁失败,所以我们利用多线程模拟下并发情况下,获取失败的效果。代码如下,看起来没啥问题 (实际上有问题 -,-)结果 部分原创 2022-06-27 15:53:14 · 3458 阅读 · 4 评论 -
@ParametersAreNonnullByDefault注解提示解决
🤳背景Guava Cache构建的时候,实现抽象方法的时候,idea默认会提示Not annotated parameter overrides @ParametersAreNonnullByDefaultparameter Inspection info: Reports problems related to nullabilityannotations: overriding problems (for example, when a nullableparameter is anno原创 2022-04-19 11:55:44 · 2382 阅读 · 0 评论 -
【小知识】java split 两参,str.split(“s“,1)
Java 字符串分割很常用,但其实它还有第二个参数,limit,它有什么用呢?我们来试试就知道了基础常见用法切割字符串为字符串数组,一个字符串参数,表示以这个字符串作为切割的判断依据。比如常见的时间都是:来分割,我们就可以切割来拿到数字。比如下面这样 @Test public void test(){ String[] splits = "5he55llo 5world5".split("5"); for (String split : splits原创 2021-08-27 16:54:54 · 4712 阅读 · 2 评论 -
No validator could be found for constraint ‘javax.validation.constraints.NotBlank‘ validating type
1/????????????起因报错No validator could be found for constraint ‘javax.validation.constraints.NotBlank’ validating type ’2/????????背景介绍我们一般写接口的时候需要做参数校验,特别是一些必填的字段,如果不填,我们的逻辑和业务根本无法进行下去,那么免不了要做参数校验,当前Java开发这么多年已经完善出很多框架帮我们实现这样的自动校验参数的功能了。 /** *原创 2021-08-08 09:16:36 · 4411 阅读 · 3 评论 -
接口开发规范总结 秋时-后端
最近学到了一个词汇,分享一下 ღ( ´・ᴗ・` )Because of love,不是因为爱❤️,有趣的解释为:因为热爱做着我们热爱的事情,才是生活的乐趣所在,哈哈哈1/????????????背景本身不应该把自己的代码风格要求给别人,但是优雅的代码都是通用的(很多的代码也是别人写的,你会觉得很ok才会去继续使用),而且有些朋友可能想学习一些真实的代码规范,就我目前的工作总结一点常见的代码接口规范搭建常见的项目写下来,希望能让你Java写起来越来越顺手,对于代码的维护变得愉快起来。???????原创 2021-08-04 21:21:34 · 772 阅读 · 0 评论 -
Java Stream流处理
Stream流处理流默认是串行的,.parallel()可以转化为并行提高效率.boxed()是把基本类型转化为包装类peek是只能查询.peek(e->{ System.out.println(e); })因为.collect(Collectors.toList());收集使用list里面必须是包装类。...原创 2021-01-14 15:03:20 · 219 阅读 · 0 评论 -
git问题--推送代码显示是之前离职的同事账号的问题(亲测解决)
问题原因这种推送代码出现和自己的账号不一致的问题,一般是电脑遗留问题。一般就是使用公司配发的电脑,实际上是前面同事使用的电脑。之前同事配置的git的账号保留未删除或者修改,导致你修改推送的记录变成了之前同事的账号,我自己碰到了两次了,第一次照着教程走了一次,解决了,第二次出现了问题,再使用不好使了。教程是这样的:查看当前的全局git账户git config --global user.name查看全局账户邮箱git config --global user.email果然不是我,然后原创 2021-01-12 20:18:05 · 2210 阅读 · 3 评论 -
Java数据结构:队列
水果之王-芭乐数据结构中很重要的一个部分是队列队列是什么?排队操作、依次操作、具有前因后果特点具有的特点先进先出、有序执行常见的例子买东西排队、打饭排队、存钱也要排队,只要需要排队就可以认为是队列,为啥排队呢?因为要保持顺序执行,先来的具有优先权。可以不使用队列么?对于大部分场景都必须使用队列,工作人员记忆力不能和电脑比较,同时来四五个人操作,连人都没认清就开始办理业务很容易混淆、容易出现错误,业务混乱、效率不高。一般对于重复的工作和流程,会形成肌肉记忆,效率高,这个可.原创 2020-12-07 19:11:55 · 73 阅读 · 0 评论 -
Function里面的identity有什么用
参考文章https://www.jianshu.com/p/cd694d2d8be5Function里面的identity有什么用源码static <T> Function<T, T> identity() { return t -> t; }就是为了简化表达式,-。-之前你可能需要这样写.stream.collect(Collectors.toMap(p->p.getId,p->p));和这样是一样的.stream原创 2020-12-03 20:11:59 · 1010 阅读 · 0 评论 -
Java高级操作之try-with-catch自动关闭资源
try-with-catch学习不可一日荒废,还是老老实实写点笔记吧~要求:JDK1.7及以上用法Path path= Paths.get(file.getAbsolutePath());try ( BufferedWriter writer= Files.newBufferedWriter(path,StandardCharsets.UTF_8);){ writer.write(context);} catch (IOException e) { e.printStack原创 2020-12-02 17:21:49 · 3375 阅读 · 0 评论 -
SpringData JPA 专注于业务的快速开发利器--基础篇
spring data jpaspringboot配上spring data jpa就是一条龙服务到家,快速开发,专注业务,完美契合。还有lombokpom <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>原创 2020-11-23 19:27:06 · 126 阅读 · 2 评论 -
spring-boot-configuration-processor
参考文章https://blog.csdn.net/yuhan_0590/article/details/85100246开始spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor用法pom <dependency> <groupId>org.springframework.boot</groupId> <arti原创 2020-11-20 19:02:25 · 1428 阅读 · 2 评论 -
Java随机数
java的随机数不是真的随机数,是根据种子和算法决定的。RandomRandom r =new Random(100);这里面的初始化的100就是种子System.out.println(r.nextInt(20));nextInt()里面的20就是范围,默认不含20,从0开始不指定的情况下,int可能为负数,double是大于0小于1,long可能为负数,float是大于0小于1如果不指定随机种子,默认的随机种子是 this(seedUniquifier() ^ System.nano原创 2020-11-18 15:45:47 · 205 阅读 · 0 评论 -
Git使用和命令
为啥用git?git是代码管理工具,和svn等一样的作用,主要是保存代码版本,不必再为版本管理而发愁,当然它更加的强大。比较突出的是代码合并,分支管理,分布式管理而不是集中式的,这样每一份代码都是完整的。学习git大牛很多,比如廖雪峰git的教程这篇教程也是基本参考该教程编写,当然我的会枯燥一些使用才能牢记,忘记是人的本能Git是什么,来源和用处Linux创始人Linus花了两周时间用C写的一个分布式版本控制系统安装软件Linux上安装git查看版本,是否安装:git --原创 2020-11-15 12:45:30 · 156 阅读 · 0 评论 -
SpringBoot快速整合Swagger在线生成接口文档
背景springboot项目开发,现在的前后端分离比较多,协同开发避免不了后端给前端接口文档,而如何保证文档的实时性,已经接口快速测试呢?Swagger不是Sweetpom文件整合spring boot项目只需要两个依赖 <!--swagger2 - springboot--> <dependency> <groupId>io.springfox</groupId> &原创 2020-11-14 19:37:45 · 132 阅读 · 0 评论 -
thymeleaf设置公共头部
统一风格网站为了统一风格,和便捷的操作,像头部样式一般都是一样的,但是Thymeleaf是服务端渲染,不是前端可以异步请求,总是粘贴复制头部信息将是灾难性的问题。公共的部分应该单独的文件就像静态资源一样,应该是所有页面都访问一份,而不是每个页面都粘贴一份。thymeleaf提供了解决的方法在模板文件中,比如head.html,使用<div th:fragment="topHeader">...</div>需要引入的文件中,比如首页<div th:inser原创 2020-11-13 12:56:42 · 1836 阅读 · 0 评论 -
SpringBoot整合错误处理页面
都不想存在错误,但往往事与愿违比如,密码记事本加上Shiro之后,出现了cookie失效的问题,就会出现500错误,就是你登录之后,没有退出,也就是客户端还保留者你的token,第二天登录的时候,还是拿着昨天的token去验证,就会抛出这样的异常。这个可以在登录的地方捕获异常,但是对于未知的异常,我们还是需要做一个最坏的打算。创建对应的页面创建html,还是和之前的一样创建,不过我加了一个error的包。所以就是src->main->resources->templates-&g原创 2020-11-13 10:54:59 · 116 阅读 · 0 评论 -
SpringBoot整合测试类
所有的功能都需要自己测试一次,这是编程人员最基本的素养。测试类Junitpom文件 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency>这个工具类作原创 2020-11-10 20:44:04 · 496 阅读 · 0 评论 -
SpringBoot整合Mybatis
SpringBoot整合Mybatis使用目前比较成熟的方案,架设项目引入pom主要引入的是mysql、jdbc、mybatis,这些是必须的,druid是数据源,现在用的比较多 <!--mybatis - starter--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>原创 2020-11-08 22:49:47 · 120 阅读 · 0 评论 -
Spingboot整合thymeleaf
## Spingboot推荐thymeleaf方式创建web项目pom依赖 <!--Springboot - thymeleaf--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId&原创 2020-11-08 18:38:23 · 658 阅读 · 3 评论 -
创建最小的SpringBoot
创建最小的SpringBoot最小的就是最简单的,我从头开始。创建maven项目我从基础开始,使用maven创建最小的Springboot项目,让我们知道启动器实际上为我们创建springboot时候做了什么。New Project->maven->jdk1.8->不选择骨架 ,就是create from archetype不勾选,之前创建ssm框架的时候会勾选webapp,但是我们使用thymeleaf更快更好用->next,名字我就叫ayubai_pw_note,gr原创 2020-11-08 18:13:12 · 673 阅读 · 1 评论 -
idea设置快捷键(代码模板)
idea设置快捷键(代码模板)idea里面非常好用的是大量的代码模板main在类里面使用main就可以直接打出main方法的模板,而不需要像eclipse需要在建立工程的时候选择sout使用sout就可以输出输出模板,而避免了重复的代码,提高了程序员的执行效率。这样的通用的模板肯定不能满足我们的要求,越来越多的模板会被使用到,如何自定义模板呢?非常简单,setting->Editor->Live Templates展开Java那一行就是里面包含的自定义模板比如main原创 2020-11-08 15:53:38 · 882 阅读 · 0 评论 -
Redis总结复习
Redis已经变成一种趋势哔哩哔哩上看了Redis的视频,真的讲的透彻清晰。这里链接主要是我的一些总结心得,努力变成一个优秀的程序员。一项技术的面世总是伴随着需求的提升,为什么Redis越来越火,不是为了技术而技术,而是实际的解决了问题,优秀才会被更多的人认识到。话不多说:1、什么是Redis?2、能干啥?3、哪里下载?4、怎么玩?一、什么是RedisRedis是用C语言开发的NoSql数据库,主要是利用内存来保存数据,解决了高并发读取的问题。首先它是数据库,而且是NoSql数据库,原创 2020-10-27 22:16:21 · 141 阅读 · 0 评论