![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 73
小_杭
就是一个普普通通的程序员。
博客为个人工作中用到技术的学习与总结。
同时也有一些奇奇怪怪的学习内容。 罒ω罒
[]~( ̄▽ ̄)~* 哈哈哈。。
展开
-
项目数据接口国密支持
spingboot项目对SM2/SM4支持原创 2024-05-11 16:37:49 · 416 阅读 · 2 评论 -
Java Agent - 应用程序代理-笔记
Java Agent 又叫做 Java 探针,该功能是 Java 虚拟机提供的一整套后门,通过这套后门可以对虚拟机方方面面进行监控与分析,甚至干预虚拟机的运行。是在 JDK1.5 引入的一种可以动态修改 Java 字节码的技术。Java 类编译之后形成字节码被 JVM 执行,在 JVM 在执行这些字节码之前获取这些字节码信息,并且通过字节码转换器对这些字节码进行修改,来完成一些额外的功能。这里,可以想到这个技术的应用场景就有:JVM分析,应用监控,链路追踪,日志收集,动态篡改,源码加密等了。原创 2023-11-10 14:46:35 · 329 阅读 · 0 评论 -
Arthas【阿尔萨斯】JVM分析
Arthas-阿尔萨斯Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什么原创 2020-11-25 14:13:10 · 2588 阅读 · 0 评论 -
Java8新特性-掉头发整理跑路必备 罒ω罒
Java8新特性-掉头发整理跑路必备 罒ω罒说明本片文章,建议先查看目录。可直接当做API来查询。虽然工作上已经升级到Java8挺久的了,但是还没有,完整使用上它的一些特性。尤其是Lambda 表达式,一些的写法灰常的简洁,虽然效率上并不一定很高。╮(╯_╰)╭(毕竟源码上还是常规操作的封装语法糖,但它优雅啊 罒ω罒)参考先把参考文章贴出来,这些文章都很好的。各种具体的详情,请查看参考原文会更具体。如果只是当做工具API查阅的话,可以直接按目录查找。博客园-JAVA8新特性原创 2020-11-05 10:38:59 · 809 阅读 · 1 评论 -
程序猿划水群整理-关于并发锁的机制等
程序猿划水群整理关于并发锁的机制等起因是个划水的人装逼瞎问:能不能解释一下乐观锁、悲观锁、偏向锁、轻量级锁、CAS是啥?乐观锁、悲观锁我的观点:在innodb的行表数据锁定的时候好像有涉及到悲观是 先锁定 禁止操作 ,乐观是 先标记 二次操作判断禁止操作 ?是这样吗【肯定不是啊! 不过印象中确实是有类似的说法。。。。。】金小水的说法:悲观锁是指你拿了这个锁,别人...原创 2020-03-10 11:18:56 · 410 阅读 · 0 评论 -
日常问题:上传接口报错
日常问题:上传接口报错项目启动后,一段时间没怎么用之后,系统所有上传接口都失败,报错为接口异常。这个问题通常不会出现的,因为正常情况下使用,不可能会有7天不进行文件上传操作的。因为财务上传报表是每个工作日的啊 ╮(╯_╰)╭结果碰到了国庆春节长假,还有今年疫情的超级长假。然后就炸了 ε=(´ο`*)))唉问题Springboot上传文件错误:org.springframewor...原创 2020-02-19 14:42:50 · 2976 阅读 · 0 评论 -
OpenCV -1 -简单图像处理
OpenCV -1 -简单图像处理文章目录OpenCV -1 -简单图像处理@[toc]项目环境的搭建加载OpenCV并简单处理图片加载OpenCV加载图片处理使用语言:Java 1.8操作系统:windows x64OpenCV:4.1.1项目环境的搭建官网下载opencv对应版本环境的文件,安装:opencv-4.1.1-vc14_vc15.exeidea加载jar包:…...原创 2019-11-04 19:17:38 · 432 阅读 · 0 评论 -
Tomcat 源码分析-启动分析(1)
Tomcat 源码分析-启动分析(1)文章目录Tomcat 源码分析-启动分析(1)启动脚本从startup.bat开始执行catalina.bat文件参考资料启动脚本windows是.bat,linux就是.sh了,差不多一个意思。启动脚本做的事情,大多是系统环境变量的判断,在所有前置条件满足的情况下执行Tomcat 的源码的启动类。从startup.bat开始 1 @echo...原创 2018-12-21 10:34:09 · 4922 阅读 · 5 评论 -
Tomcat 源码分析-启动分析(2)
Tomcat 源码分析-启动分析(2)文章目录Tomcat 源码分析-启动分析(2)Bootstrap 的main方法源码以及简单说明Bootstrap.init()初始化方法分析。初始化类加载器:initClassLoaders()最后执行的是***load***方法和***start***方法了参考资料Bootstrap 的main方法启动脚本 startup.bat 开始到最后,所调...原创 2018-12-21 10:37:03 · 443 阅读 · 0 评论 -
Tomcat 源码分析-启动分析(3)
Tomcat 源码分析-启动分析(3)文章目录Tomcat 源码分析-启动分析(3)Catalina对象的load、start方法与Digester解析器Catalina.load() 方法分析分析Digester类的操作Catalina.start() 方法分析关于这里的Server参考Catalina对象的load、start方法与Digester解析器前边说道,Bootstrap的m...原创 2018-12-21 10:43:33 · 396 阅读 · 0 评论 -
Tomcat 源码分析-启动分析(4)
Tomcat 源码分析-启动分析(4)文章目录Tomcat 源码分析-启动分析(4)Lifecycle 机制和实现原理init()和 start()基础流程首先分析一下,init()被调用的时候发生了什么操作:然后是关于start()的方法,这个与init()方法类似了。关于其中的事件发布监听等初始创建Server的时候监听器的注册组件状态事件发布与事件被处理处理整体的事件通知处理和Lifecy...原创 2018-12-21 11:09:05 · 349 阅读 · 0 评论 -
Tomcat 源码分析(二)-请求分析(1)
Tomcat 源码分析(二)-请求分析(1)文章目录Tomcat 源码分析(二)-请求分析(1)@[toc]一.处理线程的产生了解一下大体的线程情况初始化各个必要的对象加载配置信息,创建Connector节点Connector节点构造方法,创建Http11ProtocolHttp11Protocol 对象的产生执行start方法Connector 类的 startInternal 方法所以,这...原创 2019-04-18 17:23:08 · 544 阅读 · 0 评论 -
Tomcat 源码分析(二)-请求分析(2)
Tomcat 源码分析(二)-请求分析(2)文章目录Tomcat 源码分析(二)-请求分析(2)@[toc]二.Socket 转换为内部请求对象-request一.处理线程的产生Socket 请求连接监听启动新线程处理Socket的方法调用具体的处理Socket数据流方法分析参考资料二.Socket 转换为内部请求对象-request一.处理线程的产生Tomcat 作为Java实现的一种W...原创 2019-04-18 17:24:21 · 505 阅读 · 0 评论 -
Tomcat 源码分析(二)-请求分析(3)
Tomcat 源码分析(二)-请求分析(3)文章目录Tomcat 源码分析(二)-请求分析(3)三、请求与容器中具体组件的匹配开始进行内部传递处理的地方实际执行的处理方法分析一下对其参数的匹配过程匹配完成了参考资料三、请求与容器中具体组件的匹配到,前一篇为止,已经分析到了org.apache.coyote.http11.AbstractHttp11Processor类 process 方法...原创 2019-04-18 17:25:17 · 487 阅读 · 0 评论 -
Tomcat 源码分析(二)-请求分析(4)
Tomcat 源码分析(二)-请求分析(4)文章目录Tomcat 源码分析(二)-请求分析(4)四、Tomcat 7 阀机制原理管道和阀 初始化和初次调用分析管道和阀的概念和实现具体的数据流转关于数据内部传递小结参考资料四、Tomcat 7 阀机制原理这里的阀机制,就是数据(request)在Tomcat组件之间传递使用的东东。【类似阀门一样的通道的东西】先看下这个图,Tomcat内的组件...原创 2019-04-18 17:28:01 · 544 阅读 · 0 评论 -
Tomcat 源码分析(三)-(一)-Context 的构建,发布加载WEB应用事件-解析加载web.xml
Tomcat 源码分析(三)-WEB加载原理(一)文章目录Tomcat 源码分析(三)-WEB加载原理(一)@[toc]简要说明一、Context 的构建,发布加载WEB应用事件介绍线程的创建线程的处理事务加载WEB应用事件分析事件处理监听创建分析事件的处理-加载web应用二、解析加载web.xml获取到war包,启动线程处理创建应用对象Context构造处理的监听器监听器对加载事件的处理解析w...原创 2019-05-16 16:27:35 · 662 阅读 · 0 评论 -
Tomcat 源码分析(三)-(二)-WEB应用中的Listener、Filter、Servlet 的加载和调用
Tomcat 源码分析(三)-WEB加载原理(二)文章目录Tomcat 源码分析(三)-WEB加载原理(二)@[toc]三、WEB应用中的Listener、Filter、Servlet 的加载和调用web配置的关联真正响应实例的构建分析listenerStart 方法的-构造代码分析filterStart 方法的-Filter 的构建分析loadOnStartup方法-Servlet 的构建请求...原创 2019-05-16 16:29:32 · 1278 阅读 · 0 评论 -
Tomcat 源码分析(三)-(三)-自动加载类及检测文件变动原理
Tomcat 源码分析(三)-WEB加载原理(三)文章目录Tomcat 源码分析(三)-WEB加载原理(三)@[toc]Tomcat 7 自动加载类及检测文件变动原理关于开发工具中的自动加载分析Tomcat自动加载的实现检测文件变动分析WebappLoader 的初始化WebappClassLoader 的 modified 方法-检测变动的代码关于当前资源信息获取关于已加载类的资源信息结束参考...原创 2019-05-16 16:30:55 · 553 阅读 · 0 评论 -
Tomcat内存爆炸处理
Tomcat内存爆炸处理Tomcat内存爆炸处理Tomcat启动JVM配置说明处理方案问题说明方案1方案2Tomcat初始化配置说明原始默认配置方案1方案2Tomcat启动JVM配置说明 例子:JAVA_OPTS=’-server -Xms128m -Xmx5120m -XX:PermSize=128m -XX:MaxPermSi...原创 2018-09-03 18:29:54 · 889 阅读 · 0 评论 -
Spring Cloud Bus 消息总线
Spring Cloud Bus 消息总线安装RabbitMQ下载并安装Erlang和RabbitMQ rabbitmq自带管理后台,安装后需要配置开启 进入rabbitmq安装目录中的sbin目录执行 rabbitmq-plugins enable rabbitmq_management 重启rabbitmq服务生效 打开http://localh...原创 2018-03-19 17:08:25 · 534 阅读 · 0 评论 -
Spring Cloud Hystrix 服务容错保护
Spring Cloud Hystrix 服务容错保护 啥东东啊 (ノ`Д)ノ 在微服务架构中,实现断路器、线程隔离等服务保护功能。基于Netflix开源框架。具备服务降级,服务熔断,线程和信号隔离,请求缓存,请求合并以及服务监控等功能。快速入门使用1.在服务消费项目【ribbon-consumer】添加Hystrix依赖: <!--hystrix -...原创 2018-02-24 09:59:53 · 630 阅读 · 1 评论 -
简单socket 聊天室 C/S模式 小例子
一个简单的使用socket 的简单的 S/C 模式的聊天程序; 周六重新拿以前没弄好的代码改改,弄的;(客户端的程序就不想改了,那时写的太难看了代码)下面就直接上 运行的截图,图形的东东弄的很粗糙 ,就是几个的面板组件 直接扔上去就没有了,(界面就没什么好看的了)!: 按回车来发送消息的,服务端就是原样返回数据 这里会出现名字 是在客户端 发送消息时就加上的; ...原创 2014-08-04 17:05:27 · 5449 阅读 · 2 评论 -
Servlet的JDBC 数据库连接池
JDBC 数据库连接池:(代码测试不能用,不过思路应该是对的,后来改好的 代码不对 没有返回 )首先,需要一个继承DataSource接口的类,这个就是地址池了;改写里面的Connection getConnection()方法(无参的),这个是用来分配地址的,代码可以这么写,大概这样: public Connection getConnection() throws SQL原创 2014-10-06 14:51:46 · 3438 阅读 · 0 评论 -
struts 2 的运作流程介绍及分析(使用纯servlet模拟)
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWo原创 2014-10-06 15:22:04 · 1248 阅读 · 0 评论 -
struts - OGNL的东东Σ( ° △ °|||)︴
简单的语法:1、基于跟对象表达式:任何一个对像可以作为跟对象 可以访问跟对想的所有属性,可以调用跟对象 的所有方法。 2、基于上下文表达式 上下文=Context Map集合访问上下文中值:#key 例子: @Test public void test4() throws Exception{ User user =new Us原创 2014-10-06 15:42:03 · 561 阅读 · 0 评论 -
纯servlet的上传和Json数据处理
文件上传及工具:Apache commons-fileupload (jar包:commons-fileuplod。jar 包 与commons-io包一起使用)cos文件上传这里使用的是Apache commons-fileuplod来完成;这个是纯servlet的东东,其实以后使用框架什么的东东的话是 不会使用这复杂的东东的 用可以直接使用的方法(封装好的)原创 2014-10-06 15:06:43 · 2333 阅读 · 0 评论 -
mybatis - 的使用 (使用配置文件)
简介:MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java对象)映射成数据库中的记录。使用步骤:原创 2014-10-08 19:49:42 · 1374 阅读 · 0 评论 -
struts2 拦截器 的 介绍 和 使用 说明
拦截器的使用说明:struts2中有30多个拦截器, 19个默认使用 1、使用struts2自带的拦截器 token 拦截虽然定义在struts2中,但是默认是不执行。 整个struts2中拦截器分为两种: 1、拦截action所有方法的,以action对象为参照 2、以action中的方法名为参照进行拦截。原创 2014-10-06 16:07:19 · 1183 阅读 · 0 评论 -
杂记:java 并发 的东东
容器:1. Copy-On-Write容器 CopyOnWrite容器即写时复制的容器。java中的容器为CopyOnWriteArrayList和CopyOnWriteArraySet。在并发场景中使用,【用于读多写少的并发场景】【http://ifeve.com/java-copy-on-write/】2.ConcurrentHashMap原创 2016-04-29 11:00:10 · 1740 阅读 · 0 评论 -
Java远程技术介绍学习
Java远程技术介绍学习原创 2016-07-22 14:43:54 · 2340 阅读 · 0 评论 -
简单的nginx代理负载搭建
nginxNginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。简单的nginx代理负载搭建测试系统环境:原创 2016-08-10 11:17:26 · 2199 阅读 · 0 评论 -
jeesite项目使用-多数据库配置【Spring mvc + Mybatis】
jeesite开源项目使用-多数据库配置【Spring + Mybatis】配置DataSource多数据源使用场景:同一个项目涉及多个数据库,既多数据源的情况。一般有两种情况:1。两个数据库没有关系,各自独立,只是独立使用,并不相互使用。【我没有遇到这情况】2。两个数据库,有相关性的,比如:主从master-slave。【我遇到的情况,oracle数据库,一个是主数据库,另一...原创 2017-03-04 16:31:29 · 6611 阅读 · 3 评论 -
Servlet3.0特性详解-笔记
Servlet3.0特性详解-笔记 主要的一些特性:异步处理支持 程完成业务处理】新增的注解支持 【使部署文件web.xml内的声明可以标签注释即可】可插性支持 【支持在jar中进行对项目的声明配置Servlet/过滤器/监听器等】HttpServletRequest 对文件上传的支持 ServletContext 的性能增强原创 2017-06-05 16:39:32 · 3665 阅读 · 0 评论 -
Pjax的学习使用
Pjax的使用简介:是一种页面局部刷新的功能,基于Ajax的。其不同之处在与,插件可以默认绑定替换刷新的div,同时会有浏览器的历史记录【可以进行前进后退操作】。 其中有一个很重要的组成部分, 这些网站的ajax刷新是支持浏览器历史的, 刷新页面的同时, 浏览器地址栏位上面的地址也是会更改, 用浏览器的回退功能也能够回退到上一个页面。优劣:提高用户体验,减少带宽使用浏览器兼容问题,服务器端原创 2017-08-04 16:12:11 · 5138 阅读 · 1 评论 -
Java 7 新特性 和 一丢丢Servlet 3.X
Java 7 新特性 和 一丢丢Servlet 3.XJava 7 的基本新特性Java 语言特性增强(JSR334)回顾java中的并发:Java7中引入的ForkJoinPool 进行分叉和合并原创 2017-07-28 11:06:45 · 448 阅读 · 0 评论 -
Spring Cloud Feign 声明式服务调用
Spring Cloud Feign 声明式服务调用 基于Netfix Feign 实现的,其整合了 Spring Cloud Ribbon 与 Spring Cloud Hystrix 组件,并且提供了一种声明式的Web服务客户端定义方式。简单使用创建新项目feign-consumerpom.xml<dependencies> <depen...原创 2018-02-27 16:14:32 · 8455 阅读 · 0 评论 -
Spring Cloud Zuul - API网关服务
Spring Cloud Zuul - API网关服务 解决微服务中前置校验【冗余】的问题。 可以将于业务无关的校验等剥离出独立项目,由Zuul进行统一调用前置过滤拦截请求。【感觉有点像AOP,不过这个级别就大了】基础搭建创建新项目feign-consumerpom.xml<dependencies> <dependency>...原创 2018-03-15 11:20:05 · 1304 阅读 · 0 评论 -
Spring Cloud Config 分布式配置中心
Spring Cloud Config 分布式配置中心 作为独立微服务应用,用来连接配置仓库 为客户端提供获取配置信息、加密/解密信息等访问接口。 默认采用Git来存储配置信息。基础搭建 config-server创建新项目config-serverpom.xml<dependencies><dependency> <...原创 2018-03-15 11:21:41 · 1398 阅读 · 0 评论