首页 文章 精选 留言 我的

精选列表

搜索[动态工作流],共10000篇文章
优秀的个人博客,低调大师

国内外最新网络安全发展动态

国内 1.国家网信办等十三部门发布修订版《网络安全审查办法》 据新华网网站2022年1月4日报道,国家互联网信息办公室、国家发展和改革委员会、工业和信息化部、公安部、国家安全部、财政部、商务部、中国人民银行、国家市场监督管理总局、国家广播电视总局、中国证券监督管理委员会、国家保密局、国家密码管理局等十三部门联合发布修订版《网络安全审查办法》(以下简称《办法》),自2022年2月15日起施行。 《办法》将网络平台运营者开展数据处理活动影响或者可能影响国家安全等情形纳入网络安全审查,并明确掌握超过100万用户个人信息的网络平台运营者赴国外上市必须向网络安全审查办公室申报网络安全审查。此外《办法》还根据审查实际需要,增加证监会作为网络安全审查工作机制成员单位,同时完善了国家安全风险评估因素等内容。 国家互联网信息办公室有关负责人表示,《办法》修订对保障国家网络安全和数据安全具有重要意义。 2.中央网络安全和信息化委员会印发《“十四五”国家信息化规划》 据新华社网站2021年12月28日报道,中央网络安全和信息化委员会近日印发《“十四五”国家信息化规划》(以下简称《规划》),对我国“十四五”时期信息化发展作出部署安排。 《规划》系统谋划了“十四五”时期数字中国建设的时间表、路线图、任务书,是“十四五”国家规划体系的重要组成部分,是指导各地区、各部门信息化工作的行动指南。对“十四五”时期信息化发展目标,规划提出,到2025年,数字中国建设取得决定性进展,信息化发展水平大幅跃升。数字基础设施体系更加完备,数字技术创新体系基本形成,数字经济发展质量效益达到世界领先水平,数字社会建设稳步推进,数字政府建设水平全面提升,数字民生保障能力显著增强,数字化发展环境日臻完善。 此外《规划》还部署了建设泛在智联的数字基础设施体系、建立高效利用的数据要素资源体系、构建释放数字生产力的创新发展体系、培育先进安全的数字产业体系、构建产业数字化转型发展体系、构筑共建共治共享的数字社会治理体系、打造协同高效的数字政府服务体系、构建普惠便捷的数字民生保障体系、拓展互利共赢的数字领域国际合作体系、建立健全规范有序的数字化发展治理体系等10项重大任务。 3.国家工信安全中心发布《APEC与数字经济:进程、挑战与展望》 据国家工业信息安全发展研究中心网站2021年12月30日报道,该中心信息政策所数字经济研究室发布了《APEC与数字经济:进程、挑战与展望》(以下简称《报告》)。 《报告》分析了“亚洲-太平洋经济合作组织”(APEC)近5年来与数字经济有关的项目,发现农业、能源、城市和中小企业的数字化转型、数字性别鸿沟、数据流动等议题是APEC近年来的讨论重点,也是各APEC经济体的发展重心。 《报告》指出,2020年通过的《2040年亚太经合组织布特拉加亚愿景》将“创新和数字化”作为APEC未来20年的三大经济驱动力之一,承诺将共同培育以市场因素为驱动、以数字经济和创新为支撑的环境,推动结构性改革,加强数字基础设施建设,加快数字化转型,弥合数字鸿沟,促进数据流动,提升数字交易中的消费者和商业信任。 预计APEC成员将以上述愿景为目标和指引,在数字化防疫抗疫、数字基础设施建设和互联互通、数字技能和素养提升、数字营商环境构建、数字贸易促进等方面加强合作,共同延续并深化未来20年亚太地区数字经济的繁荣健康发展。 国外 1.美网络空间日光浴委员会即将改组 据DefenseSystems网站2021年12月30日报道,美国网络空间日光浴委员会(CSC)于12月停止运作,并将于2022年改组为非营利组织。 CSC是依据美国《2019年国防授权法案》于2019年成立的联邦委员会,其职责是就如何加强联邦政府的网络安全和应对网络攻击向美国政府提出建议,并为此提出了近百条建议。在CSC的努力下,《2021财年国防授权法案》纳入了由CSC提出的25条建议,其中包括设立国家网络总监,发布侧重于网络安全的行政命令,以及扩大网络安全与基础设施安全局(CISA)的权限等。除了这些建议外,CSC的另一大价值就是促使立法者和决策者关注网络安全。CSC的联合主席表示,该组织将在2022年从联邦委员会改组为非营利组织,其网址也已从solarium.gov更改为Cybersolarium.org。 在2022年中,改组后的CSC或将重点研究网络威慑、网络政策效果的衡量标准以及联邦网络劳动力面临的挑战等问题。 2.新冠疫情迫使五角大楼加强远程办公 据FCW网站2020年12月29日报道,随着奥密克戎(omicron)型新冠病毒在华盛顿特区的爆发,美国国防部总部五角大楼督促员工尽可能实行办公。 为防止疫情扩散,国防部副部长兼行政与管理主管迈克尔·唐利(Michael Donley)于28日规定,从即日到2022年1月末为止,现场办公的人数比率必须控制在60%以下。更具体地说,除非获得批准,否则各部门应将现场办公的人数比率控制在40%以下。为此五角大楼将采取一系列配套措施,包括最大限度地将现场会议改为线上虚拟,增加办公位置间的物理距离,不再接待非官方访客,尽量减少官方访客,以及在现场设置面向国防承包商、文职人员和军职人员的疫苗注射点等。 根据约翰霍普金斯大学的统计,2021年12月内约有4万美国人因新冠疫情病亡,疫情的快速蔓延对包括美军在内的美国各界都造成了严重影响。 3.俄提议缔结国际互联网治理协议 据俄罗斯卫星通讯社网站2021年12月29日报道,俄罗斯副外长奥列格·西罗莫洛托夫(Oleg Syromolotov)提议制定关于互联网治理的国际协议。 西罗莫洛托夫表示,俄罗斯支持各国平等参与互联网的国际治理,维护各国在监管互联网方面的国家主权,并就国家间的互联网管理规定展开磋商。按照西罗莫洛托夫的说法,只有在所有国家都接受后,该协议才能够正式生效。 目前国际电信联盟(ITU)正在讨论这一话题。 4.乌总统批准信息安全战略 据Cybersecurity Insiders网站2021年12月29日报道,乌克兰总统泽连斯基于28日批准了乌克兰国家安全与国防委员会提出的信息安全战略。 该战略认定俄罗斯的信息策略对乌克兰及其它“民主国家”构成威胁,并将“俄罗斯信息战对乌克兰人的影响”以及“俄罗斯在乌克兰东部及克里米亚半岛的信息主导地位”列为乌克兰在信息领域面临的头号威胁。该战略预计将有助于保护和维持乌克兰的信息网络和战略通信系统,促使乌克兰所有政府部门合作打击来自俄罗斯的虚假信息,向乌东和克里米亚居民传达符合乌克兰利益的信息,以及提高乌克兰媒体的文化和素养。 为了在网络空间对抗俄罗斯,美国和英国此前已向乌克兰派出了网络安全专家联合团队,以保护乌克兰的关键基础设施免遭俄方网络攻击。 5.印强化数据安全法规 据TheDailySwig网站2021年12月29日报道,印度当局将于2022年收紧敏感数据的保存规则,并就数据泄露提出更严格的要求。 从2022年1月1日起,印度储备银行(RBI)规定只有发卡机构和银行卡网络才能保存完整的银行卡信息,包括零售商在内的其他人则只能持有用于识别或对账的有限数据(包括卡号的最后四位数字和发卡机构名称)。此外按照印度《个人数据保护(PDP)》法的规定,从2022年起,印度境内的机构必须在事发后的72小时内上报数据泄露事件,且若未经数据处理者同意而故意披露个人数据,则可能面临监禁或罚款。 印度的这些规定旨在使其数据安全法规与欧盟的《通用数据保护条例》(GDPR)》保持一致,同时也受到了一些网络安全专家的支持。 6.印陆军设立量子实验室和人工智能中心 据Army Technology网站2021年12月30日报道,在国家安全委员会秘书处(NSCS)的支持下,印度陆军在中央邦姆豪(Mhow)室的姆豪电信工程军事学院下设立了量子计算实验室和人工智能中心。 这两家机构将为印军研发革命性技术,并围绕量子和人工智能领域开展相关培训。举例来说,这两家机构将为印军提供网络靶场和网络战培训,以及将印军当前的密码体系转变为抗量子密码体系。 目前印军正在加强新兴能力建设,比如2020年10月的印度国家安全会议要求让陆军参与电磁频谱作战,而印度陆军迄今已有140多个单位启用了人工智能技术。 7.英国防学院曾遭网络攻击 据Sky News网站2022年1月2日报道,英国国防学院曾于2021年3月遭到复杂的黑客攻击,此次事件促使该学院加快了重建弹性网络的步伐。 英国国防学院的IT基础设施服务商Serco公司于2021年3月发现网络中存在异常活动,最终被迫切断学院网络。该学院网络截至2022年1月初都尚未恢复,不过据信此网络内没有特别敏感的信息。英国国防部的数字部门对此次攻击展开了调查,但并未公开任何调查结果,仅表示国防部网络的其它部分未受影响。英军方退役官员表示,攻击方既可能是俄罗斯和伊朗和朝鲜等有能力发动网络攻击的国家,也可能是勒索软件组织等单纯的犯罪组织。对方的目的则可能是以国防学院的网络为跳板,渗透进国防部信息系统中更加保密的部分。 英国国防学院每年都会向约28000名军事、外交和公务人员授课,任何等待晋升的英国军官都会在该学院至少学习一年,因此对网络攻击方而言不失为一个有价值的目标。 8.以媒体遭到网络攻击 据Italy24News网站2022年1月3日报道,以色列著名媒体《耶路撒冷邮报》的官方网站于3日凌晨遭到网络攻击,其主页被黑客篡改。 在黑客发布的图片上,一枚导弹从一只戴戒指的手中射出,与以色列Shimon Peres核设施形似的建筑被炸毁。图片上还附有英文和希伯来文题词“我们在你意想不到的地方”。尽管没有组织宣称对此次攻击负责,但此次攻击正值伊朗将军卡西姆·苏莱曼尼(Qasim Sulaimani)遇刺两周年之际,图上的戒指也与苏莱曼尼佩戴过的戒指如出一辙,可见攻击极有可能是伊朗政府支持的黑客所为。 《耶路撒冷邮报》于不久后恢复了对网站的控制权,并表示此次攻击是对以色列的直接威胁。 9.美网站总结2021年网络威胁主要趋势 据Cyware网站2021年12月29日报道,该网站从多个角度总结了2021年内网络安全威胁格局演变的主要趋势,其主要内容如下。 勒索软件不断进化。在2021年内,勒索模式从双重勒索进一步升级为三重勒索,使用分布式拒绝服务攻击(DDoS)成为新的勒索策略;“勒索软件即服务”(RaaS)模型更加隐秘,许多暗网论坛禁止了相关话题,而LockBit和Himalaya等勒索软件组织则创建了自己的网站来推广RaaS;勒索软件瞄准零日漏洞,在2021年第三季度,被勒索软件利用的漏洞多达278个。 移动恶意软件活动激增。2021年内最突出的恶意软件FluBot和Joker采用了虚假应用程序和虚假安全更新等策略来入侵安卓设备,而一款名为Cynos.7.origin的新木马则通过伪装成华为官方应用商店中的190款游戏而入侵了900万台设备。此外“飞马”(Pegasus)间谍软件被曝监视包括法国总统在内众多的知名活动家、律师、记者和政治人物,在全球引发轩然大波。 供应链攻击的风险越来越大。在2021年内,软件供应链的安全问题日渐突出,对Kaseya和Codecov软件供应链的攻击影响了17个国家/地区的至少1000家企业;攻击位点开始向上游移动,每周下载量接近2200万的两个知名开源软件存储库都被发现感染了恶意软件。 新漏洞扩大了攻击范围。在2021年内,美国计算机应急响应组(CERT)发布了18000个以上的漏洞,漏洞数量再创新高;ProxyLogon和ProxyShell漏洞为黑客提供了全新的攻击面,威胁到全球数十万家组织;2021年末爆出Log4Shell漏洞,该漏洞存在于使用十分普遍的Java日志库中,被广泛用于分发勒索软件、僵尸网络和加密矿工;新的Rowhammer攻击威胁到使用DDR4内存的系统,会影响到浏览器和智能手机。 黑客组织继续改变攻击策略。在2021年内,Lazarus组织改进了其供应链攻击能力,以攻击韩国智库和拉脱维亚的IT资产监控工具;Evil Corp组织的许多成员被捕,但该组织改名为PayloadBIN、REvil、Macaw Locker和Hades等名称继续实施网络犯罪;Conti组织在下半年变得非常活跃,曾一天内就发布了10多家受害者的数据,引起了CISA等机构的高度关注。 10.美国家标准与技术研究所提出6G网络构想 据NIST网站2021年12月29日报道,美国国家标准协会(NIST)于近期提出了一种认知型6G网络构想。 NIST的研究人员提出了一种面向6G网络的“邮箱理论”,该理论的主要特点如下: 分布式智能:即在整个6G网络中嵌入受控的智能应用程序,以便使网络能够传输、存储和分析海量数据,并能随时随地提供个性化访问服务。 主动式交互:即形成以需求为中心的个性化6G网络,人工智能将按照用户划定的网络功能来即时调度网络资源,并根据用户需求的变化来实时调整网络。 认知型信息传输:与传统通信相比,6G网络的冗余传输量将显着减少,并更好地挖掘、提取和发送语义。 研究人员预计6G网络将于2030年问世,其数据传输速率将比5G快100倍以上(至少达到每秒1 Tb),能够提供定制服务,并与用户进行交互。

优秀的个人博客,低调大师

云原生计算动态周报:深入理解 CNI

业界要闻 1.Kubernetes 应用程序开发者认证(CKAD)中文版正式上线! 摘要:考试需要在两个小时内完成,这是一个完全基于实操的考试,它要求考生在模拟考试环境下完成日常进行的任务,将测试考生为 Kubernetes 构建、配置和公开云原生应用程序的能力。 2.云计算开源产业大会即将开幕 摘要:大会旨在进一步探索我国开源生态发展模式,加速开源技术在国内市场落地,提升企业开源治理能力,推动国内开源生态快速、健康有序发展。 云原生最佳实践 1.服务网格在百度核心业务大规模落地实践 摘要:分享包括微服务框架到服务网格的演进;百度微服务治理的现状和痛点;百度服务网络整体方案:服务网格接入方案优化以及服务网格性能优化等,并介绍了业务收益及启示。 2.联通天宫平台数字化虚拟网络基座实践 摘要:重点介绍了天宫虚拟网络的一些关键特性,以及联通天宫容器云平台虚拟网络的演进,以及第三代底层底座网络模型以及上层租户网络模型的设计。 推荐阅读 1.部署一个 Containerd 容器运行时的 Kubernetes 集群 摘要:使用 kubeadm 从头搭建一个使用 containerd 作为容器运行时的 Kubernetes 集群,使用的是最新的v1.22.1版本。 2.以 Serverless 的方式实现 Kubernetes 日志告警 摘要:部署一个专用的日志处理工作负载可能会耗费多余的成本,而当日志体量骤增、骤降时亦难以评估日志处理工作负载的待机数量。本文提供了一种基于 Serverless 的日志处理思路,可以在降低该任务链路成本的同时提高其灵活性。 3.深入理解 CNI(容器网络接口) 摘要:CNI 最初是由 CoreOS 为 rkt 容器引擎创建的,随着不断发展,已经成为事实标准。目前绝大部分的容器平台都采用 CNI 标准(rkt,Kubernetes ,OpenShift等)。本篇内容基于 CNI 最新的发布版本v0.4.0。 - End -

优秀的个人博客,低调大师

聊聊如何根据环境动态指定feign调用服务名

前言 前段时间和朋友聊天,他说他部门老大给他提了一个需求,这个需求的背景是这样,他们开发环境和测试环境共用一套eureka,服务提供方的serviceId加环境后缀作为区分,比如用户服务其开发环境serviceId为user_dev,测试环境为user_test。每次服务提供方发布的时候,会根据环境变量,自动变更serviceId。 消费方feign调用时,直接通过 @FeignClient(name = "user_dev") 来进行调用,因为他们是直接把feignClient的name直接写死在代码里,导致他们每次发版到测试环境时,要手动改name,比如把user_dev改成user_test,这种改法在服务比较少的情况下,还可以接受,一旦服务一多,就容易改漏,导致本来该调用测试环境的服务提供方,结果跑去调用开发环境的提供方。 他们的老大给他提的需求是,消费端调用需要自动根据环境调用到相应环境的服务提供方。 下面就介绍朋友通过百度搜索出来的几种方案,以及后面我帮朋友实现的另一种方案 方案一:通过feign拦截器+url改造 1、在API的URI上做一下特殊标记 @FeignClient(name = "feign-provider") public interface FooFeignClient { @GetMapping(value = "//feign-provider-$env/foo/{username}") String foo(@PathVariable("username") String username); } 这边指定的URI有两点需要注意的地方 一是前面“//”,这个是由于feign template不允许URI有“http://"开头,所以我们用“//”标记为后面紧跟着服务名称,而不是普通的URI 二是“$env”,这个是后面要替换成具体的环境 2、在RequestInterceptor中查找到特殊的变量标记,把 $env替换成具体环境 @Configuration public class InterceptorConfig { @Autowired private Environment environment; @Bean public RequestInterceptor cloudContextInterceptor() { return new RequestInterceptor() { @Override public void apply(RequestTemplate template) { String url = template.url(); if (url.contains("$env")) { url = url.replace("$env", route(template)); System.out.println(url); template.uri(url); } if (url.startsWith("//")) { url = "http:" + url; template.target(url); template.uri(""); } } private CharSequence route(RequestTemplate template) { // TODO 你的路由算法在这里 return environment.getProperty("feign.env"); } }; } } 这种方案是可以实现,但是朋友没有采纳,因为朋友的项目已经是上线的项目,通过改造url,成本比较大。就放弃了 该方案由博主无级程序员提供,下方链接是他实现该方案的链接 https://blog.csdn.net/weixin_45357522/article/details/104020061 方案二:重写RouteTargeter 1、API的URL中定义一个特殊的变量标记,形如下 @FeignClient(name = "feign-provider-env") public interface FooFeignClient { @GetMapping(value = "/foo/{username}") String foo(@PathVariable("username") String username); } 2、以HardCodedTarget为基础,实现Targeter public class RouteTargeter implements Targeter { private Environment environment; public RouteTargeter(Environment environment){ this.environment = environment; } /** * 服务名以本字符串结尾的,会被置换为实现定位到环境 */ public static final String CLUSTER_ID_SUFFIX = "env"; @Override public <T> T target(FeignClientFactoryBean factory, Builder feign, FeignContext context, HardCodedTarget<T> target) { return feign.target(new RouteTarget<>(target)); } public static class RouteTarget<T> implements Target<T> { Logger log = LoggerFactory.getLogger(getClass()); private Target<T> realTarget; public RouteTarget(Target<T> realTarget) { super(); this.realTarget = realTarget; } @Override public Class<T> type() { return realTarget.type(); } @Override public String name() { return realTarget.name(); } @Override public String url() { String url = realTarget.url(); if (url.endsWith(CLUSTER_ID_SUFFIX)) { url = url.replace(CLUSTER_ID_SUFFIX, locateCusterId()); log.debug("url changed from {} to {}", realTarget.url(), url); } return url; } /** * @return 定位到的实际单元号 */ private String locateCusterId() { // TODO 你的路由算法在这里 return environment.getProperty("feign.env"); } @Override public Request apply(RequestTemplate input) { if (input.url().indexOf("http") != 0) { input.target(url()); } return input.request(); } } } 3、 使用自定义的Targeter实现代替缺省的实现 @Bean public RouteTargeter getRouteTargeter(Environment environment) { return new RouteTargeter(environment); } 该方案适用于spring-cloud-starter-openfeign为3.0版本以上,3.0版本以下得额外加 <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> </repository> </repositories> Targeter 这个接口在3.0之前的包是属于package范围,因此没法直接继承。朋友的springcloud版本相对比较低,后面基于系统稳定性的考虑,就没有贸然升级springcloud版本。因此这个方案朋友也没采纳 该方案仍然由博主无级程序员提供,下方链接是他实现该方案的链接 https://blog.csdn.net/weixin_45357522/article/details/106745468 方案三:使用FeignClientBuilder 这个类的作用如下 /** * A builder for creating Feign clients without using the {@link FeignClient} annotation. * <p> * This builder builds the Feign client exactly like it would be created by using the * {@link FeignClient} annotation. * * @author Sven Döring */ 他的功效是和@FeignClient是一样的,因此就可以通过手动编码的方式 1、编写一个feignClient工厂类 @Component public class DynamicFeignClientFactory<T> { private FeignClientBuilder feignClientBuilder; public DynamicFeignClientFactory(ApplicationContext appContext) { this.feignClientBuilder = new FeignClientBuilder(appContext); } public T getFeignClient(final Class<T> type, String serviceId) { return this.feignClientBuilder.forType(type, serviceId).build(); } } 2、编写API实现类 @Component public class BarFeignClient { @Autowired private DynamicFeignClientFactory<BarService> dynamicFeignClientFactory; @Value("${feign.env}") private String env; public String bar(@PathVariable("username") String username){ BarService barService = dynamicFeignClientFactory.getFeignClient(BarService.class,getBarServiceName()); return barService.bar(username); } private String getBarServiceName(){ return "feign-other-provider-" + env; } } 本来朋友打算使用这种方案了,最后没采纳,原因后面会讲。 该方案由博主lotern提供,下方链接为他实现该方案的链接 https://my.oschina.net/kaster/blog/4694238 方案四:feignClient注入到spring之前,修改FeignClientFactoryBean 实现核心逻辑:在feignClient注入到spring容器之前,变更name 如果有看过spring-cloud-starter-openfeign的源码的朋友,应该就会知道openfeign通过FeignClientFactoryBean中的getObject()生成具体的客户端。因此我们在getObject托管给spring之前,把name换掉 1、在API定义一个特殊变量来占位 @FeignClient(name = "feign-provider-env",path = EchoService.INTERFACE_NAME) public interface EchoFeignClient extends EchoService { } 注: env为特殊变量占位符 2、通过spring后置器处理FeignClientFactoryBean的name public class FeignClientsServiceNameAppendBeanPostProcessor implements BeanPostProcessor, ApplicationContextAware , EnvironmentAware { private ApplicationContext applicationContext; private Environment environment; private AtomicInteger atomicInteger = new AtomicInteger(); @SneakyThrows @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if(atomicInteger.getAndIncrement() == 0){ String beanNameOfFeignClientFactoryBean = "org.springframework.cloud.openfeign.FeignClientFactoryBean"; Class beanNameClz = Class.forName(beanNameOfFeignClientFactoryBean); applicationContext.getBeansOfType(beanNameClz).forEach((feignBeanName,beanOfFeignClientFactoryBean)->{ try { setField(beanNameClz,"name",beanOfFeignClientFactoryBean); setField(beanNameClz,"url",beanOfFeignClientFactoryBean); } catch (Exception e) { e.printStackTrace(); } System.out.println(feignBeanName + "-->" + beanOfFeignClientFactoryBean); }); } return null; } private void setField(Class clazz, String fieldName, Object obj) throws Exception{ Field field = ReflectionUtils.findField(clazz, fieldName); if(Objects.nonNull(field)){ ReflectionUtils.makeAccessible(field); Object value = field.get(obj); if(Objects.nonNull(value)){ value = value.toString().replace("env",environment.getProperty("feign.env")); ReflectionUtils.setField(field, obj, value); } } } @Override public void setEnvironment(Environment environment) { this.environment = environment; } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } } 注: 这边不能直接用FeignClientFactoryBean.class,因为FeignClientFactoryBean这个类的权限修饰符是default。因此得用反射。 其次只要是在bean注入到spring IOC之前提供的扩展点,都可以进行FeignClientFactoryBean的name替换,不一定得用BeanPostProcessor 3、使用import注入 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Import(FeignClientsServiceNameAppendEnvConfig.class) public @interface EnableAppendEnv2FeignServiceName { } 4、在启动类上加上@EnableAppendEnv2FeignServiceName 总结 后面朋友采用了第四种方案,主要这种方案相对其他三种方案改动比较小。 第四种方案朋友有个不解的地方,为啥要用import,直接在spring.factories配置自动装配,这样就不用在启动类上@EnableAppendEnv2FeignServiceName 不然启动类上一堆@Enable看着恶心,哈哈。 我给的答案是开了一个显眼的@Enable,是为了让你更快知道我是怎么实现,他的回答是那还不如你直接告诉我怎么实现就好。我竟然无言以对。 demo链接 https://github.com/lyb-geek/springboot-learning/tree/master/springboot-feign-servicename-route

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册