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

做淘宝的网站有哪些内容吗时尚网站策划

做淘宝的网站有哪些内容吗,时尚网站策划,wordpress 超级搜索,房地产互联网推广原本在windows下能争取的获取远程配置但是部署到linux上死活都没有内容#xff0c;然后开始了远程调试#xff0c;这里顺带讲解下获取配置文件如果使用的是Git源#xff0c;config service是如何响应接口并返回配置信息的。先说问题#xff0c;我的服务名原本是abc-abc-abc…原本在windows下能争取的获取远程配置但是部署到linux上死活都没有内容然后开始了远程调试这里顺带讲解下获取配置文件如果使用的是Git源config service是如何响应接口并返回配置信息的。先说问题我的服务名原本是abc-abc-abc这种因为configService 在获取配置的时候允许使用 -来指定profiles导致这种服务名会被认为 abc 是appname abc-abc是profiles。而正确的应该是abc-abc 是appnameabc是profiles。所有后面我把服务名改成了驼峰命名即 abcAbc 这样在获取的时候就可以识别。并且在git仓库中把配置文件的名字写成了abcAbc.properties而远程仓库名在新建的时候仓库地址会默认给全部转换为小写 一开始我还没太在意这个事情我是用的策略是一个微服务一个仓库的方式进行管理 spring.cloud.config.server.git.urihttp://your_git_space/your_org_name/{application}-config.git但是由于git Url是小写使用 http://your_git_space/your_org_name/abcAbc-config.git 无法访问到仓库所以我在config client中配置了name spring:cloud:config:enabled: truediscovery:enabled: true #是否启动config server服务发现service-id: CONFIG-SERVICE #配置服务名称profile: ${spring.profiles.active}name: abcabc#获取配置是使用的application name默认是spring.application.namelabel: masterconfig client 在拉取config的时候会以如下的方式进行访问 http://CONFIG-SERVICE/abcabc/dev/master tip 对应的格式为 http://CONFIG-SERVICE/{appname}/{profile}/{branch|commit id} 在configService中对应的JGitEnvironmentRepository会按照 spring.cloud.config.server.git.uri的配置将{xxx}提醒替换即最终生成的git url为 http://your_git_space/your_org_name/abcabc-config.git 这样可以确保git url是一个正确的git仓库地址。然后神奇的事情来了 同样的配置和git仓库地址。在linux上不行在windows上可以。 这里有个需要注意的东西spring.cloud.config.server.git.basedirfile:///E:/config-repo 在windows下需要是 file:/// 在linux下是file:/ 其次在linux环境中如果没有使用file:开头则spring会把本地配置文件的地址修改为 runpathspring.cloud.config.server.git.basedir 配置的值比如linux环境下配置 spring.cloud.config.server.git.basedir~/config-service/config-repo那么给到spring 配置文件加载的File地址就会变成 /home/user/config-server/~/config-service/config-repo 具体的官方文档描述在这里 file_system_backend 排除上面的注意点之后依然不可以先来看看具体是怎么获取到配置文件的访问http://CONFIG-SERVICE/fxdanmugw/dev/master暴露该端点的是org.springframework.cloud.config.server.environment.EnvironmentController#labelled RequestMapping(path /{name}/{profiles}/{label:.*},produces MediaType.APPLICATION_JSON_VALUE)public Environment labelled(PathVariable String name, PathVariable String profiles,PathVariable String label) {return getEnvironment(name, profiles, label, false);} 然后通过EnvironmentEncryptorEnvironmentRepository#findOne(java.lang.String, java.lang.String, java.lang.String, boolean) ···CompositeEnvironmentRepository#findOne(java.lang.String, java.lang.String, java.lang.String, boolean) ···CompositeEnvironmentRepository#findOne(java.lang.String, java.lang.String, java.lang.String, boolean) ···MultipleJGitEnvironmentRepository#findOne ···AbstractScmEnvironmentRepository#findOne(java.lang.String, java.lang.String, java.lang.String, boolean) 该超类的方法是通过 JGitEnvironmentRepository的实例调用的 好的核心逻辑到了我们看下源码 public synchronized Environment findOne(String application, String profile,String label, boolean includeOrigin) {NativeEnvironmentRepository delegate new NativeEnvironmentRepository(getEnvironment(), new NativeEnvironmentProperties());Locations locations getLocations(application, profile, label);delegate.setSearchLocations(locations.getLocations());Environment result delegate.findOne(application, profile, , includeOrigin);result.setVersion(locations.getVersion());result.setLabel(label);return this.cleaner.clean(result, getWorkingDirectory().toURI().toString(),getUri());}大致流程新建了一个NativeEnvironmentRepository 去读取本地文件getLocations里面会根据application,profile,label 刷新对应的git仓库保证仓库的version版本和远程git仓库一致然后启动一个SpringApplication容器 使用配置–spring.config.pathfile:/xxxx 的形式让这个容器去加载配置文件在从上下文中取出所有和当前 application,profile,label 符合的配置返回出去applicationabcabc,profiledev,labelmaster。有点不可思议完全没想到会使用SpringApplicationBuilder 构建一个容器进行配置读取这个懒投的可以当然可能是有其他必要原因导致不得不这么做下面来看详细部分代码 git 仓库刷新部分之前博客有讲过简单过一下 JGitEnvironmentRepository#getLocations ··· JGitEnvironmentRepository#refresh delegate.setSearchLocations(locations.getLocations());locations就是过滤出来的本地仓库地址它的实际值可能是这样的 application被我马赛克了理解成abcabc吧然后依靠NativeEnvironmentRepository#findOne(java.lang.String, java.lang.String, java.lang.String, boolean)来获取Environment具体代码如下 Overridepublic Environment findOne(String config, String profile, String label,boolean includeOrigin) {SpringApplicationBuilder builder new SpringApplicationBuilder(PropertyPlaceholderAutoConfiguration.class);ConfigurableEnvironment environment getEnvironment(profile);builder.environment(environment);builder.web(WebApplicationType.NONE).bannerMode(Mode.OFF);if (!logger.isDebugEnabled()) {// Make the mini-application startup less verbosebuilder.logStartupInfo(false);}String[] args getArgs(config, profile, label);// Explicitly set the listeners (to exclude logging listener which would change// log levels in the caller)builder.application().setListeners(Arrays.asList(new ConfigFileApplicationListener()));try (ConfigurableApplicationContext context builder.run(args)) {environment.getPropertySources().remove(profiles);return clean(new PassthruEnvironmentRepository(environment).findOne(config,profile, label, includeOrigin));}catch (Exception e) {String msg String.format(Could not construct context for config%s profile%s label%s includeOrigin%b,config, profile, label, includeOrigin);String completeMessage NestedExceptionUtils.buildMessage(msg,NestedExceptionUtils.getMostSpecificCause(e));throw new FailedToConstructEnvironmentException(completeMessage, e);}}主要看args的值如下 args[]数值 0 --spring.config.nameapplication,abcabc 1 --spring.cloud.bootstrap.enabledfalse 2 --encrypt.failOnErrorfalse 3 --spring.config.locationfile:/E:/config-repo/config-repo-6098804444752826688/注意看这里的–spring.config.name用的是 接口请求传进来的appname。在windows和linux中文件系统对文件名的大小写敏感程度不同举个例子 在linux是允许大小写不同的文件存在的 罪魁祸首出现了问题就是出现在这里windows的文件系统与linux的差异导致了他们表现上的差异我的处理方式是将git url的地址改成和服务一样的驼峰大小写再删除掉config client中配置的name或者直接不适用 特定的名称来编写配置文件全部写道application.yml 里面
http://www.hkea.cn/news/14302083/

相关文章:

  • 网站建设心得体会及总结wordpress多站用户
  • 手机网站建设 新闻产品50个关键词
  • dede旅游网站源码网站设计如何自学
  • 网站详情页怎么做的网站开发工作 岗位怎么称呼
  • 南昌网站优化网站开发网站策划任职要求
  • dedecms网站上传服务器不是空间wordpress 虚拟商品插件
  • 视频网站建设框架微盟小程序是什么
  • 常见行业门户网站网站建设找什么公司
  • 创建网站需要备案吗简单的企业小网站
  • 网站建设基本费用Discuz网站制作教程
  • 手机网站建设价钱在建设厅网站怎么办建造师延期
  • 做个简单网站大概多少钱我的网站为什么打不开怎么回事啊
  • 网站结构说明服装网站建设目的作用是什么
  • 龙华网站建设app已有域名 wordpress
  • 建设网站买了域名还要什么资料做网站除了有服务器还需要什么
  • 广州专业网站建设哪里有应届毕业生招聘官网
  • 艺腾青岛网站建设wordpress 显示标签页
  • 广西旅游 网站建设什么是网络营销?网络营销有哪些功能
  • 深圳做网站做app建设一个网站的基本成本
  • 备案网站建设承诺书网站建设珠江摩尔
  • 天津网站制作机玩法部三台移动网站建设
  • 做游戏网站主页的素材青岛网站建设兼职
  • 校园二手交易网站开发网站移动端是什么问题
  • 室内设计师招聘网站怎么创建自己的公司网站
  • gta5资产网站正在建设共享门店新增跑腿距离计算优化
  • 站内推广和站外推广的区别惠州网络营销公司
  • 仙游h5做网站校园内部网站平台建设方案
  • 图书馆网站建设情况鹤壁建设网站推广公司
  • 网站开发如何适应手机现实要求wordpress 文件上传功能
  • 比较好的公司网站合肥哪里有做网站的