当前位置: 首页 > news >正文

asp.net网站开发四种软件开发模型

asp.net网站开发,四种软件开发模型,深圳市广告传媒有限公司,有口碑的常州网站建设一、Spring Integration 简介 Spring Integration 是 Spring 框架的扩展#xff0c;支持企业集成模式#xff08;EIP#xff09;#xff0c;提供轻量级的消息处理功能#xff0c;帮助开发者构建可维护、可测试的企业集成解决方案。 核心目标#xff1a; 提供简单的模型…一、Spring Integration 简介 Spring Integration 是 Spring 框架的扩展支持企业集成模式EIP提供轻量级的消息处理功能帮助开发者构建可维护、可测试的企业集成解决方案。 核心目标 提供简单的模型来实现复杂的企业集成。支持与外部系统的集成。提供模块化、松耦合的消息处理架构。 二、Spring Integration 核心组件 1. 消息Message 定义消息是 Spring Integration 的核心包含 payload负载和 header头部。创建消息通过 MessageBuilder 创建消息。 代码示例 import org.springframework.messaging.Message; import org.springframework.messaging.support.MessageBuilder;MessageString message MessageBuilder.withPayload(Message Payload).setHeader(Message_Header1, Header1_Value).setHeader(Message_Header2, Header2_Value).build();2. 消息通道Message Channel 定义消息通道是消息传递的管道连接消息的生产者和消费者。类型 点对点Point-to-Point每条消息最多被一个消费者接收。发布/订阅Publish/Subscribe每条消息可以被多个订阅者接收。 常见实现 DirectChannel默认点对点通道。NullChannel虚拟通道用于测试和调试。其他PublishSubscribeChannel、QueueChannel、PriorityChannel 等。 3. 消息端点Message Endpoint 消息端点是应用程序代码与消息基础设施之间的桥梁主要类型包括 Transformer转换消息内容或结构。Filter过滤不符合条件的消息。Router根据条件将消息路由到不同的通道。Splitter将消息拆分为多个子消息。Aggregator将多个消息聚合为一个消息。Service Activator连接服务实例到消息系统。Channel Adapter连接消息通道与外部系统。 三、货物处理系统示例 1. 需求 实现一个货物处理系统功能包括 接收货物消息。拆分货物列表为单个货物消息。基于重量过滤货物。根据运输类型国内/国际路由货物。转换货物消息。最终处理并记录货物信息。 2. 项目环境 JDK1.8Spring4.1.2Spring Integration4.1.0Maven3.2.2操作系统Ubuntu 14.04 3. 完整代码实现 Step 1添加依赖 在 pom.xml 中添加 Spring 和 Spring Integration 的依赖 propertiesspring.version4.1.2.RELEASE/spring.versionspring.integration.version4.1.0.RELEASE/spring.integration.version /propertiesdependencies!-- Spring 核心依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependency!-- Spring Integration 核心依赖 --dependencygroupIdorg.springframework.integration/groupIdartifactIdspring-integration-core/artifactIdversion${spring.integration.version}/version/dependency /dependenciesStep 2配置类 创建 AppConfiguration 类配置消息通道和启用 Spring Integration import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.integration.annotation.IntegrationComponentScan; import org.springframework.integration.channel.DirectChannel; import org.springframework.integration.config.EnableIntegration; import org.springframework.messaging.MessageChannel;Configuration ComponentScan(com.onlinetechvision.integration) EnableIntegration IntegrationComponentScan(com.onlinetechvision.integration) public class AppConfiguration {Beanpublic MessageChannel cargoGWDefaultRequestChannel() {return new DirectChannel();}Beanpublic MessageChannel cargoSplitterOutputChannel() {return new DirectChannel();}Beanpublic MessageChannel cargoFilterOutputChannel() {return new DirectChannel();}Beanpublic MessageChannel cargoTransformerOutputChannel() {return new DirectChannel();} }Step 3消息网关 定义 CargoGateway 接口作为消息系统的入口 import org.springframework.integration.annotation.Gateway; import org.springframework.integration.annotation.MessagingGateway; import org.springframework.messaging.Message;import java.util.List;MessagingGateway public interface CargoGateway {Gateway(requestChannel cargoGWDefaultRequestChannel)void processCargoRequest(MessageListCargo message); }Step 4消息拆分器 实现 CargoSplitter将货物列表拆分为单个货物消息 import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.Splitter; import org.springframework.messaging.Message;import java.util.List;MessageEndpoint public class CargoSplitter {Splitter(inputChannel cargoGWDefaultRequestChannel, outputChannel cargoSplitterOutputChannel)public ListCargo splitCargoList(MessageListCargo message) {return message.getPayload();} }Step 5消息过滤器 实现 CargoFilter过滤重量超过限制的货物 import org.springframework.integration.annotation.Filter; import org.springframework.integration.annotation.MessageEndpoint;MessageEndpoint public class CargoFilter {private static final double CARGO_WEIGHT_LIMIT 1000.0;Filter(inputChannel cargoSplitterOutputChannel, outputChannel cargoFilterOutputChannel, discardChannel cargoFilterDiscardChannel)public boolean filterCargo(Cargo cargo) {return cargo.getWeight() CARGO_WEIGHT_LIMIT;} }Step 6服务激活器 实现 CargoServiceActivator处理最终的货物消息 import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.handler.annotation.Header;MessageEndpoint public class CargoServiceActivator {ServiceActivator(inputChannel cargoTransformerOutputChannel)public void processCargo(Cargo cargo, Header(CARGO_BATCH_ID) long batchId) {System.out.println(Processed Cargo: cargo in Batch: batchId);} }Step 7运行主程序 创建 Application 类初始化 Spring 容器并发送货物请求 import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.messaging.support.MessageBuilder;import java.util.Arrays; import java.util.List;public class Application {public static void main(String[] args) {ApplicationContext context new AnnotationConfigApplicationContext(AppConfiguration.class);CargoGateway gateway context.getBean(CargoGateway.class);ListCargo cargos Arrays.asList(new Cargo(1, Receiver1, Address1, 500, Domestic),new Cargo(2, Receiver2, Address2, 1500, International));gateway.processCargoRequest(MessageBuilder.withPayload(cargos).build());} }四、运行过程 启动 Application 类。系统会根据配置 拆分货物列表。过滤重量超过限制的货物。路由货物到不同的通道。最终处理并记录货物信息。 控制台输出处理结果。 五、适用场景 Spring Integration 非常适合以下场景 企业系统集成如 ERP、CRM、供应链系统之间的数据交换。消息驱动架构如基于事件的微服务通信。复杂消息处理如批量处理、过滤、路由、转换等。与外部系统交互如文件系统、消息队列RabbitMQ、Kafka、数据库等。 通过 Spring Integration可以轻松实现复杂的企业集成需求同时保持代码的可维护性和扩展性。 参考链接https://dzone.com/articles/message-processing-spring
http://www.w-s-a.com/news/726123/

相关文章:

  • 昆明网站设计都需要设计什么网络推广岗位职责和任职要求
  • 国外公司网站模板网站建设公司选择意见书
  • 如何创建一个网站卖东西郑州 网站建设公司
  • 石景山郑州阳网站建设南京网站搜索引擎优化
  • 一个网站需要哪些备案书店网站建设策划书总结
  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms
  • 沧州网站优化做详情图的网站
  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本