96SEO 2026-02-20 10:04 28
式而每个地区的客户要求的中间件存在差异为了实现基础框架和业务代码的复用需要实现一套基础框架同时引入多个同类型的中间件基于配置实现底层组件切换并且禁用未开启组件的自启动

这里以MQ为例我们同时引入rabbitmq、rocketmq和cmq基于配置framework.mq.rocketmq.type实现不同mq的切换默认使用rabbitmq切换时只有启用类型的mq才会触发自动装配连接和健康检查
备注如果只是单纯同时引入多个组件依赖项目启动阶段未配置连接资源的组件会提示连接异常或者类装载冲突
1.以starter组件形式定义组件通过spring.factories声明组件初始化对象和配置文件这里不详细描述
2.在starter内引入rabbitmq、rocketmq和cmq的starter依赖
dependencygroupIdcom.bosssoft.gp/groupIdartifactIdstarter-gp-stream-client/artifactIdversionV5.0.7.4.Release/version
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId
dependencygroupIdorg.springframework.amqp/groupIdartifactIdspring-amqp/artifactId
dependencygroupIdorg.apache.rocketmq/groupIdartifactIdrocketmq-spring-boot-starter/artifactIdversion2.3.2/version
/dependency3.在组件内排除掉rabbitmq、rocketmq和cmq的AutoConfiguration对象这样在spring容器加载时就不会自启动对应组件也不会在项目启动阶段去连接对应mq(cmq采用手动创建监听器不会触发自启动可以不处理)
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration3.2.也可以通过EnableAutoConfiguration的exclude实现排包
org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration;
org.springframework.boot.autoconfigure.EnableAutoConfiguration;
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
org.springframework.context.annotation.Configuration;
description:这里独立配置是因为其他config类都被spring.factories声明,添加EnableAutoConfiguration会提示异常*
//#在配置中把默认的RabbitMQ/RocketMQ自动配置类排除掉,
再通过自定义配置开关控制装载RabbitMQ/RocketMQ,
EnableAutoConfiguration(exclude
{RabbitAutoConfiguration.class,
RocketMQAutoConfiguration.class,
{}3.3.这里延伸个场景有部分三方组件比如tomcat由于配置加载优先级较高导致在自定义的starter组件内用exclude属性排包太晚加载导致排包不生效(直接在项目的application内声明是有效的但是组件化声明失效)可以采用自定义配置并且优先加载的方案
classpath:application-web.yml,encoding
GpmsCloudWebMvcAutoConfiguration
postProcessEnvironment(ConfigurableEnvironment
environment.getPropertySources();MapString,
HashMap();properties.put(spring.autoconfigure.exclude,org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration,com.bosssoft.gp.stream.client.starter.MqClientConfiguration,com.bosssoft.gp.stream.client.starter.MqClientConfiguration);//
添加到属性源中优先级设置为较高MapPropertySource
MapPropertySource(mqContainerExcludeProperties,
properties);propertySources.addFirst(propertySource);}}4.基于配置动态加载mq实现
CustomRocketAutoConfiguration(Environment
以此业务服务在引入我们自定义的framework-starter-mq模块后就可以通过framework.mq.rocketmq.type配置来切换不同的mq组件业务模块对于mq的消费和发生可以根据ConditionalOnProperty(prefix
其他同类型三方组件接入也可以采用该思路来实现自定义的动态加载组件
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback