![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java核心技术
文章平均质量分 60
岸河
这个作者很懒,什么都没留下…
展开
-
Bean Validation 与 hibernate-validator
Bean Validation碎碎念基本介绍大家所知道的JSR 303,是参数校验Bean Validation的第一版规范,也称为Bean Validation 1.0,通过类似@Null,@NotNull,@NotBlank,@Valid的注解,帮助我们对参数进行校验。避免在业务代码中写长长的if else的判断。版本介绍但实际上,到2019年8月份的时候,这个参数校验的的规范已经到了到了Bean Validation 2.0 版本,规范也变了,Bean Validation 2.0是属于JSR原创 2022-01-16 12:38:27 · 1199 阅读 · 1 评论 -
CompletableFuture
CompletableFuture常用方法CompletableFuture的join方法可以直接拿到返回值supplyAsync,开启异步任务thenCompose,接收前面的返回值,前面执行完了再执行后面的thenCombine,两个任务一起执行thenApply,把前面异步执行的结果,交给后面的异步任务,同一个线程thenApplyAsync,把前面的几个结果交给后面的异步任务,不同线程 和thenCompose 比较像applyToEither,要么,上个任务和这个任务一起运行,哪个原创 2022-01-15 23:23:12 · 1664 阅读 · 0 评论 -
Bean Validation 从JSR 303到JSR 349到JSR 380
参数校验,是我们绕不过去的话题。Controller参数校验,Service层参数校验。如何形成一套标准的,满足各场景的参数校验规范,是一件很重要的事,本篇文章,就来聊一聊参数校验相关规范与发展。Java(也就是Jakarta,从18年以后,Java EE 正式改名为 Jakarta EE 了。)参数校验的官网地址:https://beanvalidation.org/java中参数校验版本变化如图是官网中的Bean Validation的版本历史,从JSR 303到JSR 349到JSR 3.原创 2022-01-15 23:19:05 · 417 阅读 · 0 评论 -
Spring-Boot参数校验规范 Bean Validation ; Hibernate Validator
Spring-Boot引入版本依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>注意,高版本的Spring-boot,不需要再单独引入validation-api或者hibernate-validator了,我原创 2022-01-15 20:31:27 · 281 阅读 · 0 评论 -
@NotNull注解不生效
进行参数校验的时候,加了@NotNull注解,@Validated注解和@Valid注解,但是参数校验的时候不生效。最后发现是因为我的Spring-boot版本较高,后面不需要引入validation-api,hibernate-validator这种依赖,直接引入spring-boot-starter-validation即可,其他的依赖都可以去掉了<dependency> <groupId>org.springframework.boot</groupId原创 2022-01-15 20:22:29 · 5467 阅读 · 0 评论 -
【业务线程池】 业务线程池实现多个任务并行处理
@RestControllerpublic class ApplicationTaskExecutorController { /** * 使用spring的默认线程池 */ @Autowired private ThreadPoolTaskExecutor applicationTaskExecutor; /** * 串行计算 */ @RequestMapping("save1") public String原创 2022-01-13 23:34:49 · 526 阅读 · 0 评论 -
Java线程池 ThreadPoolExecutor 业务线程池
1.什么是业务线程池?在业务开发中,用来处理业务的线程池。2.为什么需要业务线程池?大多数同学都是做业务开发的,很多业务的操作并非要求一定是同步的。例如,对于一系列连续的业务逻辑处理,很多都是数据的组装,拼接,查询,或者将数据同步给各个下层业务(对事务性没有严格要求);或者对数据的批量操作;这些都可以是异步的。通常业务项目使用的都是的servlet框架,都是使用一个线程进行业务逻辑处理,这种模型是通用的,但不一定是最佳的,不一定是最适合的。需要我们业务开发者根据实际的业务场景去灵活应用,达到最快的响.原创 2021-12-31 18:08:33 · 1734 阅读 · 1 评论 -
Netty 学习笔记(已完结)
Nettynetty执行流程分析与重要组件介绍应用rpc通信框架,通信协议(基于Socket,应用场景广泛)长链接服务器(web socket服务器)http服务器(jetty,tomcat类似的servlet容器,不过其编程模型并不是基于servlet规范的,其参数获取,参数封装是有差异的,其并没有实现servlet规范,servlet接口)特点netty涉及到了很多对线程的处理,对线程的控制,还有对IO异步的操作,异步的调度http 服务器的应用核心概念:channel,通道,类原创 2021-12-08 23:37:20 · 1803 阅读 · 0 评论 -
@ConditionalOnProperty注解
简单来讲,总结一下,在类上添加此注解基本配置为app.name = tom配置类为@ConditionalOnProperty(prefix = "app",name="name",matchIfMissing = false)@Configurationpublic class ConfigureOne { public ConfigureOne() { System.out.println("--------构造ConfigureOne---------");原创 2021-06-28 19:10:18 · 29867 阅读 · 10 评论 -
第三方接口如何设计
1.接口功能职责清晰2.接口安全,加密方式(临时凭证的方式,appid与appsecret的加密,验签)3.接口幂等(高并发时的幂等,redis分布式锁,业务上的幂等字段。)比如防止客户端重试4.接口限流,防刷(对外)5.接口约定,良好的代码规范,接口文档与请求示例与返回示例,错误码定义,版本迭代说明6.如果有可能,做接口统计分析,做应用监控与报警...原创 2021-04-30 14:40:02 · 799 阅读 · 0 评论 -
面试:Java的线程状态有哪几种?
ps:java线程状态,很基础的问题,但是却很少人能回答正确。昨天面试,被问到这个问题,按照网上的资料巴拉巴拉的讲了一遍,面试官让我回去的时候再看看源码。今天一看,果然网上70%的文章都是错的。首先说明,这里说的java线程的状态,指的是JVM的线程状态,不能反映操作系统的线程状态。所以jvm线程状态与操作系统线程状态不是一致的。Thread的内部枚举类Thread.State定义了jav...原创 2019-08-29 15:29:45 · 1030 阅读 · 0 评论