javaweb
文章平均质量分 87
jakeswang
要有一颗奋进的心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
布隆过滤器 (Bloom Filter) 详解
布隆过滤器 (Bloom Filter) 详解https://www.jianshu.com/p/28dd26aaf2eehttp://www.cnblogs.com/hitwtx/archive/2011/08/24/2152180.html import java.util.BitSet;public class SimpleBloomFilter { priva...原创 2018-09-12 11:59:48 · 377 阅读 · 0 评论
-
ServletLess架构简介
摘要:ServletLess(Serverless)架构正改变应用构建方式,让开发者专注业务逻辑而非基础设施。本文对比了传统架构与ServletLess的核心差异,详细解释了其事件驱动、弹性伸缩和按量付费的特点。通过AWSLambda搭建图片处理服务的实例,展示了从环境配置到部署测试的全流程。特别探讨了ServletLess与AI结合的潜力,如异步推理、智能客服等场景。针对现有SpringCloud系统的改造,提出了三种策略并着重介绍了基于SpringCloudFunction的平滑迁移方案,涵盖依赖调整、原创 2025-11-12 14:54:37 · 883 阅读 · 0 评论 -
标签系统的架构设计与实现
本文介绍了基于云原生架构的用户标签系统设计与实现。该系统通过整合用户静态和动态数据,构建精准的用户画像,支持企业精细化运营与智能决策。文章详细阐述了标签系统的核心功能模块(标签定义、计算引擎、模型管理、交互式服务等)和分层架构设计(数据采集、存储、计算、应用层)。关键技术包括:1)基于ANTLR的标签公式解析;2)Spark大规模离线计算与Elasticsearch实时计算结合;3)多层级树形模型评分;4)多存储系统数据同步。该系统采用微服务架构,具有高扩展性和灵活性,为企业构建用户画像平台提供了完整解决方原创 2025-09-05 16:06:22 · 1509 阅读 · 0 评论 -
BigDecimal 的坑
在需要精确的小数计算时再使用BigDecimal,BigDecimal的性能比double和float差,在处理庞大,复杂的运算时尤为明显。故一般精度的计算没必要使用BigDecimal。尽量使用参数类型为String的构造函数。BigDecimal都是不可变的(immutable)的, 在进行每一次四则运算时,都会产生一个新的对象 ,所以在做加减乘除运算时要记得要保存操作后的值。构造方式优先使用String构造或比较操作始终使用而非equals()除法运算必须指定精度和舍入模式(精度控制。原创 2025-07-01 10:57:06 · 854 阅读 · 0 评论 -
Java 中实现 Excel 导入一些疑难杂症
Java 中实现 Excel 导入一些疑难杂症,Excel导入导出字段无法映射问题相关原创 2025-06-27 17:02:23 · 1489 阅读 · 0 评论 -
LowCodeEngine-阿里巴巴钉钉团队开源的低代码引擎
LowCodeEngine 是由阿里巴巴钉钉团队开源的低代码引擎,旨在通过拖拽、配置等简单操作,帮助开发者快速构建复杂的系统页面,提升开发效率和质量。以下是其相关介绍:特性面向扩展设计:提炼自企业级低代码平台的内核引擎,奉行最小内核、最强生态的设计理念,具有高度可扩展性。高质量生态元素:提供开箱即用的高质量生态元素,包括物料体系、设置器、插件等。完善工具链:拥有完善的工具链,支持物料体系、设置器、插件等生态元素的全链路研发周期。强大扩展能力。原创 2025-06-17 16:29:00 · 1481 阅读 · 0 评论 -
Java 项目中实现统一的 追踪ID,traceId实现分布式系统追踪
入口生成:在请求入口(Filter/Interceptor)生成 traceId全链路传递HTTP:通过 Header 传递(X-Trace-IdRPC:通过调用附件传递MQ:通过消息头传递存储位置同步请求:使用MDC异步线程:使用日志集成:在日志模板中添加异常处理:确保在 finally 块中清理上下文ID 生成规则// 示例:服务前缀 + 时间戳 + 随机数。原创 2025-06-13 17:03:36 · 1140 阅读 · 0 评论 -
网站应用攻击与防御(常见9种攻击方式)
XSS全称为Cross Site Script,即跨站点脚本攻击,一般攻击者通过篡改网页 注入恶意HTML脚本,在用户浏览网页时就能执行恶意的操作,像html、css、img都有可能被攻击。原创 2025-06-05 13:42:13 · 915 阅读 · 0 评论 -
高性能架构设计-高性能可伸缩架构
系统是一个整体,如果只是节点级别的伸缩,可能要对多个节点分别进行操作,而且不同节点的资源配置会相互影响,这样对各个节点的调整就非常复杂,影响了系统 的可伸缩能力。系统处理请求不一定要实时同步,请求流量的高峰期时间往往很短,所以有些时候,可以延长系统的处理时间,只要在一个相对合理的时间内,系统能够处理完请求就可以了,这是一种异步化的处理方式。系统的可伸缩也有两种实现方式。:异步处理给系统的处理增加了弹性空间,可以利用更多的处理时间,来降低系统对资源 的实时需求,在保证系统处理能力的同时,降低系统的成本。原创 2025-05-02 07:00:00 · 710 阅读 · 0 评论 -
网站高性能架构设计——web前端
动静分离”就是把用户请求的数据(如 HTML 页面)划分为“动态数据”和“静态数据”。简单来说,“动态数据”和“静态数据”的主要区别就是看页面中输出的数据是否和 URL、浏览者、时间、地域相关,以及是否含有 Cookie 等私密数据。很多媒体类的网站,某一篇文章的内容不管是你访问还是我访问,它都是一样的。所以 它就是一个典型的静态数据,但是它是个动态页面。如果现在访问淘宝的首页,每个人看到的页面可能都是不一样的,淘宝首页中包含 了很多根据访问者特征推荐的信息,而这些个性化的数据就可以理解为动态数据了。原创 2025-04-25 07:15:00 · 670 阅读 · 0 评论 -
单点登录原理与简单实现
单系统登录机制-用户向sso认证中心提交注销请求,sso认证中心注销全局会话,但不知道哪些系统用此全局会话建立了自己的局部会话,也不知道要向哪些子系统发送注销请求注销局部会话。原创 2025-04-10 06:30:00 · 1276 阅读 · 0 评论 -
Maven版本管理
在maven中会有一个统一存储所有项目的共享构建的位置,这个统一的位置,我们就称之为仓库。原创 2025-04-10 06:45:00 · 1294 阅读 · 0 评论 -
spring框架maven依赖pom配置
使用Maven来管理Spring项目的依赖,可以有效地简化项目结构和依赖管理。上面的示例展示了如何为不同类型的Spring项目配置pom.xml,包括基本的Spring项目和Spring Boot项目。根据你的具体需求,可以调整或添加相应的依赖,以满足项目的功能要求。原创 2018-01-08 19:59:24 · 18986 阅读 · 0 评论 -
RESTful API 优雅设计与统一规范指南
通过遵循这些规范,可以构建出易理解、易维护、高性能的RESTful API,为前后端协作提供清晰契约。原创 2025-04-07 06:45:00 · 1549 阅读 · 0 评论 -
实现腾讯云COS图片上传并确保可预览
当您上传图片到腾讯云对象存储(COS)后,如果图片总是直接下载而不是在浏览器中预览,这通常是由于以下几个原因造成的原创 2025-04-04 07:00:00 · 2111 阅读 · 1 评论 -
并行利器CompletableFuture功能用法安利
并行利器CompletableFuture功能用法安利原创 2025-04-03 09:43:10 · 919 阅读 · 0 评论 -
BeanUtils 和 MapStruct对象拷贝工具对比
都是用于对象属性映射(Bean Mapping)的工具,但它们在性能、灵活性、使用方式上有显著差异。下面从多个维度进行详细对比,并给出具体使用示例。如果有更复杂的映射需求(如动态条件转换),可以考虑。,但它们仍基于反射,性能不如 MapStruct。强(支持嵌套对象、集合、条件映射等)高度灵活,支持自定义转换逻辑。需定义 Mapper 接口。编译时生成代码(无反射)反射(运行时动态映射)需要编译时注解处理器(简单的属性拷贝(低频)需要嵌套对象、集合映射。高性能、复杂对象转换。高性能、复杂对象转换。原创 2025-03-29 08:39:59 · 831 阅读 · 0 评论 -
spring循环依赖以及MyBatis-Plus的继承特性导致循环依赖自动解决失效
MyBatis-Plus的Bean包装:有观点认为,由于Service集成了MyBatis-Plus的基类,Spring可能将其视为“包装过的类”,这可能导致Spring的三级缓存机制无法正常工作,从而引发循环依赖问题。使用@Lazy注解:在Spring中,可以通过在注入的字段上添加@Lazy注解来延迟Bean的加载,这样可以避免循环依赖的问题。重新设计架构:如果可能,重新设计服务层的架构,减少服务之间的直接依赖,或者将一些共用的服务抽象出来,以减少循环依赖的可能性。注解等方法来解决循环依赖问题。原创 2024-11-24 18:30:51 · 1114 阅读 · 0 评论 -
数据库连接池相关-druid相关介绍及源码分析
各种数据库连接池对比主要功能对比 Druid BoneCP DBCP C3P0 Proxool JBoss Tomcat-Jdbc LRU 是 否 是 否...原创 2021-01-28 17:43:45 · 1133 阅读 · 0 评论 -
如何提升弹幕互动的思考
弹幕作为一种亚产品,已经越来越被音视频产品所广泛使用。有像B站一样从右至左快速飞过的传统文字弹幕,以及在此基础上添加了表情、昵称、互动功能的各类升级版弹幕,也有以QQ音乐为代表的自下而上浮现的气泡式弹幕。弹幕产品的本质可以是说以内容为载体的“注意力经济”。作为内容,其表现形态是文字,其视觉表达依赖于字数、字体、字色、字号、底图(色)、动效的运用。作为注意力经济,它的产生则要从需求的源头谈起。今天我们就来分析一下弹幕产品究竟是如何产生的,并在此基础上思考如何深挖弹幕产品潜力,最终提高用户活原创 2021-01-18 17:03:19 · 1357 阅读 · 1 评论 -
spring boot jar冲突问题集锦
spring boot jar冲突问题集锦本文主要总结下spring boot项目搭建过程中,冲突解决的一些小经验1、日志jar包冲突:1.1、日志主要是spring boot自带spring-boot-starter-logging的排除,一是要用log4j2,二是xdcs不排除这个也会有冲突。(隐秘程度:低;重要程度:高)<exclusion><artifactId>spring-boot-starter-logging</artifactId.原创 2021-01-12 17:26:30 · 1151 阅读 · 0 评论 -
fullGC总结
1.tomcat 线程池线程不回收导致频繁fullgc查看tomcat线程池,线程池中线程数达到2000tomcat6 线程池配置参数解读tomcat配置手册线上环境,引用tomcat 线程池配置<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="2000" maxQueueSize="2000"/>最大活跃线程数配置2000(相当于线程池最大核心...原创 2021-01-12 17:10:42 · 613 阅读 · 0 评论 -
csv以及excel文件解析
<!-- csv文件解析依赖 --><dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>4.3.2</version></dependency><dependency> <groupId>org.projectlombok<.原创 2020-07-30 18:54:11 · 1381 阅读 · 0 评论 -
prometheus+granfna做数据监控
prometheus+granfna做数据监控原创 2020-05-14 14:10:03 · 1054 阅读 · 0 评论 -
评论系统总结(如何抗住大UGC)
1.评论服务的基本业务需求;常见的评论系统主要有三种:楼中楼模式、流模式和引用模式(都是我自己起的名字),下面集中介绍这三种的优劣势以及实现方法。https://blog.csdn.net/Kit_G/article/details/79855964https://blog.csdn.net/qq_40962427/article/details/893044642.评论服务...原创 2020-03-24 16:15:14 · 711 阅读 · 0 评论 -
redis使用总结:
redis官网:https://redis.io/经典博客:https://blog.csdn.net/qq_40693171/article/details/97437427springboot整合spring Cache(redis):https://blog.csdn.net/qq_40693171/article/details/99676253Springboot整合redi...原创 2020-01-07 19:58:12 · 277 阅读 · 0 评论 -
TiDB 简介
TiDB 简介:https://pingcap.com/docs-cn/(这篇文章整理的挺全面的)TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。T...原创 2020-01-07 16:56:26 · 2114 阅读 · 0 评论 -
跨域问题以及如何手写一个代理服务实现postman功能
写一个代理工具服务,所有的请求经过此服务转发到不同的服务,可以统一处理跨域问题,只要允许这个服务的请求即可。中转工具: https://blog.csdn.net/xxssyyyyssxx/article/details/729544991. 用户浏览器自己放开跨域限制: https://www.jianshu.com/p/2db73311fcbe2. nginx部分一些对域名的操作:...原创 2020-01-07 14:12:20 · 847 阅读 · 0 评论 -
javaweb获取Ipv6
request.getRemoteAddr()取得的是IPv6的地址格式解决方法:https://www.cnblogs.com/labao/p/6715879.htmlIPV6地址格式分析:https://www.cnblogs.com/lsgxeva/p/9209266.htmlhttps://blog.csdn.net/qq125293177/article/details/...原创 2019-12-26 17:15:41 · 2734 阅读 · 1 评论 -
购物车多层Map封装
/** * @description: 根据warehouseCode二层分级展示订单信息 * @param orderId * @return * @author:wangchong * @createTime:2015年7月12日 下午4:54:23 */ public static Map> queryOrderDetai原创 2016-01-25 13:10:45 · 1058 阅读 · 0 评论 -
spring启动时只执行一次的方法实现
spring项目如何在启动项目只执行一次@PostConstruct 方法InitializingBean.afterPropertiesSet()@Bean 的 initMethod 指定方法ApplicationListener<ContextRefreshedEvent>CommandLineRunner/ApplicationRunnerApplicationReadyEvent 监听器原创 2019-06-19 10:04:01 · 8880 阅读 · 2 评论 -
http乱码问题
package com.json.lkl;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Map;public class HttpUtils { public static String原创 2017-05-28 18:04:58 · 333 阅读 · 0 评论 -
APP版本控制问题
现在很多公司APP版本不断迭代,需要兼容旧版本,有了版本控制。升级版本,我们可以添加新接口进行支持,但是,如果改动较小,只需要传入版本号,进行版本控制。但是当版本数量较多,老版的使用率极低,没必要做兼容,减少维护成本,我们需要进行强制升级。强制升级的版本做成可控制的,方便后台操作;强制升级,字段定义,版本号,版本状态,平台UpgradeStatus: " + appVe原创 2017-03-02 10:57:42 · 7924 阅读 · 1 评论 -
phantomjs自动截图生成图片
https://www.jianshu.com/p/41d5e08af0a7https://www.cnblogs.com/bangejingting/p/6907628.html有时候我们需要定时的生成一些报表图片,或者通过钉钉等发送给对应用户或群组;第一步,本地生成报表,可以用baiduEchart等https://www.echartsjs.com/zh/tutorial.h...原创 2019-12-12 15:16:40 · 676 阅读 · 0 评论 -
gzip或者zip进行压缩缓存内容压缩
package com.lvtu.utils;import net.sf.json.JSONObject;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.*;public原创 2016-10-11 14:50:20 · 2384 阅读 · 0 评论 -
java通过缓存实现同步锁
//极验注册分值>=90,跳到错误页面,提示语:该手机号暂时无法在线注册,请联系客服。 String mobile = request.getMobile(); // 加锁的KEY String lockKey = LvtuClientMemCacheConstants.USUAL_CACHEKEY_CONSTANTS.MYLVMM_LVTU_原创 2016-10-25 20:25:50 · 2298 阅读 · 0 评论 -
校验身份证信息
package com.lvtu.csa.utils;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.Map;public class IdCardValidation { final static M原创 2016-12-20 12:01:49 · 517 阅读 · 0 评论 -
防sql注入
${param}传递的参数会被当成sql语句中的一部分,比如传递表名,字段名例子:(传入值为id)order by ${param} 则解析成的sql为:order by id#{parm}传入的数据都当成一个字符串,会对自动传入的数据加一个双引号例子:(传入值为id)select * from table where name = #{param}原创 2017-05-31 16:06:53 · 686 阅读 · 0 评论 -
防XSS注入
package com.lvtu.service.api.rop.intercept;import java.io.IOException;import java.io.PrintWriter;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.rege原创 2017-05-31 16:12:47 · 640 阅读 · 0 评论 -
无线大图换小图实现
图片过大,图片服务器提供不同格式图片,服务器获取url进行转换;package com.lvtu.dao.common;import org.apache.commons.lang3.StringUtils;public class Test { public static void main(String[] args) { S原创 2017-06-07 15:22:16 · 371 阅读 · 0 评论
分享