环境:springcloud Hoxton.SR11


【资料图】

本节主要了解系统中的谓词与配置的路由信息是如何进行初始化关联生成路由对象的。每个谓词工厂中的Config对象又是如何被解析配置的。

所有的谓词工厂中的Config中属性值是如何被配置的。

在SpringCloud Gateway中的所有谓词工厂如下:

图片

命名规则:XxxRoutePredicateFactory。所有的这些谓词工厂都是如下的继承关系

public class MethodRoutePredicateFactory extends   AbstractRoutePredicateFactory// public class PathRoutePredicateFactory extends AbstractRoutePredicateFactory// ...

所有的谓词工厂继承的AbstractRoutePredicateFactory中的泛型都是内部类的Config。这个是如何被配置上值的呢?

1.1 gateway自动配置

在下面这个类中配置了所有的Predicate和Filter。

public class GatewayAutoConfiguration {  @Bean  @ConditionalOnEnabledPredicate  public PathRoutePredicateFactory pathRoutePredicateFactory() {    return new PathRoutePredicateFactory();  }  @Bean  @ConditionalOnEnabledPredicate  public QueryRoutePredicateFactory queryRoutePredicateFactory() {    return new QueryRoutePredicateFactory();  }  @Bean  public RouteLocator routeDefinitionRouteLocator(GatewayProperties properties, List gatewayFilters, List predicates, RouteDefinitionLocator routeDefinitionLocator, ConfigurationService configurationService) {    return new RouteDefinitionRouteLocator(routeDefinitionLocator, predicates,            gatewayFilters, properties, configurationService);  }  @Bean  @Primary  @ConditionalOnMissingBean(name = "cachedCompositeRouteLocator")  public RouteLocator cachedCompositeRouteLocator(List routeLocators) {    return new CachingRouteLocator(new CompositeRouteLocator(Flux.fromIterable(routeLocators)));  }}

这里会层层委托最终查找查找路由定位会交给RouteDefinitionRouteLocator。CachingRouteLocator起到缓存的作用,将配置的所有路由信息保存。

注意:这里的路由信息是在容器启动后就会被初始化的。

public class CachingRouteLocator {  private final RouteLocator delegate;  private final Flux routes;  private final Map cache = new ConcurrentHashMap<>();  private ApplicationEventPublisher applicationEventPublisher;  public CachingRouteLocator(RouteLocator delegate) {    this.delegate = delegate;    routes = CacheFlux.lookup(cache, CACHE_KEY, Route.class) .onCacheMissResume(this::fetch);  }  private Flux fetch() {    return this.delegate.getRoutes().sort(AnnotationAwareOrderComparator.INSTANCE);  }}

实例化CachingRouteLocator就开始查找所有配置的Route信息。最终的会委托给RouteDefinitionRouteLocator

RouteDefinitionRouteLocator构造函数中的initFactories方法用来映射路由工厂的XxxRoutePredicateFactory。

private void initFactories(List predicates) {  predicates.forEach(factory -> {    String key = factory.name();    if (this.predicates.containsKey(key)) {      this.logger.warn("A RoutePredicateFactory named " + key + " already exists, class: " + this.predicates.get(key) + ". It will be overwritten.");    }    this.predicates.put(key, factory);  });}

方法中解析每一个谓词工厂对应的名称然后缓存到predicates 集合中。

factory.name()方法解析谓词名称。

default String name() {  return NameUtils.normalizeRoutePredicateName(getClass());}

CachingRouteLocator是个缓存路由定位器,是个首选的RouteLocator(@Primary),这里将RouteDefinitionRouteLocator进行了合并。

1.2 生成路由对象Route及Config配置

getRoutes---》convertToRoute---》combinePredicates---》lookup。

根据上面的自动配置也知道了在服务启动时就进行初始化所有路由信息了。

获取路由信息

public Flux getRoutes() {  Flux routes = this.routeDefinitionLocator.getRouteDefinitions() .map(this::convertToRoute);  routes = routes.onErrorContinue((error, obj) -> {    return routes.map(route -> {            return route;  });}

合并谓词(链式调用)

private AsyncPredicate combinePredicates(            RouteDefinition routeDefinition) {  // other code  for (PredicateDefinition andPredicate : predicates.subList(1, predicates.size())) {    AsyncPredicate found = lookup(routeDefinition, andPredicate);    predicate = predicate.and(found);  }  return predicate;}

进入lookup中

private AsyncPredicate lookup(RouteDefinition route, PredicateDefinition predicate) {  RoutePredicateFactory factory = this.predicates.get(predicate.getName());  if (factory == null) {    throw new IllegalArgumentException("Unable to find RoutePredicateFactory with name " + predicate.getName());  }  // 这里将配置中(yml文件)配置的name,args和谓词工厂中的Config进行关联设置值  Object config = this.configurationService.with(factory)    .name(predicate.getName())    .properties(predicate.getArgs())    .eventFunction((bound, properties) -> new PredicateArgsEvent(        RouteDefinitionRouteLocator.this, route.getId(), properties))    .bind();  // 最终调用谓词工厂(XxxRoutePredicateFactory的apply方法返回RoutePredicate该对象继承Predicate)  return factory.applyAsync(config);}

lookup方法中查找,也就是在这里将对应的谓词Config与RouteDefinition(Predicate)中定义的相对应的属性关联。

进入factory.applyAsync方法

@FunctionalInterfacepublic interface RoutePredicateFactory extends ShortcutConfigurable, Configurable {  default AsyncPredicate applyAsync(C config) {    return toAsyncPredicate(apply(config)); // 查看下面的6.2-1图当前apply所有的实现就是系统内部定义的XxxRoutePredicateFactory  }}// apply(config),如这里配置了Path谓词,那么就会进入PathRoutePredicateFactory中的apply方法public Predicate apply(Config config) {  // other code      return new GatewayPredicate() {    public boolean test() {      // todo        }  }}// 最后返回一个异步的谓词public static AsyncPredicate toAsyncPredicate(Predicate predicate) {  Assert.notNull(predicate, "predicate must not be null");  // 这里from就是返回一个DefaultAsyncPredicate默认的异步谓词  return AsyncPredicate.from(predicate);}static AsyncPredicate from( Predicate predicate) {  return new DefaultAsyncPredicate<>(GatewayPredicate.wrapIfNeeded(predicate));}

图6.2-1

图片

最后在combinePredicates方法中将当前路由中配置的所有谓词进行了and操作返回。最终回到convertToRoute方法中将当前路由中配置的谓词,过滤器进行了整合包装返回Route(一个路由对象)

public class Route implements Ordered {  private final String id;     private final URI uri;     private final int order;     private final AsyncPredicate predicate;     private final List gatewayFilters;     private final Map metadata;}

这些Route对象会被保存在上面说的CachingRouteLocator.routes中。

6.3 定位路由

根据上面的配置RouteLocator 该类用来定位路由(查找具体的使用哪个路由);当一个请求过来会查找是哪个路由。

RouteLocator中定义了一个方法

public interface RouteLocator {  Flux getRoutes();}

查看这个getRoutes方法是谁调用的

图片

看到这个RoutePredicateHandlerMapping是不是想起了Spring MVC中的HandlerMapping(我们所有的Controller都会被 RequestMappingHanlderMapping 匹配)。通过名称也就知道了该HandlerMapping用来匹配我们的路由谓词的谁来处理路由。

接下来回到前面说的RequestMappingHanlderMapping 对象,当我们请求一个路由地址时会执行该类中的lookup方法查找路由

protected Mono lookupRoute(ServerWebExchange exchange) {  // 这里的this.routeLocator就是 CachingRouteLocator对象   return this.routeLocator.getRoutes()      .concatMap(route -> Mono.just(route).filterWhen(r -> {        exchange.getAttributes().put(GATEWAY_PREDICATE_ROUTE_ATTR, r.getId());        // 过滤查找符合的路由          return r.getPredicate().apply(exchange);     }).doOnError(e -> logger.error(          "Error applying predicate for route: " + route.getId(),     e)).onErrorResume(e -> Mono.empty()))        .next()        .map(route -> {          if (logger.isDebugEnabled()) {            logger.debug("Route matched: " + route.getId());          }          validateRoute(route, exchange);          return route;     });}

进入r.getPredicate().apply(exchange)

public interface AsyncPredicate extends Function> {  static AsyncPredicate from(Predicate predicate) {  return new DefaultAsyncPredicate<>(GatewayPredicate.wrapIfNeeded(predicate));  }  class DefaultAsyncPredicate implements AsyncPredicate {    private final Predicate delegate;    public DefaultAsyncPredicate(Predicate delegate) {      this.delegate = delegate;    }    @Override    public Publisher apply(T t) {      return Mono.just(delegate.test(t));    }    @Override    public String toString() {      return this.delegate.toString();    }  }}

这里会调用Predicate.test方法(XxxRoutePredicateFactory中的apply方法返回的GatewayPredicate)。

调用GatewayPredicate.test返回判断当前请求的路由是否匹配。

整体的一个流程:

1、系统先初始化所有的Predicate(谓词)和Filter(过滤器)

2、根据配置的路由信息(过滤器,谓词)包装返回Route对象

3、根据请求路由路径查找匹配的路由

推荐内容

  • A股船舶板块景气反转即将到来_全球热文
    A股船舶板块景气反转即将到来_全球热文

  • 电脑反应慢是什么原因?电脑死机按什么键恢复?
    电脑反应慢是什么原因?电脑死机按什么键恢复?

  • 长城站什么时候落成?长城站在哪个半球?
    长城站什么时候落成?长城站在哪个半球?

  • ipad能不能打电话?ipad电池健康度怎么看?
    ipad能不能打电话?ipad电池健康度怎么看?

  • 随身wifi怎么用?随身wifi需要每月交钱吗?
    随身wifi怎么用?随身wifi需要每月交钱吗?

  • 增程式电动汽车保养费用高吗?增程式电动汽车需要充电吗?
    增程式电动汽车保养费用高吗?增程式电动汽车需要充电吗?

  • 乾景园林筹划公司控股股东变更事项  预计11月10日复牌
    乾景园林筹划公司控股股东变更事项 预计11月10日复牌

  • 碳元科技股票今日起停牌  公司控股股东将发生变更
    碳元科技股票今日起停牌 公司控股股东将发生变更

  • 麦趣尔集团被东方证券起诉  将在上海金融法院开庭
    麦趣尔集团被东方证券起诉 将在上海金融法院开庭

  • 筹划数日华灿光电接盘方揭晓  11月7日起复牌
    筹划数日华灿光电接盘方揭晓 11月7日起复牌

  • 福鞍股份未获得并购重组委通过  股票自今日起复牌
    福鞍股份未获得并购重组委通过 股票自今日起复牌

  • 珠江股份拟与珠实集团、珠江健康进行资产置换  连续两日涨停
    珠江股份拟与珠实集团、珠江健康进行资产置换 连续两日涨停

  • 郴州一小区2楼独居老人被困阳台  消防破门救人
    郴州一小区2楼独居老人被困阳台 消防破门救人

  • 中青宝公司股票今日起停牌  拟购广州宝云全部股权
    中青宝公司股票今日起停牌 拟购广州宝云全部股权

  • 国产操作系统第一股来了  麒麟信安正式登陆A股资本市场
    国产操作系统第一股来了 麒麟信安正式登陆A股资本市场

  • 声光电科:拟变更公司名称和证券简称  提升公司品牌形象
    声光电科:拟变更公司名称和证券简称 提升公司品牌形象

  • 迪安诊断:分拆观合医药境内上市前期筹备工作启动
    迪安诊断:分拆观合医药境内上市前期筹备工作启动

  • 又一家居企业即将上市  箭牌家居将于2022年10月26日上市
    又一家居企业即将上市 箭牌家居将于2022年10月26日上市

  • 长沙企业为国产大飞机领证保驾护航  配套产业链地位凸显
    长沙企业为国产大飞机领证保驾护航 配套产业链地位凸显

  • 恒立实业:实控人拟变更为马伟进  将成为公司第三大股东
    恒立实业:实控人拟变更为马伟进 将成为公司第三大股东

  • 诺德股份:拟收购江西铜博100%股权  股票停牌
    诺德股份:拟收购江西铜博100%股权 股票停牌

  • 猪八戒网拟在港交所主板上市  中信证券、建银国际为联席保荐人
    猪八戒网拟在港交所主板上市 中信证券、建银国际为联席保荐人

  • 旗滨集团最新公告  拟分拆旗滨电子至创业板上市
    旗滨集团最新公告 拟分拆旗滨电子至创业板上市

  • 13家上市公司业绩均“预喜”  A股医药板块表现强劲
    13家上市公司业绩均“预喜” A股医药板块表现强劲

  • 杉杉股份:拟定增募资不超60亿元  用于年产30万吨锂离子电池
    杉杉股份:拟定增募资不超60亿元 用于年产30万吨锂离子电池

  • *ST西源:终止收购洪洞县舜风煤业71.25%股权
    *ST西源:终止收购洪洞县舜风煤业71.25%股权

  • 业绩预喜!老百姓、益丰、大参林三季度业绩快报出炉
    业绩预喜!老百姓、益丰、大参林三季度业绩快报出炉

  • 医药板块股价飙升  谈判药物后续迎来利好消息!
    医药板块股价飙升 谈判药物后续迎来利好消息!

  • 玉龙股份:拟收购陕西山金矿业有限公司不低于67%股权
    玉龙股份:拟收购陕西山金矿业有限公司不低于67%股权

  • 慧博云通正式登陆创业板  上市首日开盘大涨211.32%!
    慧博云通正式登陆创业板 上市首日开盘大涨211.32%!

  • “零添加”酱油受关注  千禾味业、莲花健康涨停!
    “零添加”酱油受关注 千禾味业、莲花健康涨停!

  • 估值超70亿!和府捞面首家“咖啡+拉面”便利快餐店开业
    估值超70亿!和府捞面首家“咖啡+拉面”便利快餐店开业

  • 创维电器撤回创业板上市申请:低毛利率受监管关注
    创维电器撤回创业板上市申请:低毛利率受监管关注

  • 华厦眼科上市获批!计划募集资金7.8亿元
    华厦眼科上市获批!计划募集资金7.8亿元

  • “金九银十”期间  广州海关关区各业务现场不停歇!
    “金九银十”期间 广州海关关区各业务现场不停歇!

  • 继奈雪的茶之后  蜜雪冰城拟在A股市场首次上市!
    继奈雪的茶之后 蜜雪冰城拟在A股市场首次上市!

  • 专注维生素与矿物质补充剂领域  民生健康拟创业板上市!
    专注维生素与矿物质补充剂领域 民生健康拟创业板上市!

  • “网红打卡地”火了!湘江集团应急办:矿坑内存在安全隐患
    “网红打卡地”火了!湘江集团应急办:矿坑内存在安全隐患

  • 湖南发布国庆假期旅游数据  累计接待游客917.56万人次!
    湖南发布国庆假期旅游数据 累计接待游客917.56万人次!

  • 拟募资6亿元!爱康生物科创板IPO获得受理
    拟募资6亿元!爱康生物科创板IPO获得受理

  • 安井食品:股东福建国力民生减持计划提前终止
    安井食品:股东福建国力民生减持计划提前终止

  • 帝科股份:终止购买江苏索特100%股权等相关事项
    帝科股份:终止购买江苏索特100%股权等相关事项

  • 拟募资4.81亿元  爱得科技创业板IPO获受理!
    拟募资4.81亿元 爱得科技创业板IPO获受理!

  • 全线“车通”!大王山片区大交通体系全面铺开
    全线“车通”!大王山片区大交通体系全面铺开

  • 秋老虎发威!湖南中医附一医院皮肤科医生提醒:秋季干燥易过敏
    秋老虎发威!湖南中医附一医院皮肤科医生提醒:秋季干燥易过敏

  • 华润置地·润樾府打响“第一枪”  长沙楼市又热闹起来了
    华润置地·润樾府打响“第一枪” 长沙楼市又热闹起来了

  • 爱科科技收到浙江证监局警示函!记入证券期货市场诚信档案
    爱科科技收到浙江证监局警示函!记入证券期货市场诚信档案

  • 越博动力:控股股东、实控人李占江控制权变更事项终止
    越博动力:控股股东、实控人李占江控制权变更事项终止

  • 黄光裕再减持27.37亿股!国美所持中关村大笔股份被冻结
    黄光裕再减持27.37亿股!国美所持中关村大笔股份被冻结

  • *ST海伦收立案告知书!涉嫌信息披露违法违规
    *ST海伦收立案告知书!涉嫌信息披露违法违规

  • 莫让“造假的外卖”忽悠消费者
    莫让“造假的外卖”忽悠消费者

  • 8月11日 9:48分  康芝药业(300086)股价快速拉升
    8月11日 9:48分 康芝药业(300086)股价快速拉升

  • 涉及16所学校,顺义又一教育规划公示!
    涉及16所学校,顺义又一教育规划公示!

  • 儿童健康夏令营活动在上海举办 聚焦糖尿病儿童科学控糖
    儿童健康夏令营活动在上海举办 聚焦糖尿病儿童科学控糖

  • 离婚后前夫总想纠缠我乔言顾烨霆小说全剧免费观看
    离婚后前夫总想纠缠我乔言顾烨霆小说全剧免费观看

  • 纪录片|风雨落坡岭
    纪录片|风雨落坡岭

  • 江苏省首家长江水上法律援助工作站成立
    江苏省首家长江水上法律援助工作站成立

  • 孜然鱿鱼炒洋葱的做法
    孜然鱿鱼炒洋葱的做法

  • 北向投资者将增新交易方式,互联互通拟纳入大宗交易
    北向投资者将增新交易方式,互联互通拟纳入大宗交易

  • 股票行情快报:同大股份(300321)8月11日主力资金净卖出57.95万元
    股票行情快报:同大股份(300321)8月11日主力资金净卖出57.95万元

  • 敦化市丹江街道开展液化气安全知识培训
    敦化市丹江街道开展液化气安全知识培训

  • 郧阳区青少年假期生活丰富多彩
    郧阳区青少年假期生活丰富多彩

  • 中国农业科学院棉花研究所怎么样
    中国农业科学院棉花研究所怎么样

  • 青玉案辛弃疾全文带拼音(青玉案辛弃疾)
    青玉案辛弃疾全文带拼音(青玉案辛弃疾)

  • 专家:美国应遵规守诺 为工商界提供良好发展环境
    专家:美国应遵规守诺 为工商界提供良好发展环境

  • 受供应担忧影响,欧洲天然气价格势将创下两个月来最大单周涨幅
    受供应担忧影响,欧洲天然气价格势将创下两个月来最大单周涨幅

  • 路劲(01098.HK)发盈警,预计中期股东应占亏损则约为12亿港元至13亿港元,同比盈转亏
    路劲(01098.HK)发盈警,预计中期股东应占亏损则约为12亿港元至13亿港元,同比盈转亏

  • 市社科院:广州人均GDP、地方财政收入实现十年连续增长
    市社科院:广州人均GDP、地方财政收入实现十年连续增长

  • 我市开展沮漳河防汛抢险综合应急演练
    我市开展沮漳河防汛抢险综合应急演练

  • 山东德州市平原县发生5.5级地震
    山东德州市平原县发生5.5级地震

  • “玲龙一号”全球首堆核心模块吊装成功
    “玲龙一号”全球首堆核心模块吊装成功

  • 快手:未来一年向超 700 万优质创作者投入超 4000 亿流量扶持
    快手:未来一年向超 700 万优质创作者投入超 4000 亿流量扶持

  • 中信证券:7月淡季产销下滑,期待金九银十车市表现
    中信证券:7月淡季产销下滑,期待金九银十车市表现

  • 北辰区加强价格监测,做好行洪期间保供稳价服务
    北辰区加强价格监测,做好行洪期间保供稳价服务

  • 《疯狂爆梗王》通缉令通关攻略
    《疯狂爆梗王》通缉令通关攻略

  • 科捷智能:8月10日融资买入13.26万元,融资融券余额2782.52万元
    科捷智能:8月10日融资买入13.26万元,融资融券余额2782.52万元

  • 碳酸饮料可以加热饮用吗
    碳酸饮料可以加热饮用吗

  • 桥水二季度增持拼多多和中国ETF,重仓新兴市场ETF,清仓奈飞和黄金ETF
    桥水二季度增持拼多多和中国ETF,重仓新兴市场ETF,清仓奈飞和黄金ETF

  • 跑跑卡丁车_paoapo
    跑跑卡丁车_paoapo

  • 徐耀昌喊下架国民党 苗栗议长:讲太快口误
    徐耀昌喊下架国民党 苗栗议长:讲太快口误

  • 黑龙江同时发布多个气象风险预警
    黑龙江同时发布多个气象风险预警

  • Canalys 报告:2023Q2 全球云基础服务支出同比增长 16%、三巨头占比 65%
    Canalys 报告:2023Q2 全球云基础服务支出同比增长 16%、三巨头占比 65%

  • 淘宝外卖怎么订餐  淘宝外卖在线订餐的教程 淘宝在哪点外卖
    淘宝外卖怎么订餐 淘宝外卖在线订餐的教程 淘宝在哪点外卖

  • 8月11日电视广播行业十大熊股一览
    8月11日电视广播行业十大熊股一览

  • “晒”进展 厦门今年14.77万户老旧小区已开工改造
    “晒”进展 厦门今年14.77万户老旧小区已开工改造

  • 电视剧《莲花楼》热度破万:剧情精彩 动作场面震撼
    电视剧《莲花楼》热度破万:剧情精彩 动作场面震撼

  • 传闻:《使命召唤:现代战争3》或不登陆Xbox One
    传闻:《使命召唤:现代战争3》或不登陆Xbox One

  • 探访雄安新区新建水利防洪设施
    探访雄安新区新建水利防洪设施

  • “努力学习中文到中国看看”
    “努力学习中文到中国看看”

  • 机构:二季度全球云基础设施服务支出增长16%至724亿美元
    机构:二季度全球云基础设施服务支出增长16%至724亿美元

  • 福州闽侯南通世茂璀璨滨江房源法拍 单价4194.2元/平大幅低于周边二手
    福州闽侯南通世茂璀璨滨江房源法拍 单价4194.2元/平大幅低于周边二手

  • OpenAI公开网页爬虫工具:资源枯竭压力下 人工智能产业的数据版权困局
    OpenAI公开网页爬虫工具:资源枯竭压力下 人工智能产业的数据版权困局

  • 1775万吨,山东年产生鲜肉占全国三成
    1775万吨,山东年产生鲜肉占全国三成

  • 本市政策性农业保险已完成赔付941.3万元
    本市政策性农业保险已完成赔付941.3万元

  • 《守望先锋2》新视频揭秘伊拉里悲惨身世
    《守望先锋2》新视频揭秘伊拉里悲惨身世

  • Rivian二季度营收为11.2亿美元
    Rivian二季度营收为11.2亿美元

  • 公告速递:山证超短债基金调整(大额)申购(转换转入、定期定额投资)
    公告速递:山证超短债基金调整(大额)申购(转换转入、定期定额投资)

  • 天玑9300内存性能验证完成:速度超LPDDR5X
    天玑9300内存性能验证完成:速度超LPDDR5X

  • 股票行情快报:赛升药业(300485)8月11日主力资金净卖出166.28万元
    股票行情快报:赛升药业(300485)8月11日主力资金净卖出166.28万元

  • 应对台风“卡努”  辽宁海事部门协调49艘大马力拖轮应急待命
    应对台风“卡努” 辽宁海事部门协调49艘大马力拖轮应急待命

  • 中央气象台8月10日18时发布沙尘暴蓝色预警
    中央气象台8月10日18时发布沙尘暴蓝色预警

  • 每日报告回放
    每日报告回放

  • 枣菏高速依托交通基础设施发展新能源
    枣菏高速依托交通基础设施发展新能源

  • 人民银行今日开展20亿元逆回购操作 公开市场实现零投放零回笼
    人民银行今日开展20亿元逆回购操作 公开市场实现零投放零回笼

  • 深化改革新征程·百姓故事⑥丨共有产权房:为年轻人减负
    深化改革新征程·百姓故事⑥丨共有产权房:为年轻人减负

  • 图解开尔新材中报:第二季度单季净利润同比增40.67%
    图解开尔新材中报:第二季度单季净利润同比增40.67%

  • 7月重磅数据出炉!社融信贷规模不及预期 下半年要降准?
    7月重磅数据出炉!社融信贷规模不及预期 下半年要降准?

  • 远光软件: 第七届董事会第三十次会议决议公告
    远光软件: 第七届董事会第三十次会议决议公告

  • 隆昌市烟草专卖局:看牌坊“话”廉洁
    隆昌市烟草专卖局:看牌坊“话”廉洁

  • 自救失败?恒大地产已资不抵债
    自救失败?恒大地产已资不抵债

  • 股票行情快报:京新药业(002020)8月11日主力资金净买入503.24万元
    股票行情快报:京新药业(002020)8月11日主力资金净买入503.24万元

  • 受物价高涨等因素影响,日本第二古老博物馆靠众筹生存
    受物价高涨等因素影响,日本第二古老博物馆靠众筹生存

  • 家庭常备药连花清瘟如何正确使用
    家庭常备药连花清瘟如何正确使用

  • 全力打好保卫战——各地各部门加强汛情应对恢复农业生产
    全力打好保卫战——各地各部门加强汛情应对恢复农业生产

  • 暑期安全公开课,北京急救中心主任医师陈志担任首期主讲——珍爱生命 严防溺水
    暑期安全公开课,北京急救中心主任医师陈志担任首期主讲——珍爱生命 严防溺水

  • 把特色产业做大做强
    把特色产业做大做强

  • 罗江区鄢家镇第63届鸽子会举行
    罗江区鄢家镇第63届鸽子会举行

  • 山西8个典型入选全国学雷锋志愿服务“四个100”
    山西8个典型入选全国学雷锋志愿服务“四个100”

  • 罗永浩持股锤子科技集团经营异常
    罗永浩持股锤子科技集团经营异常

  • 金属行业研究:超导行业深度报告:下个十年 奔向超导产业发展的星辰大海
    金属行业研究:超导行业深度报告:下个十年 奔向超导产业发展的星辰大海

  • 多亏了俄罗斯的一个怪招,人民币起风了,日本想挡也挡不住
    多亏了俄罗斯的一个怪招,人民币起风了,日本想挡也挡不住

  • 广东人不开奔驰宝马,为何却钟爱雷克萨斯?老司机:这才是聪明人
    广东人不开奔驰宝马,为何却钟爱雷克萨斯?老司机:这才是聪明人

  • 搜索量暴增2000%!“十一”或将迎来大爆发?
    搜索量暴增2000%!“十一”或将迎来大爆发?

  • 日本北海道附近海域发生6.0级地震,震源深度50公里
    日本北海道附近海域发生6.0级地震,震源深度50公里

  • 恒丰银行党委委员、代行长郑现中一行莅临西筑公司考察交流
    恒丰银行党委委员、代行长郑现中一行莅临西筑公司考察交流

  • 四馆联动,海外VIP买家需求旺盛,intertextile秋冬家纺展开启一站式嗨购之旅
    四馆联动,海外VIP买家需求旺盛,intertextile秋冬家纺展开启一站式嗨购之旅

  • 拿证速递| 16号线旁同润新云都会于8月12日开启认购(附一房一价表)
    拿证速递| 16号线旁同润新云都会于8月12日开启认购(附一房一价表)

  • 吃肯德基鸡翅会胖吗?
    吃肯德基鸡翅会胖吗?

  • 上海浦东新区口碑好的养老院有哪些?上海浦东新区口碑好的养老院一览表
    上海浦东新区口碑好的养老院有哪些?上海浦东新区口碑好的养老院一览表

  • 中国电信与科大讯飞签署战略合作协议,将在多模态大模型、智算网络等开展合作
    中国电信与科大讯飞签署战略合作协议,将在多模态大模型、智算网络等开展合作

  • 乐通股份(002319):8月11日技术指标出现看涨信号-“红三兵”
    乐通股份(002319):8月11日技术指标出现看涨信号-“红三兵”

  • 农民收入实现大跨越 农民收入提前实现翻番目标
    农民收入实现大跨越 农民收入提前实现翻番目标

  • 富临精工拟7495万元向其子公司转让热管理相关业务
    富临精工拟7495万元向其子公司转让热管理相关业务

  • 美对华投资限令是赤裸裸的经济胁迫
    美对华投资限令是赤裸裸的经济胁迫

  • 武汉大学湖南录取分数线 武汉大学湖南招生人数多少
    武汉大学湖南录取分数线 武汉大学湖南招生人数多少

  • 网易游戏《永劫无间》更新:玉玲珑上线,新英雄也来了
    网易游戏《永劫无间》更新:玉玲珑上线,新英雄也来了

  • 德州市开展艾滋病和丙肝防治数据质量现场督导核查工作
    德州市开展艾滋病和丙肝防治数据质量现场督导核查工作

  • 明年起 江西工伤保险费率政策、缴费基数和待遇标准统一
    明年起 江西工伤保险费率政策、缴费基数和待遇标准统一

  • 外汇市场最新行情走势展望:英国GDP数据为英国央行进一步加息打开大门
    外汇市场最新行情走势展望:英国GDP数据为英国央行进一步加息打开大门

  • 内存频率怎么查看 内存频率越高越好吗 内存 频率 查看
    内存频率怎么查看 内存频率越高越好吗 内存 频率 查看

  • 周鸿祎:希望超级AI帮助人类解决常温超导问题,实现能源自由【附我国超导行业市场潜力分析】
    周鸿祎:希望超级AI帮助人类解决常温超导问题,实现能源自由【附我国超导行业市场潜力分析】

  • ARJ21飞机完成高海拔演示飞行 国产支线飞机向高原、特殊机场“亮剑”
    ARJ21飞机完成高海拔演示飞行 国产支线飞机向高原、特殊机场“亮剑”

  • 我区24辆新能源公务用车集中交付使用
    我区24辆新能源公务用车集中交付使用

  • 2023年天府旅游名县巡礼活动在绵竹启动
    2023年天府旅游名县巡礼活动在绵竹启动

  • 外交部:敦促美方撤销所谓美台“法案” 不要在错误道路上越走越远
    外交部:敦促美方撤销所谓美台“法案” 不要在错误道路上越走越远

  • 2023江苏扬州市考录公务员拟录用人员名单公示(四)
    2023江苏扬州市考录公务员拟录用人员名单公示(四)

  • 家电转型升级  激发消费潜力(经济聚焦)
    家电转型升级 激发消费潜力(经济聚焦)

  • 通胀持续趋缓,美联储加息脚步将停?
    通胀持续趋缓,美联储加息脚步将停?

  • 电脑故障致569名已派位儿童未被录取,广东普宁:按故障前派位入学
    电脑故障致569名已派位儿童未被录取,广东普宁:按故障前派位入学

  • 助力乡村振兴的平安探索:从聚焦农业生产到促进三产融合
    助力乡村振兴的平安探索:从聚焦农业生产到促进三产融合

  • 第13届残疾人健身周体管中心系列活动在京启动
    第13届残疾人健身周体管中心系列活动在京启动

  • 重庆调整优化住房公积金使用政策
    重庆调整优化住房公积金使用政策

  • 陈曦:触摸档案33年
    陈曦:触摸档案33年

  • 洪水中船艇翻覆、人员被困孤岛……南京高淳消防开展演练
    洪水中船艇翻覆、人员被困孤岛……南京高淳消防开展演练

  • 1至7月我国汽车产销量同比分别增长7.4%和7.9%
    1至7月我国汽车产销量同比分别增长7.4%和7.9%

  • 7月份新增信贷3459亿元、社融增量5282亿元 专家称宽信用方向不会改变
    7月份新增信贷3459亿元、社融增量5282亿元 专家称宽信用方向不会改变

  • 前7月铁路完成固定资产投资3713亿元 同比增长7%
    前7月铁路完成固定资产投资3713亿元 同比增长7%

  • 奥诗茉(奥诗)
    奥诗茉(奥诗)

  • 股票行情快报:晨鸣纸业(000488)8月11日主力资金净卖出199.48万元
    股票行情快报:晨鸣纸业(000488)8月11日主力资金净卖出199.48万元

  • 顺鑫农业:剥离地产,背水决战二锅头
    顺鑫农业:剥离地产,背水决战二锅头

  • NBL:香港金牛队状态回暖 主场轻取江西赣驰队
    NBL:香港金牛队状态回暖 主场轻取江西赣驰队

  • 股票行情快报:沃华医药(002107)8月11日主力资金净买入243.37万元
    股票行情快报:沃华医药(002107)8月11日主力资金净买入243.37万元

  • 中央网信办印发《网站平台受理处置涉企网络侵权信息举报工作规范》
    中央网信办印发《网站平台受理处置涉企网络侵权信息举报工作规范》

  • 麦捷科技(300319.SZ):TF-SAW产品客户拓展进度符合预期,预计在今年下半年至2024年上半年实现导入量产
    麦捷科技(300319.SZ):TF-SAW产品客户拓展进度符合预期,预计在今年下半年至2024年上半年实现导入量产

  • 代国为什么不算赵国?原因有哪些?
    代国为什么不算赵国?原因有哪些?

  • 2023年上半年广东各大城市GDP排名,深圳领先广州,云浮仅500多亿
    2023年上半年广东各大城市GDP排名,深圳领先广州,云浮仅500多亿

  • 荣耀 Pad X9平板电脑推出价格规格
    荣耀 Pad X9平板电脑推出价格规格

  • 股票行情快报:飞鹿股份(300665)8月11日主力资金净卖出229.24万元
    股票行情快报:飞鹿股份(300665)8月11日主力资金净卖出229.24万元

  • 石油用英语怎么说
    石油用英语怎么说

  • 猿辅导发布素质教育品牌“猿辅导素养课”,拥抱素养教育新时代
    猿辅导发布素质教育品牌“猿辅导素养课”,拥抱素养教育新时代

  • SpringCloud Gateway 路由如何定位从底层源码分析
    SpringCloud Gateway 路由如何定位从底层源码分析

  • 中巴运河文化艺术系列活动在巴拿马举办
    中巴运河文化艺术系列活动在巴拿马举办

  • 羚锐制药(600285):核心产品多层次发展 Q2利润维持高增态势
    羚锐制药(600285):核心产品多层次发展 Q2利润维持高增态势

  • 上海首例!孩子在点播影院被侵害,检察机关支持受害家庭提起民事诉讼
    上海首例!孩子在点播影院被侵害,检察机关支持受害家庭提起民事诉讼

  • 中国移动(600941):移动云收入超预期 1H23自由现金流表现亮眼
    中国移动(600941):移动云收入超预期 1H23自由现金流表现亮眼

  • 电脑花屏是怎么回事 电脑出现花屏的解决法 电脑花屏是怎么回事 解决方法
    电脑花屏是怎么回事 电脑出现花屏的解决法 电脑花屏是怎么回事 解决方法

  • 多渠道激发农村消费活力
    多渠道激发农村消费活力

  • 股票行情快报:隆盛科技(300680)8月11日主力资金净买入53.86万元
    股票行情快报:隆盛科技(300680)8月11日主力资金净买入53.86万元

  • “博物馆热”持续升温 “打卡式观展”引争议
    “博物馆热”持续升温 “打卡式观展”引争议

  • 南昌土拍:保利4.04亿拿下青云谱地块 高新、湾里地块流拍
    南昌土拍:保利4.04亿拿下青云谱地块 高新、湾里地块流拍

  • 2023年山东省现代农业装备博览会举办,先进农机贡献“新粮仓”
    2023年山东省现代农业装备博览会举办,先进农机贡献“新粮仓”

  • 青岛地铁延长周末高峰运营时段
    青岛地铁延长周末高峰运营时段

  • 三角轮胎:
公司上半年综合产能利用率在80%以上,目前订单充足
    三角轮胎: 公司上半年综合产能利用率在80%以上,目前订单充足

  • 尿常规白细胞+3500是什么意思
    尿常规白细胞+3500是什么意思

  • 中国互联网巨头豪掷50亿美金疯抢GPU?英伟达回应了
    中国互联网巨头豪掷50亿美金疯抢GPU?英伟达回应了

  • 民宿和酒店有啥区别_名宿
    民宿和酒店有啥区别_名宿

  • 赤豆薏米的功效
    赤豆薏米的功效

  • 美司法部特别检察官提议明年1月2日开审特朗普试图推翻大选结果案
    美司法部特别检察官提议明年1月2日开审特朗普试图推翻大选结果案

  • 奥比中光:公司暂无汽车领域的3D视觉开锁应用
    奥比中光:公司暂无汽车领域的3D视觉开锁应用

  • 为什么阳台种葱总是死 ?大都因为这5点,下次别犯了
    为什么阳台种葱总是死 ?大都因为这5点,下次别犯了

  • 村民花百万在自家地里建房遭强拆 到底是什么原因?
    村民花百万在自家地里建房遭强拆 到底是什么原因?

  • 新世界百货预计年度亏损约3.5亿港元
    新世界百货预计年度亏损约3.5亿港元

  • 兴业数金荣获2023银行业ESG年度科技赋能典范案例
    兴业数金荣获2023银行业ESG年度科技赋能典范案例

  • 章丘考古,星星之火点亮文明之路
    章丘考古,星星之火点亮文明之路

  • 转型效果不佳,国际石油巨头重新聚焦油气主业
    转型效果不佳,国际石油巨头重新聚焦油气主业

  • 阿特斯新设光电材料公司 注册资本2.5亿元
    阿特斯新设光电材料公司 注册资本2.5亿元

  • 恒银科技连收3个涨停板
    恒银科技连收3个涨停板

  • 事业单位申论热点:撬动数字经济的新引擎
    事业单位申论热点:撬动数字经济的新引擎

  • 雷军:小米MIX Fold 3采用全新“龙骨转轴”设计
    雷军:小米MIX Fold 3采用全新“龙骨转轴”设计

  • 莫让“造假的外卖”忽悠消费者
    莫让“造假的外卖”忽悠消费者

  • 容大感光(300576)8月10日主力资金净卖出3738.91万元
    容大感光(300576)8月10日主力资金净卖出3738.91万元

  • 宅基地超面积咋办?中央拟定:超面积试点收费,超100平收2000!
    宅基地超面积咋办?中央拟定:超面积试点收费,超100平收2000!

  • 湖南溆浦县人民法院冻结微信支付
    湖南溆浦县人民法院冻结微信支付

  • 聚焦新能源!中国氢能产业之都与“南方油城”共谋协作新思路
    聚焦新能源!中国氢能产业之都与“南方油城”共谋协作新思路

  • 小米mix Fold 3将采用徕卡光学全焦段四摄
    小米mix Fold 3将采用徕卡光学全焦段四摄

  • 铆足干劲,刷新项目建设“进度条”
    铆足干劲,刷新项目建设“进度条”

  • 中金:7月存量房市场继续降温 静待政策提振
    中金:7月存量房市场继续降温 静待政策提振

  • 幸亏过路女司机凌晨多看了两眼 网友:疲劳驾驶很危险
    幸亏过路女司机凌晨多看了两眼 网友:疲劳驾驶很危险

  • 中科通达上半年净利润同比减少194%
    中科通达上半年净利润同比减少194%

  • qq龙珠手机版 qq龙珠
    qq龙珠手机版 qq龙珠

  • 8月11日IT服务行业六大牛股一览
    8月11日IT服务行业六大牛股一览

  • 沪电股份:沪士控股拟减持不超过0.79%公司股份
    沪电股份:沪士控股拟减持不超过0.79%公司股份

  • 青藏高原时隔40多年再现特有珍稀鱼类
    青藏高原时隔40多年再现特有珍稀鱼类

  • 凯发电气:公司目前定向增发工作尚未启动,也未确定具体方案
    凯发电气:公司目前定向增发工作尚未启动,也未确定具体方案

  • 广西来宾市金秀瑶族自治县市场监管局扎实推进“十个一”农贸市场创建
    广西来宾市金秀瑶族自治县市场监管局扎实推进“十个一”农贸市场创建

  • 2023“全民健身日”暨第四届常德亲水健身节活动启动
    2023“全民健身日”暨第四届常德亲水健身节活动启动

  • 物美价廉、好吃不贵!松江这里的社区食堂“圈粉”全年龄层
    物美价廉、好吃不贵!松江这里的社区食堂“圈粉”全年龄层

  • IMF获批合格境外投资者资格 外资机构申请QFII/RQFII再提速
    IMF获批合格境外投资者资格 外资机构申请QFII/RQFII再提速

  • 助力宁波路政建设,戴纳派克打造最美鄞县大道
    助力宁波路政建设,戴纳派克打造最美鄞县大道

  • 安徽理工大学领导带队赴合肥校友企业开展访企拓岗专项行动
    安徽理工大学领导带队赴合肥校友企业开展访企拓岗专项行动

  • 茂莱光学:8月10日融券卖出2.38万股,融资融券余额9177.75万元
    茂莱光学:8月10日融券卖出2.38万股,融资融券余额9177.75万元

  • 昆明北部汽车客运站(昆明–玉溪)
    昆明北部汽车客运站(昆明–玉溪)

  • 中环装备:公司将做好重组后资源优化,积极拓展生物质能发电等相关业务
    中环装备:公司将做好重组后资源优化,积极拓展生物质能发电等相关业务

  • 天平道合(08403.HK)中期亏损约920万元
    天平道合(08403.HK)中期亏损约920万元

  • 荒野大镖客:救赎要被改电影了!CEO暗示:风险极大
    荒野大镖客:救赎要被改电影了!CEO暗示:风险极大

  • 美国CFTC:白银看跌情绪创21周最高
    美国CFTC:白银看跌情绪创21周最高

  • 武汉站到武昌站有多远_武汉站
    武汉站到武昌站有多远_武汉站

  • 从胶膜到HJT,阿特斯通吃模式启动
    从胶膜到HJT,阿特斯通吃模式启动

  • 给你大嘴巴子好玩吗 给你大嘴巴子玩法简介
    给你大嘴巴子好玩吗 给你大嘴巴子玩法简介

  • 第八届创新挑战赛:宁夏为葡萄酒供需产业“搭鹊桥”
    第八届创新挑战赛:宁夏为葡萄酒供需产业“搭鹊桥”

  • 无量拉券商有深意!变盘一触即发?
    无量拉券商有深意!变盘一触即发?

  • 农历12月2日是什么星座 12月2日是什么星座
    农历12月2日是什么星座 12月2日是什么星座

  • 收手吧,观众的命也是命!周冬雨刘昊然的沐浴戏,把观众恶心到了
    收手吧,观众的命也是命!周冬雨刘昊然的沐浴戏,把观众恶心到了

  • 定陵地下玄宫洞开记(关于定陵地下玄宫洞开记简述)
    定陵地下玄宫洞开记(关于定陵地下玄宫洞开记简述)

  • 超四成大学生希望到新一线城市实习 超七成期待实习月工资3000元以上!
    超四成大学生希望到新一线城市实习 超七成期待实习月工资3000元以上!

  • 前7月铁路完成固定资产投资3713亿元
    前7月铁路完成固定资产投资3713亿元

  • 厦门部分公厕提供免费用纸 写着
    厦门部分公厕提供免费用纸 写着"节约用纸"仍有人扯多了

  • 引导金融资源更多流向民营经济
    引导金融资源更多流向民营经济

  • 如何高效地输入和输出?
    如何高效地输入和输出?

  • 蒋玉才:过去城投平台、PPP模式都是好的 但达不到预期 | 博鳌快讯
    蒋玉才:过去城投平台、PPP模式都是好的 但达不到预期 | 博鳌快讯

  • 【电诉宝】无法核销 客服却让用户换个时间?“联联周边游”被指态度敷衍 推脱责任
    【电诉宝】无法核销 客服却让用户换个时间?“联联周边游”被指态度敷衍 推脱责任

  • 长三角一体化示范区首家“零碳网点”揭牌
    长三角一体化示范区首家“零碳网点”揭牌

  • 科普网络安全 诠释青春担当
    科普网络安全 诠释青春担当

  • 俞君英:文献计量学的代表性学者
    俞君英:文献计量学的代表性学者

  • 同花顺(300033)8月10日主力资金净卖出1074.06万元
    同花顺(300033)8月10日主力资金净卖出1074.06万元

  • 2023年西咸新区第六届葡萄采摘节即将开启
    2023年西咸新区第六届葡萄采摘节即将开启

  • 多个板块营收同比超30%,阿里是如何实现大逆转的?
    多个板块营收同比超30%,阿里是如何实现大逆转的?

  • 邓一杰:隔夜1937空持有!
    邓一杰:隔夜1937空持有!

  • 四川省住房和城乡建设厅暗访都江堰市堰山河畔房地产开发项目一期二批次,检查发现隐患问题
    四川省住房和城乡建设厅暗访都江堰市堰山河畔房地产开发项目一期二批次,检查发现隐患问题

  • 浏览模式改为兼容模式怎么改(把浏览器浏览模式改为兼容模式)
    浏览模式改为兼容模式怎么改(把浏览器浏览模式改为兼容模式)