掌握 Spring 框架这 10 个扩展点,开发效率直接翻倍
当我们提到 Spring 时,或许首先映入脑海的是 IOC(控制反转)和 AOP(面向切面编程)。它们可以被视为 Spring 的基石。正是凭借其出色的设计,Spring 才能在众多优秀框架中脱颖而出。 Spring 具有很强的扩展性。许多第三方应用程序,如 rocketmq、mybatis、redis 等,都可以轻松集成到 Spring 系统中。让我们一起来看看 Spring 中最常用的十个扩展点。 1. 全局异常处理过去,在开发接口时,如果发生异常,我们通常需要给用户一个更友好的提示。但如果不进行错误处理,例如: @RequestMapping("/test") @RestController publicclassTestController { @GetMapping("/division") publicStringdivision(@RequestParam("a") inta, @RequestParam("b") intb) { ...
Minikube安装教程
阶段一:系统准备(先决条件) 启用虚拟化 (BIOS/UEFI 设置) 重启电脑,进入 BIOS/UEFI 设置界面(通常在启动时按 **F2**, **F10**, **Del** 等键)。 找到关于 Virtualization Technology (VT-x)、Intel Virtualization Technology 或 SVM Mode (AMD CPU) 的选项,将其设置为 Enabled。 保存并退出。这是运行虚拟机的基础,必须开启。 启用 Windows Hypervisor 平台 (可选,但推荐) 在 Windows 搜索框中输入“启用或关闭 Windows 功能”,并打开它。 在弹出窗口中,找到并勾选 【Windows Hypervisor 平台】。 如果打算使用 Hyper-V,也请勾选 【Hyper-V】(请注意,Hyper-V 仅在 Windows 10/11 专业版、企业版或教育版中可用)。 点击“确定”,等待安装完成,并根据提示重启计算机。 安装容器/虚拟机驱动(二选一)Minikube 需要一个驱动来创...
Deepseek 本地部署各个版本超级详细教学,网页版、软件版
前言最近,人工智能行业出现了一股新的浪潮,DeepSeek作为一款备受关注的开源语言模型,凭借其出色的表现和广泛的应用前景,迅速在全球范围内吸引了大量的关注。从技术圈到商业领域,DeepSeek的热度持续上升,甚至出现了“爆满”的趋势。这不仅展现了其强大的技术优势,也表明市场和用户对它的高度期待。 本篇文章将为大家讲解如何在本地环境中安装并运行DeepSeek模型,同时结合DeepSeek、Ollama、OpenWebUI、Chatbox AI与Cherry Studio等工具,实现高效便捷的模型交互体验。无论你是技术爱好者、开发者还是企业用户,本文将提供简明的部署步骤,帮助你迅速掌握并充分发挥DeepSeek的优势。 Ollama 介绍Ollama 是一个开源平台,专为大型语言模型(LLM)设计,旨在简化用户在本地运行、管理和与这些模型进行互动的过程。其核心特色包括: 本地部署与离线使用:支持在本地计算机上运行,无需依赖云服务,确保数据隐私。 跨平台支持:兼容 Windows、macOS 和 Linux 系统。 丰富的模型库:提供多种预训练模型(如 Llama、DeepSe...
Slow HTTP POST 慢速攻击
测试工具模拟测试工具:slowhttptest https://github.com/shekyan/slowhttptest 安装: https://github.com/shekyan/slowhttptest/wiki 使用: slowhttptest -c 5000 -u [hostname/ip] -c 表示发起5000个连接,由于是慢速DDOS且是基于http协议的,这里发起的连接请求是确确实实会与服务器进行三次握手并维持与服务器的连接的。 -u 注意这里的hostname或者ip都需要在前面加上协议 http://。 模拟测试: ./slowhttptest -c 5000 -u https://192.168.1.3 slow HTTP test status on 50th second: initializing: 0 pending: 8 connected: 1757 error: 0 ...
JDK 紧急漏洞,XMLDecoder反序列化攻击
昨天在公司发现了一个jdk中的XMLDecoder反序列化的漏洞,看起来很危险!下面通过两个示例来看看这个漏洞的危害! 示例1:利用XmlDecoder删除本地文件首先来看这个xmldecoder.xml文件内容: <?xml version="1.0" encoding="UTF-8"?> <java version="1.8.0_151" class="java.beans.XMLDecoder"> <object class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="4"> <void index="0"> <string>cmd</st...
会话固定攻击漏洞
什么是会话固定攻击?会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。 看下面Session Fixation攻击的一个简单例子: 整个攻击流程是: 1、攻击者Attacker能正常访问该应用网站; 2、应用网站服务器返回一个会话ID给他; 3、攻击者Attacker用该会话ID构造一个该网站链接发给受害者Victim; 4-5、受害者Victim点击该链接,携带攻击者的会话ID和用户名密码正常登录了该网站,会话成功建立; 6、攻击者Attacker用该会话ID成功冒充并劫持了受害者Victim的会话。 更多攻击例子参考:https://www.owasp.org/index.php/Session_fixation 攻击分析攻击的整个过程,会话ID是没变过的,所以导致此漏洞。 攻击修复1、登录重建会话 每次登录后都重置会话ID,并生成一个新的会话ID,这样攻击者就无法用自己的会话ID来劫持会话,核心代码如下。 ...
8 条关于 Web 前端性能的优化建议
一般网站优化都是优化后台,如接口的响应时间、SQL优化、后台代码性能优化、服务器优化等。高并发情况下,对前端web优化也是非常重要的。 下面说说几种常见的优化措施。 1、HTML CSS JS位置 一般需要将CSS放页面最上面,即HEAD部分,而将JS代码放页面底部。因为页面需要加载为CSS才进行渲染,而JS如果不是在页面加载之前就要执行就要放到页面最底部,以免在页面展示之前因JS过多加载而影响页面渲染速度。 2、引用文件位置 有一些插件需要引用到远程的图片、CSS、JS、图标等,如果远程的资源连接网速不佳,如国外的某些资源,会造成网页阻塞,同样也会造成页面展示问题,尽量能把引用远程的资源能本地化。 3、减少后台请求 每个请求都是耗费资源影响系统性能的,所以,能减少后台请求就减少。如,尽量的将同一个资源(图片、JS、CSS等)合并成一个文件,页面只要请求一次即可,这样就节省了很多http连接的开销及往返的时间损耗。 另外一方面,如果是关于抽奖、摇一摇、秒杀等功能,可以限制发往后台的频率,如前端操作10次才往后端发一次请求,这样从前端就做到了后台的流量控制,把流量控制到访问的最外层...
百分九十Java程序员被误导的一个性能优化策略
我们经常看到一些 Java 性能优化的书或者理念,如《44个Java代码性能优化总结》。有的观念说不要在循环内定义变量,这样会占用过多的内存影响性能,而要在循环外面定义。接触 Java 这么久以来,相信很多 Java 程序员都被这种代码性能优化策略所误导。 看下面两个示例,示例1在循环外定义变量,示例2是在循环内定义变量。 /** * 循环外定义变量 */ private static void outer() { Javastack javastack = null; for (int i = 0; i < 10; i++) { javastack = new Javastack(); } } /** * 循环内定义变量 */ private static void inner() { for (int i = 0; i < 10; i++) { Javastack javastack = n...
SLA 服务可用性 4 个 9 是什么意思?怎么达到?
SLA:服务等级协议(简称:SLA,全称:service level agreement)。是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。 SLA的定义来源百度,这到底是什么意思呢? 我们平常经常看到互联网公司喊口号,我们今年一定要做到3个9、4个9,即99.9%、99.99%,甚至还有5个9,即99.999%。 这么多9代表什么意思呢? 首先,SLA的概念,对互联网公司来说就是网站服务可用性的一个保证。9越多代表全年服务可用时间越长服务更可靠,停机时间越短,反之亦然。 这么多9是怎么计算的呢? 全年拿365天做计算吧,看看几个9要停机多久时间做能才能达到! 1年 = 365天 = 8760小时 99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时 99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟 99.999 ...
网站性能测试指标详解
常用的网站性能测试指标有:吞吐量、并发数、响应时间、性能计数器等。 并发数并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。 响应时间响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间。 吞吐量吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标。 QPS(每秒查询数)、TPS(每秒事务数)是吞吐量的常用量化指标,另外还有HPS(每秒HTTP请求数)。 跟吞吐量有关的几个重要是:并发数、响应时间。 QPS(TPS),并发数、响应时间它们三者之间的关系是: QPS(TPS)= 并发数/平均响应时间 性能计数器性能计数器是描述服务器或操作系统性能的一些数据指标,如使用内存数、进程时间,在性能测试中发挥着“监控和分析”的作用,尤其是在分析统统可扩展性、进行新能瓶颈定位时有着非常关键的作用。 Linux中可以使用top或者uptime命令看到当前系统的负载及资源利用率情况。 资源利用率:指系统各种资源的使用情况,如cpu占用率为...
