配置 Tomcat
1.实现EmbeddedServletContainerCustomizer接口,并把实现的类纳入到Spring容器中管理 @Componentpublic class MyEmbeddedServletContainerCustomizer implements EmbeddedServletContainerCustomizer { public void customize(C...
1.实现EmbeddedServletContainerCustomizer接口,并把实现的类纳入到Spring容器中管理 @Componentpublic class MyEmbeddedServletContainerCustomizer implements EmbeddedServletContainerCustomizer { public void customize(C...
重复提交 字面意思就是提交了很多次,这种情况一般都是前端给你挖的坑…. 前段时间在开发中遇到一个这样的问题;前端小哥哥调用接口的时候存在 循环调用 的问题,正常情况下发送一个请求添加一条数据,结果变成了同一时刻并发的发送了 N 个请求,服务端瞬间懵逼的插入了 N 条一模一样的数据,前端小哥哥也不知道问题在哪里(恩…坑就这样挖好了,反正不填坑,气死你) 这时候咋办呢;后端干呗,反正脏活累活...
Spring Boot中自定义注解实现参数校验 在日常开发中, 我们经常需要用到参数校验,而如果在Controller层中对每个参数都手动代码去校验,无疑是非常繁琐且不易于维护的。而javax正好提供了很多常用的校验,如:@NotNull、@NotBlank、@NotEmpty等常用的参数校验注解,我们只需要在对用的参数上添加该注解就可以完成校验。但是还有很多情况是javax中没有提供的,...
前言 介绍了websocket与STMOP以及SockJs使用代码,基本上拿来即可使用。也介绍了2者的区别及个人推荐使用websocket方式。 websocket在Html5里使用,主要目标还是解决服务器能主动向客户端发送消息的功能。也就是全双工的通信方式。 Spring提供了对Websocket的支持,WebSocket API是比较低级的API,但恰恰是我比较中意的方式。因为接近...
针对某些读写比很高的场景,使用本地缓存可以极大提高访问效率。 springboot中对cache做了很好的支持 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifa...
Servlet容器采用多线程来处理请求,提高性能的同时也造成了线程安全问题。要开发线程安全的Servlet应该从一下几个方面进行: 1. 变量的线程安全; 多线程并不共享局部变量,所以我们要尽可能的在Servlet中使用局部变量; 2. 代码块的线程安全; 使用同步块Synchronized,防止可能调用的代码块;但是要注意的是,要尽可能得缩小同步代码的方范围,不要在service方法和...
区别 这两个接口说白了都是 Spring 在初始化 Bean 时对外暴露的扩展点,因为 Spring 框架提供的功能不一定能够满足我们所有的需求,有的时候我们需要对其进行扩展,那么这两个接口就是用来做扩展功能的。 其实不用看源码,单纯从字面上看,大家应该也能理解个差不多: BeanFactoryPostProcessor 是针对 BeanFactory 的处理器。 Bean...
一、Spark SQL简介 Spark SQL 是 Spark 中的一个子模块,主要用于操作结构化数据。它具有以下特点: 能够将 SQL 查询与 Spark 程序无缝混合,允许您使用 SQL 或 DataFrame API 对结构化数据进行查询; 支持多种开发语言; 支持多达上百种的外部数据源,包括 Hive,Avro,Parquet,ORC,JSON 和 JDBC 等; ...
Deployment Kubernetes Deployment Deployment为Pod和Replica Set(升级版的 Replication Controller)提供声明式更新。 你只需要在 Deployment 中描述您想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和ReplicaSet 的实际状态改变到您的目标状态。您可以定义一...
一、创建DataFrame和Dataset 1.1 创建DataFrame Spark 中所有功能的入口点是 SparkSession,可以使用 SparkSession.builder() 创建。创建后应用程序就可以从现有 RDD,Hive 表或 Spark 数据源创建 DataFrame。示例如下: ```plain text val spark = SparkSession.bu...