消息中间件activeMQ

activemq消息中间件 订单秒杀系统下单之后存在在业务的流程(读取订单、库存检查、库存冻结、余额检查、余额冻结、订单生成、余额扣减、库存扣减、生成流水、余额冻结、库存解冻)RPC接口基本是同步调用,整体的服务性能遵循“木桶理论”,即整体系统的耗时取决于最慢的那个接口。比如A调用B/C/D都是50 ms,但是B调用B1花费的时间为2000 ms,那么将会拖累整个系统的服务性能。注:在设计系统时,明确达到的目标要做到系统解耦,当新的模块接进来时,要做到代码的改动最小;能够解耦。 阅读详情

    大型系统的演变必然的发展方向是分布式,而在分布式系统中应用与应用之间互相连接越来越紧密,在应用之间的消息传递就像家常便饭般普遍。使用Java消息中间件处理异步消息成为了分布式系统中的必修课,
我们需要学习如何在Java中使用消息中间件并且一步一步打造更优雅的最佳实践方案。
  
    消息队列的好处:解耦、异步、安全可靠、顺序保证(kafaka)、横向扩展。

Linux 上安装方式:1. 解压,

2.启动:./bin/activemq start

3. 停止 ./bin/activemq stop

 

主题模式需要消费者提前订阅主体,不然订阅之前的信息消费不了;

队列模式:平均接收消息生产者产生的消息
主题模式:全部接收生产者产生的所有消息

 

SpringMVC 集成 JMS:此处只贴出部分主要代码,需要完整项目可以发邮件给我liri1024@163.com,可以发给你

Maven Pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework.samples.service.service</groupId>

    <artifactId>activemq</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <packaging>war</packaging>

 <properties>

       <!-- Generic properties -->

       <java.version>1.6</java.version>

       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

       <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

       <!-- Web -->

       <jsp.version>2.2</jsp.version>

       <jstl.version>1.2</jstl.version>

       <servlet.version>2.5</servlet.version>

       <!-- Spring -->

       <spring-framework.version>3.2.3.RELEASE</spring-framework.version>

       <!-- Logging -->

       <logback.version>1.0.13</logback.version>

       <slf4j.version>1.7.5</slf4j.version>

       <!-- Test -->

       <junit.version>4.11</junit.version>

    </properties>

    <dependencies>

       <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-context</artifactId>

           <version>${spring-framework.version}</version>

       </dependency>

       <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-context-support</artifactId>

           <version>${spring-framework.version}</version>

       </dependency>

       <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-web</artifactId>

           <version>${spring-framework.version}</version>

       </dependency>

       <dependency>

           <groupId>org.quartz-scheduler</groupId>

           <artifactId>quartz</artifactId>

           <version>1.8.5</version>

       </dependency>

       <!-- Spring MVC -->

       <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-webmvc</artifactId>

           <version>${spring-framework.version}</version>

       </dependency>

 

       <!-- Other Web dependencies -->

       <dependency>

           <groupId>javax.servlet</groupId>

           <artifactId>jstl</artifactId>

           <version>${jstl.version}</version>

       </dependency>

       <dependency>

           <groupId>javax.servlet</groupId>

           <artifactId>servlet-api</artifactId>

           <version>${servlet.version}</version>

           <scope>provided</scope>

       </dependency>

       <dependency>

           <groupId>javax.servlet.jsp</groupId>

           <artifactId>jsp-api</artifactId>

           <version>${jsp.version}</version>

           <scope>provided</scope>

       </dependency>

 

       <!-- Spring and Transactions -->

       <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-tx</artifactId>

           <version>${spring-framework.version}</version>

       </dependency>

 

       <dependency>

           <groupId>javax.annotation</groupId>

           <artifactId>jsr250-api</artifactId>

           <version>1.0</version>

       </dependency>

       <dependency>

           <groupId>org.apache.activemq</groupId>

           <artifactId>activemq-all</artifactId>

           <version>5.9.0</version>

       </dependency>

       <dependency>

           <groupId>org.apache.activemq</groupId>

           <artifactId>activemq-pool</artifactId>

           <version>5.9.0</version>

       </dependency>

       <dependency>

           <groupId>org.springframework</groupId>

           <artifactId>spring-jms</artifactId>

           <version>${spring-framework.version}</version>

       </dependency>

 

    </dependencies>

</project>

 

application-jms.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core"

   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

       http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd">

 

   <!-- Activemq 连接工厂 -->

   <bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

      <constructor-arg value="system1" />

      <constructor-arg value="manager1" />

      <constructor-arg value="failover:(tcp://192.168.1.15:61616)?timeout=2000" />

   </bean>

 

   <!-- ConnectionFactory 定义 -->

   <bean id="connectionFactory"

      class="org.springframework.jms.connection.CachingConnectionFactory">

      <constructor-arg ref="activeMQConnectionFactory" />

   </bean>

 

   <!-- 目标队列定义,定义生产者生产query或者topic定义生产者生产query或者topic -->

   <!-- 队列模式 -->

   <bean id="destinationQueue" class="org.apache.activemq.command.ActiveMQQueue">

   <!-- 生产者发送的队列自定义名字 -->

      <constructor-arg index="0" value="test.activemq.queue" />

   </bean>

   <!-- 主题模式 -->

   <bean id="destinationTopic" class="org.apache.activemq.command.ActiveMQTopic">

      <constructor-arg index="0" value="test.activemq.topic" />

   </bean>

  

   <!-- JmsTemplate 定义 -->

   <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

      <property name="connectionFactory" ref="connectionFactory" />

      <property name="defaultDestination" ref="destinationQueue" />

   </bean>

 

   <!-- Queue发送消息的定义-->

   <bean id="messageSenderQueue" class="activemq.publisher.MessageSenderQueue">

      <constructor-arg index="0" ref="jmsTemplate" />

      <constructor-arg index="1" ref="destinationQueue" />

   </bean>

   <!-- topic发送消息的定义-->

   <bean id="messageSenderTopic" class="activemq.publisher.MessageSenderTopic">

      <constructor-arg index="0" ref="jmsTemplate" />

      <constructor-arg index="1" ref="destinationTopic" />

   </bean>

 

   <!-- 消息监听器 定义-->

   <!-- 两个队列模式的监听器 -->

   <bean id="messageReceiverQueue" class="activemq.consumer.MessageReceiverQueue"/>

   <bean id="messageReceiverQueue2" class="activemq.consumer.MessageReceiverQueue2"/>

   <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">

      <property name="connectionFactory" ref="connectionFactory" />

      <property name="destinationName" value="test.activemq.queue" />

      <property name="messageListener" ref="messageReceiverQueue" />

      <!-- <property name="targetMethod" value="run1"></property>执行的方法 -->

   </bean>

   <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">

      <property name="connectionFactory" ref="connectionFactory" />

      <property name="destinationName" value="test.activemq.queue" />

      <property name="messageListener" ref="messageReceiverQueue2" />

      <!-- <property name="targetMethod" value="run2"></property>执行的方法 -->

   </bean>

  

 

    <!-- 两个主题模式的监听器 -->

    <bean id="messageReceiverTopic" class="activemq.consumer.MessageReceiverTopic"/>

    <bean id="messageReceiverTopic2" class="activemq.consumer.MessageReceiverTopic2"/>

    <bean  class="org.springframework.jms.listener.SimpleMessageListenerContainer">

        <property name="connectionFactory" ref="connectionFactory" />

        <property name="destination" ref="destinationTopic" />

        <property name="messageListener" ref="messageReceiverTopic" />

    </bean>

    <bean  class="org.springframework.jms.listener.SimpleMessageListenerContainer">

        <property name="connectionFactory" ref="connectionFactory" />

        <property name="destination" ref="destinationTopic" />

        <property name="messageListener" ref="messageReceiverTopic2" />

    </bean> 

  

</beans>

 

 

 

 

Sender:

package activemq.publisher;

 

import javax.jms.Destination;

 

import org.springframework.jms.core.JmsTemplate;

 

public class MessageSenderQueue

{

   

    private final JmsTemplate jmsTemplate;

   

    private final Destination destination;

   

    public MessageSenderQueue(final JmsTemplate jmsTemplate, final Destination destination)

    {

        this.jmsTemplate = jmsTemplate;

        this.destination = destination;

    }

   

    public void send(final String text)

    {

        try

        {

            System.out.println("queue发送消息 : " + text);

            Thread.sleep(10);

            jmsTemplate.setDefaultDestination(destination);

            jmsTemplate.convertAndSend(text);

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

    }

}

Receiver:

package activemq.consumer;

 

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener;

import javax.jms.TextMessage;

 

public class MessageReceiverQueue implements MessageListener

{

   

    public void onMessage(Message message)

    {

        if (message instanceof TextMessage)

        {

            TextMessage textMessage = (TextMessage)message;

            try

            {

                String text = textMessage.getText();

                System.out.println("队列消费者1接收到队列消息: " + text);

            }

            catch (JMSException e)

            {

                e.printStackTrace();

            }

        }

    }

}



 

 

 

 

 

 

 关于actviveMQ集群:请见下回分解

 

 

 

 

 

 

 
Apache ActiveMQ消息中间件的基本使用 Apache ActiveMQ是Apache软件基金会所研发的开放源码消息中间件;由于ActiveMQ是一个纯Java程式,因此只需要操作系统支援Java虚拟机,ActiveMQ便可执行。 支持Java消息服务 (JMS) 1.1 版本 Spring Framework 集群 (Clustering) 支持的编程语言包括:C、C++、C#、Delphi、Erlang、Adobe Fla 阅读详情

相关推荐

ActiveMQ消息中间件

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。 下载本压缩包后解压运行里面的activemq.bat即可。 http://192.168.0.61:8161/ 是管理ActiveMQ的后台管理系统入口, 如需在JAVA中使用,请下载本人的 ActiveMQ简单JAVA项目案例。

分布式系统基础-消息队列之ActiveMQ

ActiveMQ是J2EE中 JMS消息通信规范的一个实现,也是目前还在活跃和发展的最古老的第一代MQ,自从2004年成熟以后就迅速传播开来,经过多年的发展,逐步奠定了它在Java/J2EE圈子里的开源霸主地位,可谓生生不息。ActiveMQ除了作为独立的消息中间件使用,还经常在某些ESB (Enterprise Service Bus)产品中作为总线基础设施( Bus Infrastructur

Ron.Zheng 1481

零样本缺陷检测新体验:用AnomalyGPT大模型快速搭建智能质检系统(附Win10适配指南)

本文详细介绍了如何利用AnomalyGPT大模型在Windows 10系统上快速搭建零样本工业缺陷检测系统。通过实战指南,涵盖从环境部署、模型准备到工程化落地的全过程,包括将模型封装为API服务、接入工业相机以及开发可视化监控看板,为制造业智能质检提供了一套高效、低门槛的本地部署解决方案。

weixin_29094775的博客 310

消息队列简史

1983年,Teknekron。 孟买26岁的工程师Vivek Ranadive设想一种软件总线,同年Teknekron诞生了。 1985年,The Information Bus(TIB)。 用于高盛,用于解决金融交易。于是发布订阅模式(PubSub)诞生了,同时还诞生了世界上第一个现代消息队列软件:Teknekron的The Information Bus(TIB)。 由于在那个时期金融交易行业门庭若市,因此TIB迅速传播开来。它引起了电信特别是新闻机构的注意。这些行业也特别需要将信息及时发布给千变万.

乐天 1228

自动化测试软件设计:C# + VISA 库实现多接口(GPIB/USB)测试仪器控制

本文介绍了如何利用C#和VISA库开发支持多接口的自动化测试软件。VISA库作为标准化API,能够统一控制GPIB、USB等不同接口的测试设备。文章详细阐述了软件设计目标,包括多接口支持、统一控制、自动化脚本执行等功能。重点讲解了C#中VISA库的安装配置,并提供了设备控制类的核心代码实现,涵盖设备连接、命令发送、响应读取等关键操作。通过具体示例展示了GPIB和USB设备的连接方式,并扩展了自动化测试脚本功能。该方案具有高扩展性和维护性,适用于电子设备测试、生产线检测等多种场景,为自动化测试系统开发提供了实

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1709

内存学习(3):DRAM的基础存储结构(存储层级、读写过程,刷新与暂存)

DRAM,全称为 Dynamic Random Access Memory ,中文名是“动态随机存取存储器”。所谓“动态”是和“静态”相对应的,芯片世界里还有一种 SRAM 静态随机存取存储器的存在。笼统地说,DRAM 的结构比 SRAM 更简单,面积占用更小,适合制作大容量的存储芯片;而 SRAM 结构复杂一些,一般使用六个晶体管,面积消耗大,但是读写速度快,而且因为 SRAM 只用到晶体管,所以在工艺上和逻辑芯片相兼容,我们可以在逻辑芯片上直接集成 SRAM。

呆呆象呆呆的博客 2万+

十七、消息中间件ActiveMQ

MQ=消息中间件/消息队列消息:微信、短信、语音…中间件:类似nacos、Zookeeper…2.两种讲授闲聊发送者和接收者不必了解对方只需要确认消息发送者和接收者不必同时在线只能下载Linux,不能再Windows上集成服务器怎么玩最主要的功能:实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统异步消息的消费和处理控制消息的消费顺序可以和Spring/SpringBoot整合简化编码配置集群容错的MQ集群。

Hvitur的博客 3322

从零构建Carsim线控转向仿真:模型搭建、算法集成与整车联动实战

本文详细介绍了从零开始基于Carsim和Simulink搭建线控转向仿真模型的完整实战流程。内容涵盖RWA前轮执行器动力学建模与PID控制、卡尔曼滤波器估算齿条力、HWA方向盘手感模拟算法设计,以及最终实现HWA与RWA闭环联动并进行整车仿真调试。通过分步拆解,帮助读者深入理解线控转向系统的核心原理与工程实现。

weixin_29158413的博客 251

消息中间件(异步消息传递)——ActiveMQ

ActiveMQ 一、 ActiveMQ 简介 1 什么是 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久 的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。 2 什么是消息 “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串; 也可以更复杂,可能包含嵌入对象。 3

LiLi的博客 1816

多层下拉框_HLM多层线性模型|HLM2教程

01多层线性模型简介多层线性模型(Multilevel linear model),又称为多层分析、分层线性模型。其本质是线性模型的线性模型、回归的回归。本文主要介绍如何使用HLM6.08软件来构建两层线性模型。02案例简介水平1文件:样例数据HSB1.sav包括7185个案例和4个变量:MINORITY:种族(1=minority, 0=other)FEMALE:性别(1=femal...

weixin_35714534的博客 5619

2D激光slam四种算法建图效果对比

2d激光slam四种算法建图比较

m0_73791170的博客 8448

学习笔记 2.中间件 1.2.4ActiveMQ持久化原理及事务机制

ActiveMQ持久化方案介绍 ActiveMQ的消息持久化机制有JDBC,AMQ,JDBC,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。 Queue类型的持久化机制 topic类型持久化机制: JDBC方式 将消息存储到数据库中,例如:MySQL、SQL Server 、Oracle、 AMQ方式 KahaDB方式 LevelDB方式 事务机制 ...

weixin_39267363的博客 325

从 VL02N 拣配到 ABAP 自动化,读懂 SD_DELIVERY_UPDATE_PICKING 的位置和风险

文章摘要:SAP SD模块中,SD_DELIVERY_UPDATE_PICKING函数模块用于处理出库交货单的拣配确认,更新交货项目的拣配数量。该函数适用于未启用WM/EWM的传统SD流程,能确保拣配状态与标准交货处理逻辑同步,比直接修改数据库更安全。但在S/4HANA Cloud等新环境中,应优先使用API_OUTBOUND_DELIVERY_SRV等公开发布接口。使用该函数时需注意参数完整性和按交货单整体处理的原则,避免逐项提交导致的数据不一致问题。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 245

python消息中间件activemq_消息中间件ActiveMQ使用详解

消息中间件ActiveMQ使用详解一、消息中间件的介绍介绍​消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流,并基于 数据通信 来进行分布式系统的集成。特点(作用)应用解耦异步通信流量削峰(海量)日志处理消息通讯…...应用场景根据消息队列的特点,可以衍生出很多场景,或者说很多场景都能用到。下面举几个例子:1)异步通信​注册时的短信、邮件通知,减少响应时间;2)应用解耦​...

weixin_39967598的博客 825

Google Earth Engine(GEE)——使用归一化燃烧指数 (NBR) 绘制地表烧伤严重程度图

归一化燃烧指数(Normalized Burn Ratio, NBR)是一种遥感指标,用于评估野火或烧伤地面后的植被恢复情况。NBR能增强较大范围的火灾区域,如大于200公顷。它是通过比较远红外波段 (SWIR) 和近红外波段 (NIR) 的反射率来计算的。SWIR波段测量烧伤地面的反射率,NIR波段测量没有受到烧伤影响的植被的反射率。NBR的计算公式为:NBR =(NIR-SWIR)/(NIR + SWIR)。其中,NIR为近红外波段,SWIR为短波红外波段。

此星光明博客 3464

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

消息中间件之ActiveMQ

一、消息中间件 MOM基本功能 将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序。 MOM主要特点: 避免传统的直接调用的方式,实现服务间完全解耦,同时也实现了服务间的异步调用。 消息异步接受,类似手机短信的行为,消息发送者不需要等待消息接受者的响应,减少软 件多系统集成的耦合度; 消息可靠接收,确保消息在中间件可靠保存,只有接收方收到后才删除消息,多个消息也 可以组成原子事务 消息中间件的主要应用场景: 在多个系统间进行整合和通讯的时候,通常会要求: 可靠传输,数据不能丢失,有的时候,也

OAH`Zero 364

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

消息中间件MQ及ActiveMQ介绍

前言 本篇文章会首先介绍MQ的概念,及核心概念及核心设计来理解出为什么需要消息中间件,消息中间间的作用,然后会接着介绍常用的activeMq的安装,以及在spring中集成,一些比较常用的命令。 无论是在传统还是互联网中,都是协作的。系统之间有联系,系统之间需要交流的方式分为两种同步调用和异步调用。对应起来马上响应和延时响应 对于同步和异步效果对比 上来说: 同步-串行: 下单过后 需要等待所有服务完成,才能完成数据 缺点:耗时比较长 180ms 异步-并行 利用线程池异步方式处理...

踩踩踩从踩的博客 2166

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ActiveMQ 01 消息中间件jmsMQ

消息中间件之ActiveMQ

Jack方 1250

消息中间件ActiveMQ

一、消息中间件概述 1.1 消息中间件产生的背景   在客户端与服务器进行通讯时.客户端调用后,必须等待服务对象完成处理返回结果才能继续执行。   客户与服务器对象的生命周期紧密耦合,客户进程和服务对象进程都都必须正常运行;如果由于服务对象崩溃或者网络故障导致用户的请求不可达,客户会受到异常。   点对点通信:客户的一次调用只发送给某个单独的目标对象。 1.2 什么是消息中间件   ...

weixin_30407099的博客 119

消息中间件——ActiveMQ

安装 下载解压、选择系统对应版本 访问:http://localhost:8161/admin/ 默认账号:admin,admin

脚踏实地 237

ActiveMQ 消息中间件

1.ActiveMQ 1). ActiveMQ ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法,类似于Java数据库的统一访问接...

weixin_39967184的博客 125

消息中间件ActiveMQ介绍

RocketMQ思路起源于Kafka,但并不是简单的复制,它对消息的可靠传输及事务性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景,支撑了阿里多次双十一活动。在该模式中,一条消息只能被一个消费者消费,没有被消费的,只能留在队列中,等待被消费,或者超时。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。进入队列的总消息数目,包括已经被消费的和未被消费的。

weixin_57763462的博客 1576

消息中间件的概述与activeMQ的安装

本文主要描述了对消息中间件的了解以及在centos上安装activeMQ的教程,读者学习activeMQ入门看完本文就可以了。 什么是消息中间件? 发送者将消息发送给消息服务器,消息服务器将消感存放在若千队列中,在合适的时候再将消息转发给接收者。 这种模式下,发送和接收是异步的,发送者无需等待; 二者的生命周期未必相同: 发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行; 一对...

qq_41300350的博客 263

spring集成activemq消息中间件

1、首先,该文章主要讲解内容,是如何从spring中继承activemq。我选择的activemq是本机的windows环境,版本是apache-activemq-5.5.1。 2、spring的xml配置 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w

jianghuihong2012的专栏 1396
上一篇: linux中redis的安装配置,后门漏洞修复及其攻击方法整合
下一篇: 利用拦截器与自定义注解实现未登录拦截
JavaMrSun
博客等级 码龄9年 27粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值