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

无锡网站制作的公司有哪些注重网站内容维护

无锡网站制作的公司有哪些,注重网站内容维护,做网站在手机端预览乱码了,无锡商之道网络科技有限公司场景#xff1a; 因项目需要#xff0c;一个springcloud微服务工程需要同时部署到A,B两个项目使用#xff0c;但A项目使用Eureka注册中心#xff0c;B项目使用Nacos注册中心#xff0c;现在需要通过部署时修改配置来实现多注册中心的切换。 解决思路#xff1a; 如果同时…场景 因项目需要一个springcloud微服务工程需要同时部署到A,B两个项目使用但A项目使用Eureka注册中心B项目使用Nacos注册中心现在需要通过部署时修改配置来实现多注册中心的切换。 解决思路 如果同时引入nacos和eureka的依赖和配置不做任何处理会导致启动失败 *************************** APPLICATION FAILED TO START ***************************Description:Field registration in org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration$ServiceRegistryEndpointConfiguration required a single bean, but 2 were found:- nacosRegistration: defined by method nacosRegistration in class path resource [com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.class]- eurekaRegistration: defined in BeanDefinition defined in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.class]Action:Consider marking one of the beans as Primary, updating the consumer to accept multiple beans, or using Qualifier to identify the bean that should be consumed不难看出失败原因是单例bean找到了两个实例那么该如何解决这个问题呢首先想到的肯定是删除掉暂时不需要使用的实例如使用eureka注册中心则删掉引入pom的nacos依赖这样做是没有问题的但是维护成本比较高。能不能从springboot自动装配原理入手找到更便捷的方法呢接着看 我们都知道SpringBoot的启动类的SpringBootApplication是一个组合注解它里面的EnableAutoConfiguration会引入AutoConfigurationImportSelector.class 从这个类的方法getAutoConfigurationEntry()一层一层点进去看 SpringFactoriesLoader.loadFactories()会去检索META-INF/spring.factories文件。 protected ListAutoConfigurationImportFilter getAutoConfigurationImportFilters() {return SpringFactoriesLoader.loadFactories(AutoConfigurationImportFilter.class, this.beanClassLoader);}那么思路就比较清晰了我们可以通过实现AutoConfigurationImportFilter接口将自己的过滤逻辑写在实现类中就可以实现自定义的自动装配过滤器了。 上代码 通过把1、2、3的代码放到一个starter中然后在具体的项目中引用这个starter配置文件中添加4的配置就可以切换了当然具体nacos和eureka在yml中的配置还是分开写只需指定用那个配置就行 1.过滤器 package com.demo.business;import com.demo.business.constants.RegistrationCenterConstants; import org.apache.commons.lang3.StringUtils; import org.springframework.boot.autoconfigure.AutoConfigurationImportFilter; import org.springframework.boot.autoconfigure.AutoConfigurationMetadata; import org.springframework.context.EnvironmentAware; import org.springframework.core.env.Environment;public class EngineAutoConfigurationImportFilter implements AutoConfigurationImportFilter, EnvironmentAware {private Environment environment;Overridepublic boolean[] match(String[] autoConfigurationClasses, AutoConfigurationMetadata autoConfigurationMetadata) {//获取配置的注册中心默认为nacosString registryType environment.getProperty(registry.type, RegistrationCenterConstants.NACOS);boolean[] match new boolean[autoConfigurationClasses.length];//当自定义标识为eureka则排除nacos的自动装配反之同理if (registryType.equals(RegistrationCenterConstants.EUREKA)) {for (int i 0; i autoConfigurationClasses.length; i) {match[i] !StringUtils.isNotBlank(autoConfigurationClasses[i]) ||!autoConfigurationClasses[i].equals(RegistrationCenterConstants.NACOS_SERVICE_REGISTRY_AUTO_CONFIGURATION);}} else {for (int i 0; i autoConfigurationClasses.length; i) {if (StringUtils.isNotBlank(autoConfigurationClasses[i])){match[i] !RegistrationCenterConstants.EUREKA_DISCOVERY_CLIENT_CONFIGURATION.equals(autoConfigurationClasses[i]) !RegistrationCenterConstants.EUREKA_AUTO_CONFIGURATION_CLASSES.equals(autoConfigurationClasses[i]);}}}return match;}Overridepublic void setEnvironment(Environment environment) {this.environment environment;} }或者以下这样也可以 import org.apache.commons.lang3.StringUtils; import org.springframework.boot.autoconfigure.AutoConfigurationImportFilter; import org.springframework.boot.autoconfigure.AutoConfigurationMetadata; import org.springframework.context.EnvironmentAware; import org.springframework.core.env.Environment;public class EngineAutoConfigurationImportFilter implements AutoConfigurationImportFilter, EnvironmentAware {private Environment environment;public EngineAutoConfigurationImportFilter() {}public boolean[] match(String[] autoConfigurationClasses, AutoConfigurationMetadata autoConfigurationMetadata) {String registryType this.environment.getProperty(registry.type, eureka);boolean[] match new boolean[autoConfigurationClasses.length];//提取成常量String prefix registryType.equals(nacos) ? org.springframework.cloud.netflix.eureka : com.alibaba.cloud.nacos;for(int i 0; i autoConfigurationClasses.length; i) {if (StringUtils.isNotBlank(autoConfigurationClasses[i])) {match[i] !autoConfigurationClasses[i].startsWith(prefix);}}return match;}public void setEnvironment(Environment environment) {this.environment environment;} }2.常量类 package com.demo.business.constants;/*** 注册中心相关常量类*/ public class RegistrationCenterConstants {public static final String NACOS nacos;public static final String EUREKA eureka;public static final String EUREKA_AUTO_CONFIGURATION_CLASSES org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration;public static final String EUREKA_DISCOVERY_CLIENT_CONFIGURATION org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration;public static final String NACOS_SERVICE_REGISTRY_AUTO_CONFIGURATION com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration;或者 public static final String NACOS_PREFIX com.alibaba.cloud.nacos;public static final String EUREKA_PREFIX org.springframework.cloud.netflix.eureka;}3.spring.factories文件(注意路径一定要在META-INF包下) org.springframework.boot.autoconfigure.AutoConfigurationImportFilter\com.example.demo.business.EngineAutoConfigurationImportFilter4.配置文件添加 registry:type: nacos效果 通过修改配置项registry.type就可以实现eureka和nacos的切换了
http://wiki.neutronadmin.com/news/82151/

相关文章:

  • 1t网站空间主机多少钱好的推广方式
  • 网站模板源码关键词快速排名seo怎么优化
  • 北京做网站的公司拟常用的行业管理系统
  • 建设银行企业官方网站wordpress静态页制作
  • 对营销网站建设评估及分析活动策划书
  • 和网站用户体验相关的文章jsp网站开发网上订餐系统
  • 网站托管运营怎么知道公司网站是哪家做的
  • 呼伦贝尔旅游网站建设中国建筑装饰网参数
  • 网站一个一个关键词做济南做网站 推荐行知科技
  • 手机网站开源wordpress 如何搭建
  • 百度网站收录查询地址云南做网站哪家便宜
  • 铁盒 东莞网站建设辽宁建设工程信息网评定分离规则
  • 黄岛网站建设服务快速建站代理
  • 做网站是什么编程模板网站 建设教材
  • 电子系网站建设方案短视频营销方式
  • 网站风格和色调华为服务器
  • 软件开发与网站建设c 网站开发项目
  • 一个静态网站怎么做有什么php网站
  • 请人做游戏的网站七台河新闻哪里看回放
  • 哈尔滨速成网站建设火车头采集器wordpress发布模块
  • 学习网站建设0学起前端优化网站
  • 龙湖地产 网站建设商城网站怎么做优化
  • 怎么更改网站里的tdk源码上传网站
  • 商会网站设计上海广告公司
  • 国际物流东莞网站建设装潢公司网站设计与制作
  • 学院网站建设申请报告中国最大的建站网站
  • 网站优化一年多少钱互联网保险公司有几家
  • 百度云搜索引擎网站网站建设的细节处理
  • 加盟类网站怎么做做一网站需要多少钱
  • 北京三屏网站制作网站内链优化的角度