
Java Web
文章平均质量分 52
wtopps
当你的才华满足不了你的野心时,你应该滚去学习
展开
-
Excel读取图片工具类
【代码】Excel读取图片工具类。原创 2025-03-14 09:29:20 · 224 阅读 · 0 评论 -
记一次线上MySQL死锁case
existsAuditingRecordInLock的实现可以看到,使用了共享锁查询audit_process_record的行数,线上MySQL的事务级别使用RR,使用共享锁的目的,应该是希望避免快照读,而是使用当前读,并发场景下,可以查询到其他线程的最新数据,但问题也恰恰出在这里。线程A先获得记录1的排他锁,然后要获取所有记录(包括记录2)的共享锁。线程B先获得记录2的排他锁,然后要获取所有记录(包括记录1)的共享锁。使用其他的分布式锁,例如Redis或者ZK,代替MySQL的锁操作。原创 2025-01-17 17:23:35 · 280 阅读 · 0 评论 -
RestTemplate配置绕过HTTPS SSL证书校验
【代码】RestTemplate配置绕过HTTPS SSL证书校验。原创 2024-06-19 16:27:11 · 1407 阅读 · 0 评论 -
Dubbo3在k8s下网卡地址注册时引发的问题
在k8s host网络模式下,dubbo3在注册zk时,偶现注册地址IP来回变化的情况,有可能获取的是宿主机IP,有可能获取的是Docker的虚拟IP,host网络模式正常情况下,应该是获取宿主机IP,而不应该获取docker虚拟IP。原创 2024-01-19 09:55:27 · 575 阅读 · 0 评论 -
SpringBoot Logback配置文件引入子配置文件
根据子项目中Logback的配置,通过LogPrint类打印的日志,都会打印到指定的文件中,不会打印到主项目的日志文件。核心需要注意的是,子项目的Logback.xml中的配置,需要使用 标签才可以被主项目引入成功。子项目Logback。原创 2023-12-05 10:09:42 · 672 阅读 · 1 评论 -
Apache Druid连接回收引发的血案
minEvictableIdleTimeMillis:最小空闲时间,默认30分钟,如果连接池中非运行中的连接数大于minIdle,并且那部分连接的非运行时间大于minEvictableIdleTimeMillis,则连接池会将那部分连接设置成Idle状态并关闭;那也就是说,如果按照缺省配置,minEvictableIdleTimeMillis 30分钟,maxEvictableIdleTimeMillis 7天,确实可能会出现Druid认为连接还存活着,但MySQL判断空闲时间超过配置,将会回收连接。原创 2023-11-09 15:52:10 · 1539 阅读 · 1 评论 -
Java判断文件是否是图片
【代码】Java判断文件是否是图片。原创 2023-11-06 16:00:34 · 602 阅读 · 0 评论 -
Skywalking Kafka Tracing实现
Skywalking默认场景下,Tracing对于消息队列的发送场景,无法将TraceId传递到下游消费者,但对于微服务场景下,是有大量消息队列的业务场景的,这显然无法满足业务预期。原创 2023-08-23 10:45:05 · 2257 阅读 · 0 评论 -
如何为线上正在运行的服务的某个类加条日志?
前言请您思考这样一个问题:如何为线上服务的某个类加条日志?您可能说,这还不简单,在代码里加条日志,Git一提交,发布一下不就搞定了!但是如果这个服务特别重要,你没办法随意重启,你该怎么办呢?本篇,我们就来聊一聊这个“头疼的问题”。如何为正在飞驰的汽车换轮子你有没有遇见过这样的场景,一个接口的逻辑非常之复杂,涉及到大量的接口调用与内部多层次逻辑嵌套处理,好似这样:突然某一天,产品来找...原创 2019-12-14 13:01:21 · 538 阅读 · 0 评论 -
Java服务MQ消息队列容灾方案
背景介绍在前一段时间线上出现过一次事故,一个非常重要的消息生产者服务,由于MQ出现问题,消息大量积压,导致了该服务线程被打满,外部请求返回502,服务采用Springboot搭建,使用Springboot的Tomcat容器。原因分析消息的生产者服务是一个高并发量的服务,接受外部方的接口调用,并将消息推送至MQ,调用流程示意图如下:而事故当天的情况是,MQ消息大量积压,基本等...原创 2018-07-07 18:40:49 · 3355 阅读 · 0 评论 -
Java Quartz 构建定时调度任务
前言在日常开发中,我们经常会遇见这样的情况,我们要在指定的时间去执行一个任务,或者周期性在某个时间点上执行一个任务,这种事情让人去操作显然是不合适的,因此,我们可以使用Quartz来实现我们的要求。 Quartz对于Java提供友好的API和文档,帮助我们构建定时调度任务,本文中的quartz版本为2.2版本。原创 2017-12-14 22:55:48 · 3405 阅读 · 1 评论 -
<s:property>标签详解
1,访问Action值栈中的普通属性: 2,访问Action值栈中的对象属性(要有get set方法): 3,访问值栈中对象属性的方法 4,访问值栈中action的普通方法: 5,访问静态方法: 6,访问静态属性: 配置属性文件,允许ognl访问静态方法struts.ognl.allow...=true 7,访问Math类的静态转载 2014-10-10 20:15:20 · 958 阅读 · 0 评论 -
web.xml里的listener、filter标签配置
1、Web应用图标:指出IDE和GUI工具用来表示Web应用的大图标和小图标/images/app_small.gif/images/app_large.gif2、Web 应用名称:提供GUI工具可能会用来标记这个特定的Web应用的一个名称Tomcat Example3、Web 应用描述: 给出于此相关的说明性文本Tomcat Example servlets an转载 2014-10-22 21:30:18 · 752 阅读 · 0 评论 -
Hibrenate工作原理
1.Hibernate 的初始化. 读取Hibernate 的配置信息-〉创建Session Factory 1)创建Configeration类的实例。 它的构造方法:将配置信息(Hibernate config.xml)读入到内存。 一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。 2)创建SessionFactory实例 把Con转载 2015-03-09 09:26:42 · 498 阅读 · 0 评论 -
通过代理的方式让Spring注入Servlet
使用Spring注入Servlet正常情况下我们调用Servlet,需要在web.xml配置文件中加入响应的配置,指明servlet的信息,而当servlet数量非常多的时候,这样的方式会很不方便,下面介绍一下使用通过Spring的自动注入,将servlet类交给spring托管的方案。原创 2017-05-27 11:05:15 · 1613 阅读 · 0 评论 -
RESTEASY003130: Class is not a root resource的问题原因
问题描述今天在使用dubbox的时候,在启动服务的时候报出一个错误,导致应用无法启动,错误的提示信息为: Initialization of bean failed; nested exception is java.lang.RuntimeException: RESTEASY003130: Class is not a root resource.原创 2017-08-08 16:48:28 · 5614 阅读 · 0 评论 -
解决表单重复提交的问题
现象描述最近在开发的时候,遇见这样的问题,当我们在网络状况不太好的情况、或者一个业务的后台业务逻辑执行时间较长的时候,用户可能会点击多次提交或刷新多次页面,导致表单数据被提交了多次,导致了可能出现莫名其妙的问题。原创 2017-07-20 20:16:34 · 1447 阅读 · 0 评论 -
Cookie Session跨站无法共享问题(单点登录解决方案)
单点登录什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用在此登录。 一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注销等操作。 我们为了讨论方便,把这个登录站点叫做站点P,设其Url为http://passport.yizhu2000.com,需要提供服务的站点设为A和B,跨站点单点登录是指你在A网站进行登录后,使转载 2017-07-12 19:31:54 · 5822 阅读 · 2 评论 -
使用Servlet Filter实现系统登录权限校验
Servlet Filter介绍过滤器是一些web应用程序组件,可以绑定到一个web应用程序中。但是与其他web应用程序组件不同的是,过滤器是”链”在容器的处理过程中的。这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发响应信息返回到客户前访问这些响应信息。这种访问使得过滤器可以检查并修改请求和响应的内容。原创 2017-06-05 19:16:44 · 6284 阅读 · 2 评论 -
Java Web服务收到请求时线程的情况
Web请求线程的状态在开发中,突然想到了这样的一个问题, Java对每一次Web的请求,是否都会创建一条线程去进行处理呢?也就是说,当一个Class的方法同时有1000个请求访问时,线程是如何运作的呢?解释上面的问题,首先需要说一下Web服务器处理请求的几种模式原创 2017-05-07 17:29:15 · 10540 阅读 · 4 评论 -
Hibernate的乐观锁与悲观锁
在使用Hibernate的过程我们会遇到多个人对同一数据同时进行修改,这个时候就会发生脏数据,造成数据的不一致性。为了避免更新数据的丢失,Hibernate采用锁机制。Hibernate提供了两种锁机制:悲观锁和乐观锁。转载 2016-10-10 15:00:28 · 355 阅读 · 0 评论 -
Hibernate ORM实现原理简述
1. 什么是ORMORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。转载 2016-08-22 09:49:12 · 4298 阅读 · 0 评论 -
struts2之ModelDriven
struts2之ModelDriven当我们想把一个Form表单提交到Action层的时候,我们一般会这样 用户名: 密码: 确认密码: 在Action层中我们会写对应的属性去接收提交过来的值private String username; private String password; public String getUs原创 2015-05-27 16:52:19 · 580 阅读 · 0 评论 -
浅谈session.load()和session.get()
Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其区别在于:1. 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null。 2. load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为tru转载 2015-03-30 07:55:10 · 1302 阅读 · 0 评论 -
[转载]cookie 和session 的区别详解 - 施杨
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。转载 2014-09-20 10:07:09 · 743 阅读 · 0 评论