用java编程真的是在天上飞的感觉,写点服务器端代码时真省事啊,可是出了问题是真不好排查啊。特简单一websocket server,可以触发onOpen,onClose,甚至接收文本消息的onMessage也能触发执行,但是就是针对二进制的onMessage说啥也收不到数据,尝试换了各种姿势,也不报错,也收不到数据,最后翻看其他人的博客发现说默认java的websocket server最多只能接收8k的二进制数据,想收到数据调大配置参数就可以了,乖乖,加上配置以后果然能收到数据了,配置如下:

package com.xxx.slientprint;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.util.WebAppRootListener;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class WebAppRootContext implements ServletContextInitializer {

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.addListener(WebAppRootListener.class);
//这里设置了30兆的缓冲区
//Tomcat每次请求过来时在创建session时都会把这个webSocketContainer作为参数传进去所以对所有的session都生效了
servletContext.setInitParameter("org.apache.tomcat.websocket.textBufferSize","30000000");
servletContext.setInitParameter("org.apache.tomcat.websocket.binaryBufferSize","30000000");
}
}

咱不说别的,大哥你限制了接收buffer大小你倒是说一声啊,配了slf4j也啥都不输出,真坑人啊。

java注解日期非空校验 java 注解验证数据

java自定义注解验证手机格式1、@Valid与@Validated的区别1.1 基本区别@Valid:Hibernate validation校验机制@Validated:Spring Validator校验机制,这个也是最常用的@Validation只是对@Valid进行了二次封装,在使用上并没有太大区别,但在分组、注解位置、嵌套验证等功能上有所不同1.2 作用范围 @Validated:用在