Mybatis自定义handler
自定义mybatis TypeHandlerTypeHandler 说明TypeHandler 是mybatis中重要的一个接口,定义了 java 类型的对象在和数据库交互的时候如果设置参数和从读取到的结果中获取值。 并且已经将常见的类型的处理器默认内置了,在插入和读取数据的时候会根据对应的数据类型找到对应的类型处理器。 mybatis自定义TypeHandler对于一些非基本数据类型的字段,比如一个自定义类作为数据对象的一个属性,并且希望以特殊的格式映射到数据库中,在读取的时候能读取成java中的数据类型。用内置的typeHanlder 是一定不能满足需求的,这就需要对typeHandler进行拓展。 最常见的例子就是将一个对象的某些数据以json序列化的方式存储在数据库中,读取出来的时候能够反序列化对应的java bean。 实体对象User 其中有2个自定义属性,都希望能够使用json的方式解析和转换。 1234567891011121314151617181920212223242526272829303132333435public class User { ...
网络基础(十三)WebSocket
WebSocket概述WebSocket**是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。WebSocket协议在2011年由IETF标准化为RFC 6455,后由RFC 7936补充规范。Web IDL中的WebSocket API由W3C标准化。 WebSocket 最大的特定是客户端和服务端都可以主动给对方发送消息。 WebSocket 应用场景 实时消息 弹幕 游戏 WebSocket 同样支持TLS加密传输。 WebSocket 不使用TLS的时候协议是 ws:// 端口号 是: 80端口。 WebSocket 使用TLS 的时候协议是 wss:// 端口号是 : 443端口。 WebSocket 和 http ,https的 端口号占用相同,好处是可以不用单位为websocket开启防火墙的限制 WebSocket 特点 建立连接 在发送消息之前,需要先进行websocket握手建立连接,建立连接后,才能进行websocket通信。 双向通信 客户端和服务端可以相互发送消息,客户端可以向 ...
网络基础(十二)HTTP2和HTTP3
HTTP2 和 HTTP3HTTP2http2 是对http1.1 的升级,对http1.1的性能做了优化。 http2 在底层传输做了很多的改进和优化,但是在语义上和HTTP /1.1 是完全兼容的。 http/1.1 的不足并行处理能力弱一个连接只能处理一个请求。每个连接只能处理一个请求,如果有多个请求需要建立多个连接,但是浏览器针对一个域名的连接数最大限制为 6 。所以最大只能并行处理6个请求。 只能客户端发起连接http/1.1 为标准的请求/应答模式,请求和应答为成对出现,并且只允许客户端主动发起,不能服务端主动发起请求。 头部开销大http 是无状态的,为了维持http的状态,http的每次请求都携带大量的header信息,这么多的头部信息也是一个比较大的网络开销。 SPDY 和 HTTP2SPDY(speedy):一种开放的网络传输协议,由Google开发,用来发送网页内容。基于传输控制协议(TCP)的应用层协议。SPDY也就是HTTP/2的前身。 在只有Http/1.1 的时候,谷歌为了优化http/ ...
网络基础(十一)HTTPS
HTTPS概述HTTPS(英语:HyperText Transfer Protocol Secure,缩写:HTTPS): 安全的超文本传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。 HTTPS 的默认端口是 443 端口。 SSL/TLSSSL(Secure Sockets Layer): 安全套接层,已经废弃。 TLS(Transport Layer Security): 传输安全性协议。 SSL或安全套接字层和TLS(传输层安全)是旨在通过Internet在客户端和服务器之间提供安全通信通道的加密协议。SSL是较旧的加密协议,而TLS是相对较新的版本。拥有SSL/TLS证书的目的不仅是为了进行身份验证,而且是为了建立客户端浏览器与之通信的远程服务器的身份。 SSL/TLS 是一个加密层,HTTP 协议的数据通过 SSL/TLS 层进行加密后 就成了HTTPS的加密数据。 SSL/TLS 处于 运输层 和应用 ...
网络基础(十)加密和解密
加密和解密为了敏感数据的安全和数据再网络中的安全传输,通过数据加密传输可以很好的避免数据被监听和篡改。 加密方式根据是否是可逆的可以分为 不可逆加密 加密的最终数据无法得到原始数据。 比如 MD5 可逆加密 通过加密的数据可以解析出原始数据 比如 DES 单向散列函数单向散列函数(one way hash function):单方向的通过要加密的内容计算出一个固定长度散列值也就是hash值。 散列函数也可以被称为 消息摘要函数,哈希函数。输出的散列值,被称为消息摘要 ,指纹。 单项散列函数可以用来加密字符串,也可以用来加密文件,相同的散列算法生成的值都是相同长度的。 MD5MD5 信息摘要算法(Message-Digest Algorithm),是一种被广泛使用的密码散列函数,可以产生出一个 128 位(即 16 字节)的散列值,用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,并于 1992 年公开,用以取代之前的 MD4 算法。MD5 算法的程序在 RFC 1321 标准中被加以规范。 1加密: 12 ...
jvm调优和jvm工具总结
jvm 调优和工具总结jvm 工具jps查看java运行的进程信息。拿到进程id 后,会根据指定的进程id查看内部详细的内存情况。 jmapjmap 工具可用来查询内存占用和实例生成统计信息。 打印进程当前的所有的实例统计信息jmap -histo 19616 查看整个堆的统计信息jmap -heap 19616 导出整个堆的信息jmap -dump:format=b,file=nacos.hprof 19616 线上导出的文件,通过本地机器的jvm工具 jvisualvm ,可以导入查看 操作步骤为 左上角 –> 装入 –> 选择文件类型 –> 堆dump –> 打开即可。 内存溢出问题定位 配置参数 -XX:+HeapDumpOnOutOfMemoryError 和 -xx:HeapDumpPath=./j.dump 主要需要再-jar 之前 获取到内存溢出的文件后,可以将文件导入到 jvisvium 中,装入–> 选择类型 –> 堆dump –> 选择文件; 查看类信息,查看哪些 ...
jvm知识点总结
jvm知识点总结jvm组成 类加载器 负载从磁盘上加载类 运行时数据区 存放运行时的数据 本地方法接口 调用本地的接口 执行引擎 即时编译器 和GC 类加载的过程 加载 类加载器classload从磁盘上将字节码文件加载到内存放入 验证 校验字节码的格式的正确性 准备 给类的静态变量分配内存和默认值,基本类型的默认值,引用类型赋值为null 解析 将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main方法)替换成指向数据所占内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成),动态链接是在运行的期间将符号引用替换成直接引用。 初始化 对类的静态变量初始化为指定的值,并执行静态代码块 使用 正常执行代码逻辑 卸载 引用不存在,gc销毁 jvm中的类加载器 BootstrapClassLoader 加载jre lib目录下的class ExtClassLoad 加载jre lib 下的ext目录下 parent = BootstrapClassLoader AppClassLoad ...
网络基础(九)网络安全
网络安全概述随着计算机网络的发展,网络中的安全问题越来越重要。 计算机网络的通信面临两类威胁,被动攻击 和 主动攻击。 被动攻击是对传输的数据进行获取解析,而不影响到原始的传输。 主动攻击是对原有网络传输造成影响,修改了原有的传输的值甚至直接造成原有传输无法进行。 截获 窃听通信内容 中断 对网络通信造成中断 篡改 修改了网络传输内容 伪造 伪造其他发送方的传输内容 ARP欺骗ARP欺骗(ARP spoofing),又称为ARP毒化,ARP病毒,ARP攻击。 当在一个网络内发送一个网络请求,发送方只知道目标方的IP地址,但是不知道目标的mac地址,那么会首先发送一个ARP协议的广播请求,目标mac是全f的请求,向同一个网段内的设备询问对应的IP的mac地址。 而ARP欺骗所造成的效果是让发出的ARP请求返回的mac地址错误。 ARP欺骗的步骤假设有3台主机 A B C 三台主机。 当A 和B 发送过ARP请求后,A 知道了B的mac地址,B知道了A的mac地址。 C知道了A 和B的mac地址。 攻击主机冒充B向A主机发送一个ARP请求,告诉A主机,我是 192 ...
网络基础(八)CDN
CND简介CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。 CDN 的主要目标是提高服务的响应速度,主要是为了快。 CND解决了什么问题在公共的web服务中,用户通过浏览器或移动设备等请求服务器的资源。服务器的资源有的是需要经常修改的动态资源,比如商城中的商品的价格,是可能随时变动的,而有些资源是很少变动的,比如 图片,视频 等静态资源。为了提高服务的响应速度,把这些不经常变化的静态资源通过缓存的方式,缓存到一个专门存储此类静态数据的服务器上,并且为能能够得到最好的访问速度,这种缓存服务器还是有多个节点,用户访问的时候,会自动从最近的一个缓存节点服务中获取,这种缓存静态资源以达到提高网络服务速度的服务器就是CDN服务器。 CND服务将源站内容分发至遍布全国的加速节点,缩短用户查看内容的延迟,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点 ...
网络基础(七)HTTP
HTTP简介超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。 http 主要用于传输浏览器可以识别的超文本标记语言,除了可以传输文本,也可以用来传输声音,图片,视频等信息。 URLURL:统一资源定位符,用来表示从互联网上得到的资源位置和访问这些资源的方法,通过URL能够知道通过什么协议,什么路径地址对资源进行访问。 URL 的格式如下 1<协议>://<主机>:<端口>/<路径> 比如在浏览器访问http 协议的资源,都是从 http:// 开头,而如果要访问 **ftp ** 服务的资源 都是从 ftp:// 开头。 比如此URL http://www.sin ...




