首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring学习与实战(续)

并了解了Spring与应用集成基本概念,实现集成REST API服务。 本文将继续深入Spring集成应用,实现邮件发送及集成消息队列功能。...JavaMailSender Spring框架提供了一种使用JavaMailSender接口发送电子邮件简单抽象方法,而Spring Boot为其提供了自动配置以及启动程序模块。...在书写这些程序时,采用了硬编码,可能会碰到如下问题: 用Java代码创建基于HTML电子邮件内容很繁琐且容易出错。 UI和业务逻辑之间没有明确区分。...更改电子邮件内容及重新排列UI时,需要编写Java代码,重新编译,重新部署。...概念 描述 发送者 消息生产者,也可以是一个向交换器发布消息客户端应用程序 接收者 消息消费者,也可以认为是向消息队列接收消息服务端程序 Exchange交换器) 用来接收发送发送消息并将这些消息路由给服务器中队列

77520

测试和开发工作必备17个Python自动化代码

response.status_code == 200: # Your code here to handle the response after form submission ``` 说明: 此Python脚本通过发送带有表单数据...您可以自定义发件人电子邮件、密码、主题、正文和收件人电子邮件列表。请注意,出于安全原因,您在使用Gmail时应使用应用程序专用密码。...server.sendmail(sender_email, recipient_email, message.as_string()) server.quit() ``` 说明: 此 Python 脚本允许您发送带有文件附件电子邮件...exchange API (e.g., Fixer.io, Open Exchange Rates) # Your code here to perform currency conversions...and display exchange rates ``` 说明: 此Python 脚本利用货币兑换 API 来获取和显示不同货币之间汇率。

21410
您找到你想要的搜索结果了吗?
是的
没有找到

HORNER控制器和GE PLCEGD协议通信

Exchange ID:发送发送数据组编号,这里在HORNER控制器中发送ID为2,故在GE PLC中,接收ID为2。 Adapter Name:使用以太网模块机架号/槽号。...Update Timeout:数据接收超时时间,单位ms,一般推荐使用发送数据时间x2+10ms, 本例中在OCS里设置发送间隔为100ms,故GE端配置为210ms。 5....在新建发送条目上单击右键,进入Properties,设置该条交换参数。 Exchange ID:发送发送数据组编号,这里在GE PLC中发送ID为1,相应,在OCS中,接收ID为1。...在HORNER编程软件Cscape中新建程序,进入Controller菜单下Hardware Configuration菜单。 2. 点Config按钮,进入要使用LAN口。 3....Group Data:本例为单播模式,故未启用 Update Timeout:数据接收超时时间,单位ms,一般推荐使用发送数据时间x2+10ms, 本例中在GE PLC里设置发送间隔为200ms,故OCS

1.2K40

微服务学习计划——消息队列

SpringAMQP SpringAMQP是针对MQAPI更新,也就是使用简单API去完成上述复杂RabbitMQ使用过程 RabbitMQ消息模型 在正式接收SpringAMQP之前,我们需要先去了解一下...,但可以通过设置来改变订阅者当前可保存信息个数 发布订阅广播版 除消息队列外,存在一个交换Exchange交换器在广播状态下会将消息发送给所有相连接消息队列 发布订阅路由版 交换器选择性地将信息交给不同消息队列...: 发布订阅广播主要是在消息队列划分上加上了一层交换机系统 在发布订阅广播中交换机会将从发布者获得信息传递给全部所有与之相连消息队列以供处理 需要注意Exchange交换机)只负责转发消息,不具备存储消息能力...; // 第一个参数是交换机名称,因为目前publisher只能发送信息给交换机,由交换机来决定传递给哪个消息队列 // 第二个参数是key值选择,我们会在后面用到 // 第三个参数是所传递信息...,由交换机决定消息应当发往哪个消息队列 在该模式下需要进行路由选择,在发送消息时会传递一个key值,这个值在publisher发送时所携带 每一个队列也会有一个或多个对应key值,当交换机获得信息后

63640

RabbitMQ direct交换

Direct交换机是RabbitMQ中一种常用交换机类型。它根据消息路由键(Routing Key)将消息发送到与之匹配队列。...每个Direct交换机都会绑定一个或多个队列,并根据消息路由键选择性地将消息发送给匹配队列。Direct交换基本概念Direct交换工作方式是根据消息路由键将消息发送给与之匹配队列。...使用Java代码创建Direct交换机、绑定队列并发送消息示例:import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection...然后,我们创建了一个队列并将其绑定到Direct交换机上,绑定键为"example.key"。这意味着只有带有路由键为"example.key"消息才会被发送到该队列。...最后,我们使用channel.basicPublish方法发送一条带有路由键"example.key"消息到Direct交换机。该消息将被匹配到绑定键为"example.key"队列。

27910

RabbitMQ Topic交换

通过使用通配符模式,Topic交换机可以实现精确匹配或模糊匹配消息路由。Topic交换基本概念Topic交换机根据消息路由键和绑定键之间模式匹配,将消息发送到与之匹配队列。...Topic交换关键特点如下:模式匹配:Topic交换机根据消息路由键和绑定键之间模式匹配将消息发送给匹配队列。灵活性:通过使用通配符模式,可以实现精确匹配或模糊匹配消息路由。...使用Java代码创建Topic交换机、绑定队列并发送消息示例:import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection...然后,我们创建了一个队列并将其绑定到Topic交换机上,绑定键为"com.example.service"。这意味着只有带有路由键为"com.example.service"消息才会被发送到该队列。...最后,我们使用channel.basicPublish方法发送一条带有路由键"com.example.service"消息到Topic交换机。

27930

【RabbitMQ】消息可靠性投递

除此之外还应有完善消息补偿机制,发送失败消息可以再感知并二次处理。...() { // 创建交换机,durable代表持久化,使用Bean注入 return ExchangeBuilder.topicExchange(EXCHANGE_NAME...@param queue 上面注入队列Bean,如果你项目又多个,记得给Bean取名字 * @param exchange 上面注入交换机Bean */ @Bean...新版依赖可靠性投递默认是关闭使用以下方法开启: #旧版,确认消息发送成功,通过实现ConfirmCallBack接口,消息发送交换Exchange后触发回调 spring.rabbitmq.publisher-confirms...,消息从交换发送到对应队列失败时触发: 第一步 开启returnCallback配置 spring.rabbitmq.publisher-returns=true #新版 第二步 修改交换机投递到队列失败策略

24050

RabbitMQ & TTL

TTL 与RedisTTL一样是 time to live 如果消息存放在队列中超时,该消息就会被删除 设置队列过期时间使用参数:x-message-ttl,单位:ms(毫秒),会对整个队列消息统一过期...设置消息过期时间使用参数:expiration。单位:ms(毫秒),当该消息在队列头部时(消费时),会单独判断这一消息是否过期。 如果两者都进行了设置,以时间短为准。...* 交换Exchange * 队列 Queue * 绑定关系 Binding */ // 声明 交换机名称 public static final.../** * 我们首先要知道我们绑定路由key * * @param queue 要知道那个队列 * @param exchange 要知道那个交换机...rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME,"boot.hello","这是整合:testSend方法发送消息

69710

RabbitMQ

发布 1,000 个批量确认消息耗时 635 ms 发布 1,000 个异步确认消息耗时 92 ms 5、交换机 5.1 Exchanges Exchanges概念 ​ RabbitMQ 消息传递模型核心思想是...相反,生产者只能将消息发送交换机(exchange),交换机工作内容非常简单,一方面它接收来自生产者消息,另一方面将它们推入队列。交换机必须确切知道如何处理收到消息。...image.png Exchanges 类型 总共有以下类型: 直接(direct) 主题 (topic) 标题 (headers) 扇出 (fanout) 无名 exchange ​ 之前能实现原因是因为我们使用是默认交换...我们没有使用只能进行随意广播fanout交换机,而是使用 direct 交换机,从而有能实现有选择性接收日志。 ​...这个时候就只能使用 topic 类型 Topic 要求 ​ 发送到类型是 topic 交换消息 routing_key 不能随意写,必须满足一定要求,它必须是一个单词列表,以点号分隔开。

1.6K50

邮件狂欢:Next.js和Resend SDK电子邮件魔法

Resend 拥有针对各种编程语言不同 SDK,包括 PHP、Ruby、JavaScript、Go、Python 和 Elixir。Resend 还支持无服务器和 SMTP 发送电子邮件。...您可以使用电子邮件地址或 GitHub 帐户进行注册。请确保您通过电子邮件注册后收到电子邮件中单击“确认帐户”按钮来确认您帐户。之后,您将被重定向到重新发送仪表板。...为API 密钥名称选择一个名称,然后单击“添加”按钮。单击“添加”按钮后,将为您生成 API 密钥。您稍后将使用API 密钥,因此请记下它。验证发送电子邮件域必须验证将用于发送电子邮件域。...在此函数内,使用 fetch 方法发出 API 请求,该方法将 POST 请求发送到端点, /api/send请求正文中表单数据为 JSON。...使用重新发送 SDK 发送电子邮件到目前为止,您已经验证了域,在 Next.js 项目中设置了重新发送,并实现了动态电子邮件模板。是时候使用重新发送发送电子邮件了。

72200

延迟任务多种实现姿势--下

基于mq延迟队列实现大体思路如下: 消费者投放订单延迟任务到订单交换机中 订单交换机将消息投递到订单队列中 订单队列等待消息过期后,将订单交给订单死信交换机处理 订单死信交换机将消息投递到订单死信队列中...为了解决这个问题,我们可以使用mq官方提供插件来实现,该插件实现思路是利用交换机来控制延迟消息何时推送给对应队列。...延迟交换机: 通过给每个消息指定延迟发送时间,延迟交换机拿到这些消息后,不会立刻将其路由到某个队列,而是先保存起来,然后等待消息延迟时间结束后,再将消息发送到指定队列中去。...rabbitmq服务 docker restart cf ---- 延迟交换机进行优化 使用延迟交换机之后,我们整体设计如下: 配置 package com.delayTask.rabbitmq...* 5.其他参数 * */ return new CustomExchange(ORDER_DELAYED_EXCHANGE, //延迟交换机类型

25220

Actalis Free SMIME Certificates 与邮件签名加密证书与 Outlook

笔者将在本文介绍一下目前几乎是唯一一款免费电子邮件加密证书——Actalis Free S/MIME Certificates 及电子邮件证书详细使用。...,众所周知,国内网络对意大利服务器不是很友好,建议耐心地等几分钟)   在第一个输入框内填上你电子邮件地址,并单击下方“Send Verification Email”按钮,静待验证邮件发送到你邮箱中...与此同时,PFX(Personal inFormation eXchange,个人信息交换)格式证书文件将作为附件发送至申请证书邮箱中。...“确定”以保存所做更改: 发件人与收件人初次通信   由于发件人和收件人均没有对方证书公钥,因此需要初次通信互相发送“签署但不加密”邮件以互相交换证书公钥,为以后加密通信创造条件。   ...发件人保存收件人证书公钥(将收件人及其证书公钥添加至通讯录)   双击目前发件人 z@idc.moe 头像左上电子邮件地址(不要双击头像),弹出名片,单击电子邮件地址下方、“发送电子邮件”右方三个点

4.2K30

RabbitMQ 七种队列模式应用场景案例分析(通俗易懂)

(附表设计) 做最简单事情,一个生产者对应一个消费者,RabbitMQ相当于一个消息代理,负责将A消息转发给B 应用场景: 将发送电子邮件放到消息队列,然后邮件服务在队列中获取邮件并发送给收件人...一次向许多消费者发送消息,一个生产者发送消息会被多个消费者获取,也就是将消息将广播到所有的消费者中。...有选择地(Routing key)接收消息,发送消息到交换机并且要指定路由key ,消费者将队列绑定到交换机时需要指定路由key,仅消费指定路由key消息 应用场景: 如在商品库存中增加了1台iphone12...直连交换机(Direct exchange): 具有路由功能交换机,绑定到此交换时候需要指定一个routing_key,交换发送消息时候需要routing_key,会将消息发送道对应队列...,*代表一个单词,#代表多个单词 首部交换机(Headers exchange): 忽略routing_key,使用Headers信息(一个Hash数据结构)进行匹配,优势在于可以有更多更灵活匹配规则

31420
领券