2021年1月31日星期日

Spring整合SpringMVC + Mybatis基础框架的配置文件

目录
  • 前言
  • 1. Mybatis层编写
  • 2. Spring层编写
    • 1. Spring整合Mybatis
    • 2. Spring整合service
  • 3. SpringMVC层编写
    • 1. 编写web.
    • 2. 编写spring-mvc.
  • 4. Spring配置整合文件,applicationContext.
  • 依赖

前言

新建一个普通的Maven项目

基本目录结构

├── src     	# │ ├── main    	# │ │	└── java   	# java代码目录│ │	└── resources  # 配置文件目录, 存放下面Spring配置文件│ ├── test   		# 单元测试目录├── web     	# web目录│ └── WEB-INF   	# web.


1. Mybatis层编写

1、在 resources 目录下新建数据库配置文件 database.properties

jdbc.driver=com.mysql.jdbc.Driver# 如果是使用 MySQL8.0+ 那么还需要增加一个时区的配置; serverTimezone=Asia/Shanghaijdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456

2、在 resources 目录下创建Mybatis配置文件 mybatis-config.

<?


2. Spring层编写

1. Spring整合Mybatis

  1. 配置Spring整合MyBatis,这里数据源使用c3p0连接池;

  2. 编写Spring整合Mybatis的相关的配置文件;在 resources 目录下创建 spring-dao.

注意:这里要引入上面Mybatis层的两个配置文件,配置文件的名称不要写错

<?

2. Spring整合service

将业务层的类注入到Spring中,在 resources 目录下创建 spring-service.

<?


3. SpringMVC层编写

resources 目录下创建 spring-mvc.

<?


依赖

<!--依赖--><dependencies> <dependency>  <groupId>org.projectlombok</groupId>  <artifactId>lombok</artifactId>  <version>1.18.10</version> </dependency> <!--Junit--> <dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>4.13</version> </dependency> <!--数据库驱动--> <dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  <version>5.1.47</version> </dependency> <!--数据库连接池--> <dependency>  <groupId>com.mchange</groupId>  <artifactId>c3p0</artifactId>  <version>0.9.5.2</version> </dependency> <!--Servlet - JSP --> <dependency>  <groupId>javax.servlet</groupId>  <artifactId>servlet-api</artifactId>  <version>2.5</version> </dependency> <dependency>  <groupId>javax.servlet.jsp</groupId>  <artifactId>jsp-api</artifactId>  <version>2.2</version> </dependency> <dependency>  <groupId>javax.servlet</groupId>  <artifactId>jstl</artifactId>  <version>1.2</version> </dependency> <!--Mybatis--> <dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis</artifactId>  <version>3.5.2</version> </dependency> <dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis-spring</artifactId>  <version>2.0.2</version> </dependency> <!--Spring--> <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-webmvc</artifactId>  <version>5.1.9.RELEASE</version> </dependency> <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-jdbc</artifactId>  <version>5.1.9.RELEASE</version> </dependency> <dependency>  <groupId>org.aspectj</groupId>  <artifactId>aspectjweaver</artifactId>  <version>1.9.4</version> </dependency></dependencies><!--静态资源导出问题--><build> <resources>  <resource>   <directory>src/main/java</directory>   <includes>    <include>**/*.properties</include>    <include>**/*.








原文转载:http://www.shaoqun.com/a/521234.html

跨境电商:https://www.ikjzd.com/

f2c:https://www.ikjzd.com/w/1242

凹凸曼:https://www.ikjzd.com/w/1392


目录前言1.Mybatis层编写2.Spring层编写1.Spring整合Mybatis2.Spring整合service3.SpringMVC层编写1.编写web.2.编写spring-mvc.4.Spring配置整合文件,applicationContext.依赖前言新建一个普通的Maven项目基本目录结构├──src #│├──main #││ └──java #java代码目录││ └──
环球市场:环球市场
f2c:f2c
火星人图片_火星人图片新闻资讯_火星人图片报道:火星人图片_火星人图片新闻资讯_火星人图片报道
注意!亚马逊又一站点卖家要求上传营业税ID!:注意!亚马逊又一站点卖家要求上传营业税ID!
阿里巴巴国际站公布扶持举措 面向全网商家增投海外流量:阿里巴巴国际站公布扶持举措 面向全网商家增投海外流量

勇士大胜活塞!库里三节28+5+7,乌布雷18+6,克莱客串解说_维金斯

原标题:勇士大胜活塞!库里三节28+5+7,乌布雷18+6,克莱客串解说

1月31日,NBA常规赛结束了一场焦点战,勇士118-91大胜活塞。这场比赛勇士从未落后过哪怕一秒钟,他们13-3开局,首节领先12分,上半场领先19分。下半场活塞没有反扑,末节沦为垃圾时间,勇士扩大优势成功收获胜利。以下是详细战报:

数据统计:

活塞:格兰特18分,格里芬5分3板2助,普拉姆拉6分,赖特7分6板4助,杰克逊17分6板,斯图尔特8分,罗斯8分;

勇士:维金斯20分4板3助,格林4分5板6助,乌布雷18分6板,库里28分5板7助2断,怀斯曼11分,李6分;

特殊人物!本场比赛,克莱在第二节担任现场解说员;

本场之星:库里;

今天库里的三分球手感火热,经历上一场独木难支输球之后,这一场的库里没有丝毫的大意,他的突破、上篮和三分球很快就帮助勇士打开局面,再加上乌布雷和维金斯的爆发,勇士主将们3节打卡,迎来胜利。

比赛回顾:

第一节,乌布雷命中三分球,格里芬还以颜色,库里外线出手也中,维金斯抛投打进,格林反击和维金斯的三分球命中,勇士13-3开局。普拉姆利上篮止血,维金斯断球反击命中,普拉姆利两罚全中,库里打板得分,格兰特命中三分球。怀斯曼勾手得分,格林一条龙上进,约什-杰克逊反击得分,维金斯上篮打进,斯图尔特中距离投进。维金斯大帽敦布亚,乌布雷抛投打进,斯图尔特两罚中一,乌布雷突破暴扣,罗斯上篮打进,库里打板得分,首节结束,勇士29-17领先活塞。

第二节,乌布雷和罗斯抛投打进,达米恩-李命中三分球,斯图尔特补篮得分,乌布雷跳投打进,约什-杰克逊两罚全中。罗斯低手上篮打停勇士,普尔三罚全中,约什-杰克逊命中三分球,普尔上篮打进,罗斯两罚全中,沃纳梅克空切上进。维金斯上篮扩大优势,格兰特打成3+1,普尔两罚全中,格兰特跳投再中,帕斯卡尔和维金斯连得5分。怀斯曼勾手打进,库里三分球,勇士领先20分。格兰特上篮打进,怀斯曼勾手再中,库里轰进三分球,格兰特三罚中二,随后他助攻赖特暴扣,乌布雷暴扣,上半场战罢,活塞45-64勇士。

第三节,维金斯上篮打进,格里芬助飞普拉姆拉暴扣,库里抛投打进,乌布雷和库里命中三分球,打停活塞。格兰特两罚全中,库里再中三分球,约什-杰克逊两罚全中,乌布雷跳投得手,怀斯曼打成2+1,勇士的优势拉大到30分以上。约什-杰克逊两罚中一,格里芬两罚全中,库里抛投打进,格兰特和约什-杰克逊两罚全中,库里打板得分。达米恩-李命中三分球,约什-杰克逊上篮打进,斯图尔特反击暴扣。库里命中三分球,怀斯曼篮下吃饼,赖特投进三分球,米凯柳克外线出手也中,三节结束,勇士94-68领先活塞。

第四节,双方都派上了替补球员,普尔命中三分球,赖特两罚中一,沃纳梅克外线出手也中。奥卡福跳投得分,维金斯命中三分球,约什-杰克逊外线出手投进,维金斯两罚中一,敦布亚低手上篮得分,卢尼勾手打进,普尔命中三分球。之后勇士一直保持领先,他们轻松拿下胜利。

双方首发阵容:

活塞:格兰特、格里芬、普拉姆利、艾灵顿、赖特;

勇士:库里、乌布雷、维金斯、格林、卢尼;返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/389649.html

跨境电商:https://www.ikjzd.com/

邮政电话:https://www.ikjzd.com/w/202

crowd:https://www.ikjzd.com/w/880


原标题:勇士大胜活塞!库里三节28+5+7,乌布雷18+6,克莱客串解说1月31日,NBA常规赛结束了一场焦点战,勇士118-91大胜活塞。这场比赛勇士从未落后过哪怕一秒钟,他们13-3开局,首节领先12分,上半场领先19分。下半场活塞没有反扑,末节沦为垃圾时间,勇士扩大优势成功收获胜利。以下是详细战报:数据统计:活塞:格兰特18分,格里芬5分3板2助,普拉姆拉6分,赖特7分6板4助,杰克逊17分
picitup:picitup
ideal:ideal
一包"天价辣条"引发的故事,亚马逊无货源模式真的可行吗? :一包"天价辣条"引发的故事,亚马逊无货源模式真的可行吗?
口述:男友送我二手订婚戒指 还保证说是名牌:口述:男友送我二手订婚戒指 还保证说是名牌
海外仓的模式有几种,跨境电商物流选择海外仓面临着哪些挑战?:海外仓的模式有几种,跨境电商物流选择海外仓面临着哪些挑战?

我国胃食管反流患者超1亿!长期不愈会增加患癌风险,你可别大意

核心提示:"老李有十多年的饮酒史,近段时间总是觉得烧心,反酸, 有时一低头,嘴里就会冒酸水,去医院做了好几次检查,呼吸内科、耳鼻喉科、胸外科、骨外科……都找不到病因,症状也一直没得到缓解,老李很受折磨。 后来与

"老李有十多年的饮酒史,近段时间总是觉得烧心,反酸, 有时一低头,嘴里就会冒酸水,去医院做了好几次检查,呼吸内科、耳鼻喉科、胸外科、骨外科……都找不到病因,症状也一直没得到缓解,老李很受折磨。

后来与朋友无疑交谈,朋友也出现过类似情况,介绍他去某三甲医院检查,结果诊断是胃食管反流。

胃食管反流的发病情况

胃食管反流,目前我国的发病人数高达1.65亿,在这其中,又有1600多万患者,会发展成为更加严重的反流性食管炎。

反流性食管炎相比胃食管反流会更加严重,而且还伴随着食管狭窄、溃疡和消化道出血等多种并发症。所以,临床上如果患者的病情持续加重的话,平常的工作和生活将会受到很大的困扰。


胃食管反流易与其他疾病混淆

胃食管反流的主要症状是反酸和烧心,有的时候会误认为是呼吸系统和心血管方面的疾病。由于反流物的刺激,患者还会出现胸痛、气喘、喉咙痛以及咳嗽等多种症状。如果症状典型的话,患者往往能够直接到消化科去找医生治疗。

但有的时候患者会出现咳嗽、胸痛、哮喘、慢性咽炎等非典型的症状,患者本身也无法判断是哪种病情。有时候在医院各个科室里转了好多圈,也不能确定最终病因,导致错过最佳治疗时机。所以胃食管反流的患者,平时既要关注反流导致的典型症状,也要关注其延伸出来的其他症状。

胃食管反流的原因

正常情况下,我们吃饭之后,食物顺着食管进入胃部,它是由上往下去的。而胃食管反流,就是胃部和十二指肠里的食物、胃液等物质往上跑,而且还能顺着食管往上跑到咽喉部位甚至口腔里。

这种明显违反了地心引力的方式让人有点不解。我们都知道,胃和食管之间有一个部位叫贲门,贲门就像一个很特殊的阀门,食物往下走它不阻拦,食物一级胃液如果往上走的话,它就会屏蔽阻拦住。这就好比马路上的单行道,只能往下,不能往上。

而胃食管反流患者,就是这道阀门出现差错了。一旦失去了原有的正常功能,食物虽然可以继续往下走,但是胃里的胃酸也能够往上跑了。胃酸本来就是有腐蚀性的,只能呆在胃部,如果跑到食管甚至咽喉部位,人自然就感到反酸和烧心了。

长期不治会诱发癌症吗?

胃食管反流如果长期不治疗的话,诱发癌变的风险则会非常大。由于最初病变的部位就在贲门,所以发生癌变最大可能的地方也是贲门。

贲门癌在我国的发病率在逐渐上升,而在美国,贲门癌的发病率则提高了7倍之多。贲门癌并非单纯的胃癌,它处于食管和胃的中间,所以严格来说贲门癌是食管下段的腺癌。贲门癌的治疗不但需要全部切除胃部,手术创伤大,所以预后效果很差。

除了贲门癌之外,胃食管反流还会诱发食管癌。食管癌最常见的风险就是巴雷特食管现象。所谓巴雷特食管,指的是食管接触了太多的胃酸,导致食管黏膜细胞发生了变化。而胃食管反流如果长期不治疗,胃酸液体对食管的刺激也将是长期的。巴雷特食管跟胃部的肠化生现象类似,都是黏膜细胞的异性增生,接下来的阶段就是肿瘤和癌变的开始。

如何治疗胃食管反流?

目前针对胃食管反流的治疗,没有根治性的疗法,主要治疗的药物有两类。

一种是抑制胃酸分泌的药物,比如奥美拉唑和雷贝拉唑等,通过降低胃液的酸度,进而减少反流液体对食管的刺激。

另一种是促进食管蠕动的药物,比如潘立酮和莫沙必利等,这类药物增强了食管的蠕动性,使反流的胃液尽快回到胃里,从而降低对食管部位的刺激。


轻症患者单独用药就行,而重症患者需要联合用药治疗。如果是反复发作,发作时用药,好转后停药,这样可以有效减少服药量。

防范胃食管反流,生活习惯要调整

防范胃食管反流,首先每顿饭不能吃得太饱,不然会导致胃部压力增加,然后引起胃气上逆,从而出现反流,最理想的饱感应在7分-8分之间;其次要避免抽烟喝酒,抽烟会导致食管下段括约肌松弛,从而导致胃酸的反流,而喝酒则会导致食管清除酸性物质的能力下降。

除此之外还要避免肥胖,因为肥胖会增加腹部压力,更容易将胃部的食物和液体挤压上去。


再者,如果已经出现了胃食管反流,平时吃饭后不要立即躺卧,这样更容易引起反流。此外在睡觉的时候,尽量把头部垫高,这样食管处于高处,下段胃部反流的可能性就降低一些了。

参考资料:

[1]《胃食管反流会变脸!一亿人烧心、胸痛、腹痛都因它》.健康时报网.2019-2-22.


[2]《胃酸反流很常见,但它却让我父亲得了癌症》.果壳网.2019-5-29.

[3]《饭后反酸烧心?饮酒肥胖人群当心胃食管反流》.新京报.2020-1-19.

未经作者允许授权,禁止转载


原文转载:http://health.shaoqun.com/a/149001.html

跨境电商:https://www.ikjzd.com/

智赢:https://www.ikjzd.com/w/1511

zappos.com:https://www.ikjzd.com/w/330


核心提示:"老李有十多年的饮酒史,近段时间总是觉得烧心,反酸, 有时一低头,嘴里就会冒酸水,去医院做了好几次检查,呼吸内科、耳鼻喉科、胸外科、骨外科……都找不到病因,症状也一直没得到缓解,老李很受折磨。 后来与 "老李有十多年的饮酒史,近段时间总是觉得烧心,反酸,有时一低头,嘴里就会冒酸水,去医院做了好几次检查,呼吸内科、耳鼻喉科、胸外科、骨外科……都找不到病因,症状也一直没得到缓解,老
敦煌网站:敦煌网站
美菜:美菜
怎么设置亚马逊listing的关键词,挑关键词要遵循哪些原则?:怎么设置亚马逊listing的关键词,挑关键词要遵循哪些原则?
虚假QA、滥用变体...网一后关店潮来袭!:虚假QA、滥用变体...网一后关店潮来袭!
Terapeak:Terapeak

全身胖是种病,肚子胖才要命!减掉腰围,你需要2个“秘诀”

核心提示:肥胖,这个被许多人忽视的健康问题现如今却成为全球范围内最严重的公共卫生问题之一!世界卫生组织也把肥胖列为十大慢性疾病之一,可能很多人没想到,怎么身上"多了些肉"就能危害到健康?

肥胖,这个被许多人忽视的健康问题现如今已成为全球范围内最严重的公共卫生问题之一,而世界卫生组织也把肥胖列为十大慢性疾病之一,但很多人却仍不在意其中的健康风险。



据相关调查数据显示,我国的肥胖人口位居世界首位,其中包括4320万肥胖男性和4640万肥胖女性,分别占全球的16.3%和12.4%,而每年为肥胖相关性疾病医药费的投入更是数以百亿人民币计,可见,积极防治肥胖刻不容缓,关系到每个人的生命健康。

肥胖,是"隐形杀手"

肥胖,带来的不仅是外表形象上的变化,还会诱发各种疾病,增加慢性病和恶性肿瘤的患病风险。

肥胖与糖尿病、冠心病等慢性疾病的发生均有关系。因为超重跟肥胖引起的糖尿病、高血压、心血管等疾病也在逐年增加,并且呈现年轻化的趋势。

北京协和医院临床营养科副主任、医学营养减重门诊主任医师陈伟认为,国人肥胖的最大特点就是"肚子大"、"腰粗",也就是腹型肥胖,而这种肥胖会导致人体脂肪主要堆积在腹部,使得内脏直接受到压迫,因此带来的健康危害比全身肥胖更严重。

1、腰围越大,寿命越短

《中华流行病学杂志》曾发表过一项研究,41万余成人参与该项研究,结果显示腰越粗的人,其发生冠心病、急性冠心病事件跟死于冠心病的风险越高!

与不属于中心肥胖的人相比,腰粗的肥胖人群,如果每增加9.5厘米腰围,那么其发生冠心病、急性冠心病事件和死于冠心病的风险分别增高29%、30%、32%

而来自伊朗德黑兰医科大学的研究人员对腰围、臀围、大腿围、腰臀比等中央肥胖指数与死亡风险间的相关性进行研究,研究指出人们的腰围每增加10厘米,全因死亡风险便会增加11%。

2、容易得脂肪肝

因为腰腹部多集中了肝胰胃肠道等重要器官,如果腰腹部堆积过多的脂肪,而这些内脏脂肪会随之进入消化系统,从而使得肝脏受到损伤,逐渐演化成脂肪肝。

而脂肪肝不仅会促使动脉粥样硬化、高血压、冠心病、糖尿病的发生。还会使得肝脏加重损伤,形成恶性循环,久而久之导致肝纤维化、肝硬化等等肝部疾病。

3、更易患代谢性疾病

高血糖中的胰岛素抵抗、高胰岛素血症、糖耐量异常,高血脂中的高甘油三脂血症和高血压统称称为代谢综合征。引起代谢综合征包含许多个因素,遗传因素、高热量、高脂肪饮食、久坐、体力活动导致的中心性肥胖都与之有关。

4、易患恶性肿瘤

中心型肥胖人群因为腹部脂肪过多,导致肠道蠕动受影响,延长致癌物质与肠壁的接触时间,提高患肠癌的风险。


腹型肥胖影响肠癌发病风险,而肥胖与癌症还不止于此,《新英格兰医学杂志》于2016年发表了"国际癌症研究组织"(IARC)的文章,该文章通过检索超过1000篇研究论文,发现脂肪超标与包括结肠癌、食道癌、肾癌、子宫癌、乳腺癌、胃癌、肝癌等13种癌症的发生有关。

而肥胖之所以会影响癌症,这是因为肥胖患者的免疫功能普遍存在异常,而癌症的发生正是与免疫功能异常有关。

如何判断自己是否肥胖?

不同于现在追求完美身材,过度减肥的审美限制,医学角度上的肥胖有其标准。

1、测体重指数(BMI)

体重指数(body mass index,BMI)是目前最常用的评价肥胖的指标,其计算方法为:BMI=体重(kg)÷身高(m)2

我国成年人BMI标准为:测试结果<18.5为体重过轻;18.5~23.9属于正常范围;24~27.9则视为超重,28或以上即为肥胖。

所以,一般体重超过了24,那么就需要对体重加以控制了。

2、腰围观测

腰围常用来衡量腹部肥胖程度,特别是对于那些体重指数虽然正常,但腹部脂肪过多者,腰围超标可以作为独立诊断肥胖的指标。中国肥胖工作组标准:男性腰围≥90厘米为肥胖,女性腰围≥80厘米为肥胖。

3、体脂率查看

通常情况下,BMI能反映出身体的肥胖程度,但由于每个人体质、体型不同或存在特殊群体,所以BMI指数存在一定的局限性,而这时,则需要计算体脂率来辅助参考。

通常情况下,成年人的均脂率为男性15%-18%,女性为22%-25%。如果男性脂肪比例超过25%,女性超过32%,那么体脂率与疾病之间的联系就会显现。

体脂率反映了脂肪重量占人体总体重的比例,即使外形不显,体脂率超标也预示着身体的"肥胖",应当避免。想要得到精准的体脂率,建议使用专业的体脂仪,不同的器材会存在数据上的偏差。

如何减掉"突出"的腰围?

改变饮食观念是作出改变的第一步,控制对肉类、酒精的摄入,对喜爱的高糖高油食物要节制进食,遵守"低碳水化合物,适量蛋白质和脂肪"的饮食原则,一般可以事半功倍。

不过这里提醒大家,盲目的节食可能会对减肥造成反作用。节食虽然能够短期看到效果,但是减下来的不是脂肪,而是肌肉和水分。而且容易营养失衡,蛋白质摄入严重不足,导致基础代谢率低,基础代谢率一旦降低,人体消耗热量变少,热量就很容易堆积在体内,引起反弹。

调整了饮食,同时需要适当的运动。现代人每天绝大部分的时间都处于坐着或躺着状态,运动时间严重不足,热量无法进行消耗,也更容易肥胖。

建议普通人群平时可以有意识地增加运动时间跟机会,例如饭后站立或散步半小时,离上班地点近的人群,可以选择走路、骑车等通勤方式,为自己增加运动机会。

而已经处于肥胖状态的人群,可以寻求专业运动帮助,为自己量身打造减肥运动方案,结合科学饮食,双管齐下,使减肥运动变得更有效。

除了"管住嘴,迈开腿",养成良好的作息习惯,不抽烟酗酒也可以对减肥有所帮助。

总而言之,一个人的体型其实也与健康程度挂钩,维持正常范围的体重腰围,不仅对外形有所加分,还可以减少许多健康风险,是一项值得投资"健康项目"。

参考资料:


[1]《腰围越长寿命越短!腰粗9厘米,心脏险三成!》.健康时报.2018-11-12.

[2]《中国31省腹型肥胖率出炉,你的家乡是"粗腰重灾区"吗?》.生命时报.2019-10-31.

未经作者允许授权,禁止转载


原文转载:http://lady.shaoqun.com/a/265125.html

跨境电商:https://www.ikjzd.com/

派代:https://www.ikjzd.com/w/2197

cbo:https://www.ikjzd.com/w/2670


核心提示:肥胖,这个被许多人忽视的健康问题现如今却成为全球范围内最严重的公共卫生问题之一!世界卫生组织也把肥胖列为十大慢性疾病之一,可能很多人没想到,怎么身上"多了些肉"就能危害到健康? 肥胖,这个被许多人忽视的健康问题现如今已成为全球范围内最严重的公共卫生问题之一,而世界卫生组织也把肥胖列为十大慢性疾病之一,但很多人却仍不在意其中的健康风险。据相关调查数据显示,我国的肥胖人口位居世界首位,其中包
bestbuy:bestbuy
tinypic:tinypic
管好你的钱袋子!2020年亚马逊平台费用及最新调整!:管好你的钱袋子!2020年亚马逊平台费用及最新调整!
跨境电商的优劣势!:跨境电商的优劣势!
开启意大利"电商征途"前,你需要知道这4件事!:开启意大利"电商征途"前,你需要知道这4件事!

春节不发胖饮食攻略!这样吃,才会少长肉

核心提示:每逢佳节胖三斤,特别是春节,琳琅满目的年货很容易让人守不住减肥的底线,如果你想避免长胖,请来了解一下最容易导致肥胖的食物吧!

每逢佳节胖三斤,特别是春节,琳琅满目的年货很容易让人守不住减肥的底线,如果你想避免长胖,请来了解一下最容易导致肥胖的食物吧!


油炸食品

很多地方都有春节自制食品接待客人的风俗,其中油炸食品尤为普遍,如油角、糖环、薯片、炸莲藕等等。虽然这些食品都有很好的寓意,口味也是相当诱人,但要注意的是,食品经油炸之后热量会变得相当高,脂肪含量高,淀粉含量也高,这些都是导致肥胖的重要因素,应浅尝即止。特别是有三高(高血脂、高血压、高血糖)和肝脏疾病的人士,更应该自觉戒口,以免加重病情。

糖果、巧克力

春节年货清单里,总少不了各种口味的糖果和巧克力,这些食物往往含糖量相对较高。虽说糖是人体热量供给的主要来源,但是当糖的摄入量超过人体需求量,剩余部分就会转化为脂肪储存在体内,导致肥胖。此外,大量吃糖还会导致龋齿,在春节期间,小孩子应该尽量少吃。

果脯蜜饯

果脯蜜饯含水量低,但含糖量高。一是用于制作的水果原料本来就含有糖分,二是在制作过程中,为了方便储存或让口感更好,会放入蜂蜜、砂糖等材料。虽说吃几颗没有太大的问题,但是吃多了就容易导致血糖高了。春节期间,在亲友聚会聊天时,很容易一不留神就进食过多,摄入过多糖分,这是要发胖的节奏啊。

火锅

春节期间,很多人在聚会时都喜欢吃火锅,温暖热闹,节日气氛很好。但是要注意了,火锅吃多了很容易导致肥胖,特别是麻辣火锅,因为这种火锅中含有大量的红油,搭配的食物丰富,如肥牛、羊肉、毛肚等,哪怕是有热量较低的蔬菜,在烫煮过程中也会因为沾上大量的油而导致热量升高。而且人在吃火锅时,很容易进食过量,是很容易肥胖的。如果真要吃火锅,建议在进食前先吃一点低热量的水果、蔬菜,餐中适量吃一点主食,减少肉类和油的摄入,更不要饮用火锅汤底哦。

春节期间该如何饮食呢?

一、是要尽量少吃煎炸油腻高糖食品,如果真要应节,浅尝即可。


二、是要注意食物的烹饪方式,不宜过于重口味,清淡饮食有利于健康和控制体重。

三、是要注意控制食量,美食当前,闲暇时间多,很多人不知不觉就会过量饮食,导致肥胖。

很多人在春节期间容易长胖,除了是因为饮食习惯发生了变化之外,生活习惯也有所改变,由于时间都安排在亲朋好友聚会上,很容易忽略了日常运动。所以,春节期间,除了要注意少吃以上容易导致肥胖的食物外,还要注意加强体育锻炼,这样才能预防"每逢佳节胖几斤"哦!


原文转载:http://health.shaoqun.com/a/148996.html

跨境电商:https://www.ikjzd.com/

pat:https://www.ikjzd.com/w/1079

智邦:https://www.ikjzd.com/w/2376


核心提示:每逢佳节胖三斤,特别是春节,琳琅满目的年货很容易让人守不住减肥的底线,如果你想避免长胖,请来了解一下最容易导致肥胖的食物吧! 每逢佳节胖三斤,特别是春节,琳琅满目的年货很容易让人守不住减肥的底线,如果你想避免长胖,请来了解一下最容易导致肥胖的食物吧!油炸食品很多地方都有春节自制食品接待客人的风俗,其中油炸食品尤为普遍,如油角、糖环、薯片、炸莲藕等等。虽然这些食品都有很好的寓意,口味也是相
阿里巴巴 批发:阿里巴巴 批发
hemingway:hemingway
敏哥:揭秘亚马逊新品打爆核心思路之快准狠:敏哥:揭秘亚马逊新品打爆核心思路之快准狠
官方海外仓来了?亚马逊推出新的库存存储服务!:官方海外仓来了?亚马逊推出新的库存存储服务!
干货!shopee卖家发货选什么物流好?:干货!shopee卖家发货选什么物流好?

“神药”辅酶Q10,真的能治心脏病?别跟风,这么吃才对

核心提示:不知道何时开始,辅酶Q10备受追捧,被称为"心脏发动机",还宣称有抗衰老、抗癌、治疗不孕不育等作用,真的有那么神吗?

刘女士的父亲一个月前突发急性心肌梗死,幸好送医及时,医生为其植入心脏支架后,老人家身体恢复得不错。

这几天,刘女士身处澳洲的妹妹打电话问,要不要给父亲买几盒辅酶Q10寄回去,这保健品对心脏好。刘女士父亲一听,心里犯了嘀咕:丹参片、三七粉咱听得多了,辅酶Q10是什么东西?

不知道何时开始,辅酶Q10备受追捧,被称为"心脏发动机",还宣称有抗衰老、抗癌、治疗不孕不育等作用,真的有那么神吗?

一、辅酶Q10是"何方神圣"?

辅酶Q10又称泛醌,是人体中唯一的辅酶Q类物质,主要分布在人体的心、肝、肾,其中在心脏中的浓度最高。在体内的辅酶Q10总量减少75%的时候,心脏功能就会出现异常。心脏内的辅酶Q10会随着年龄的增长出现明显减少,发生各种疾病的概率也会增加,那么辅酶Q10对心脏到底有什么作用呢?

1.帮助清除自由基

在自由基和过氧化物过剩的时候,身体就会发生氧化应激反应,由此损害组织和细胞的功能,氧化应激反应会参与各种疾病状态的发生过程,会促进动脉粥样硬化、心力衰竭等疾病的发生和发展。而辅酶Q10能清除自由基,抑制自由基对生物膜的损伤。

2.降低冠脉疾病风险

辅酶Q10有抗炎、抗血管增殖的作用,可用于防治动脉硬化,有研究显示,血浆中辅酶Q10水平≥0.52 umol/L,发生冠状动脉疾病的风险就会比较低,对于已经有冠状动脉疾病的患者,每天补充辅酶Q10能使体内的抗氧化酶活性增加。

3.改善心衰患者预后

有研究证明,血浆内辅酶Q10水平,和充血性心力衰竭严重程度呈现负相关,补充辅酶Q10能够改善心力衰竭患者的预后。

4.减轻因服他汀类药物产生的副作用

有心血管疾病的患者,常需要服用他汀类药物,由此体内的辅酶Q10水平可能会出现降低,他汀类药物导致的肌肉损害可能就与此相关,所以,服用他汀类药物的时候,可以进行辅酶Q10的补充。

5.改善血管内皮的功能

研究显示,糖尿病患者补充辅酶Q10,能够改善血管内皮功能,由此可降低心血管疾病风险,改善心脏功能。

二、辅酶Q10并非临床指南推荐用药

辅酶Q10有那么多作用,那么辅酶Q10是药品还是营养素,可以用于治疗疾病吗?辅酶Q10有各种剂型,胶囊、片剂、糖衣片、注射液等,辅酶Q10说明书上的药物功用是药监局备案的,但在辅酶Q10说明书上常常看到"辅助治疗"这样的字眼,这就是在各大临床指南上看不到辅酶Q10的原因。

辅酶Q10不是一线用药,就连前三线都不算,说明书上的药理作用描述再吸引人也没有用,辅酶Q10可能是有用的,但是证据太过薄弱了。

实际上,美国FDA只将辅酶Q10作为食品补充剂,一直没有批准其作为药物。但在我国,CFDA批准了辅酶Q10作为药物上市,药物辅酶Q10为处方药。

不过,在2019年3月国家市场监管总局发布的《关于公开征求辅酶Q10等5种保健食品原料目录意见的公告》中,将辅酶Q10功效归纳为两点:增强免疫力和抗氧化,并未认可"保护心脏"的作用。

(某辅酶Q10软胶囊在药监局的备案信息,保健功能为"增强免疫力"

三、辅酶Q10怎么补?

那么辅酶Q10应该怎么补呢?在沙丁鱼、动物内脏、花生等食物中,辅酶Q10相对含量较高,但普通的膳食每天摄入辅酶Q10的量只有约2到5毫克,因此最常见的补充途径是口服保健品或药品。

市面上售卖的辅酶Q10有两种成分,Ubiquinone和Ubiquinol,价格有显著的差异,Ubiquinol就是所谓的还原型的高级辅酶Q10,有申请自己的专利。一般指导剂量为30毫克。但辅酶Q10的补充剂量实际上缺乏共识,需要根据药物成分、治疗目的、血药浓度等因素进行确定。

下图是美国的推荐剂量表,但不一定适合亚洲人,所以,中国目前基本上采用低剂量(30mg/d)补充的方法。

图源:医脉通

四、服辅酶Q10该注意什么?

服用辅酶Q10的时候,要注意不是所有人都使用,过敏、肾功能不全、肝功能不全、胆管阻塞的患者,孕妇和哺乳期妇女都慎用辅酶Q10。辅酶Q10在服用的时候,如果同时服用其他药物,可能会有不良反应。如何降糖药合用会抑制疗效,和降脂药合用,可使高血脂症患者的内源性泛癸利酮血浆浓度降低。

辅酶Q10目前服用期间的不良反应是比较轻微的,可出现恶心、胃部不适、食欲减退等,在每日口服300毫克以上,会出现血清氨基转移酶增高,要注意辅酶Q10不能长期大剂量的服用。

心脏病患者遵医嘱服药,保健品别盲目吃,有可能不仅对身体没好处,反而还加重病情,就算是需要补充辅酶Q10,更推荐药品的辅酶Q10 ,经过了临床试验和严格的审核认证,保健品一般是食字号药品,审核不严,且价格虚高,不是必需品。

参考资料:

[1]辅酶Q10,传说中的神药到底有多神?.医脉通心内频道.2018-08-11


[2]话说辅酶Q10:作用到底有多大?.鲁原心论坛.2020-01-08

[3]辅酶Q10真的那么神奇吗?.大众健康杂志.2015-06-05

未经作者允许授权,禁止转载


原文转载:http://health.shaoqun.com/a/148984.html

跨境电商:https://www.ikjzd.com/

亚马逊礼品卡:https://www.ikjzd.com/w/1090.html

epa认证:https://www.ikjzd.com/w/1769


核心提示:不知道何时开始,辅酶Q10备受追捧,被称为"心脏发动机",还宣称有抗衰老、抗癌、治疗不孕不育等作用,真的有那么神吗? 刘女士的父亲一个月前突发急性心肌梗死,幸好送医及时,医生为其植入心脏支架后,老人家身体恢复得不错。这几天,刘女士身处澳洲的妹妹打电话问,要不要给父亲买几盒辅酶Q10寄回去,这保健品对心脏好。刘女士父亲一听,心里犯了嘀咕:丹参片、三七粉咱听得多了,辅酶Q10是什么东西?不知
vava:vava
reddit:reddit
Jumia:Jumia
亚马逊Prime day蹭流量新玩法!:亚马逊Prime day蹭流量新玩法!
贸易战暂停让卖家"节流",但是这些事情能帮卖家"开源"!:贸易战暂停让卖家"节流",但是这些事情能帮卖家"开源"!

2021年1月30日星期六

抖音数据采集教程,unicorn 解决 OLLVM 字符串混淆通用方法

抖音数据采集教程,unicorn 解决 OLLVM 字符串混淆通用方法

短视频、直播数据实时采集接口,请查看文档: TiToData


免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。


虽然是通用方法,但是要了解 so 加载流程、汇编基础、java基础才可以使用哦~

这里用的基于 unicorn 的 androidEmu

AndroidNativeEmu 在面对没有加壳的 so 还是挺好用的,不过遇到加壳的 so,就会力不从心的,需要 dbg 才行。


解决字符串混淆思路,其实和 frida 读取混淆字符串方法一样,在内存中字符串是被解密状态的,所以在内存中拿就可以了, 而且 Unicorn 提供了 unicorn.UC_HOOK_MEM_WRITE 来 hook 操作内存中的数据

干货代码如下:

import loggingimport sysimport osimport unicornimport structfrom androidemu.emulator import Emulatorsys.path.append(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))logging.basicConfig( stream=sys.stdout, level=logging.DEBUG, format="%(asctime)s %(levelname)7s %(name)34s | %(message)s")logger = logging.getLogger(__name__)emulator = Emulator(vfp_inst_set=True) # 初始化模拟器# 字符串解密so_file = "test/test.so"modify_map = {} # 接收字典def UC_HOOK_MEM_WRITE(mu, _type, address, size, _value, user_data): byte_array = struct.pack("I", value)[:size] modify_map[address] = byte_array return# 加载预设 soemulator.load_library("example_binaries/libdl.so", do_init=False)emulator.load_library("example_binaries/libc.so", do_init=False)emulator.load_library("example_binaries/libstdc++.so", do_init=False)emulator.load_library("example_binaries/libm.so", do_init=False)lib_module = emulator.load_library(so_file, do_init=True) # do_init 需要设置为 trueemulator.mu.hook_add(unicorn.UC_HOOK_MEM_WRITE, UC_HOOK_MEM_WRITE) # 准备 UC_HOOK_MEM_WRITE 回调解决字符串加密"""读出代码,并将被加密的字符串修改回去"""with open(so_file, 'rb') as f: content = f.read()print(modify_map)for i in modify_map: value = modify_map[i] base = lib_module.base # 加载基质 if base <= i <= (base + lib_module.size): # 利用加载地址判断  offset = i - base - 0x1000 # 并不是连续加载,是文件中的偏移  content = content[:offset] + value + content[offset + len(value):]down_file = so_file + ".fix"with open(down_file, 'wb') as df: df.write(content) print('写出完毕', down_file)

**
修改 so_file = so文件地址 运行后就会导出解密后的 so
注意事项:

  • 有的时候so有交叉调用,无法直接解密,需要hook住调用函数,来解决异常








原文转载:http://www.shaoqun.com/a/521205.html

跨境电商:https://www.ikjzd.com/

淘粉吧官网:https://www.ikjzd.com/w/1725.html

crowd:https://www.ikjzd.com/w/880


抖音数据采集教程,unicorn解决OLLVM字符串混淆通用方法短视频、直播数据实时采集接口,请查看文档:TiToData免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负。虽然是通用方法,但是要了解so加载流程、汇编基础、java基础才可以使用哦~这里用的基于unicorn的androidEmuAndroidNativeEmu在面对没有加壳的so还是挺好用的,不过遇到加壳的so,
杨颜:杨颜
沃尔码:沃尔码
速卖通开店流程详解:速卖通开店流程详解
预测:你眼中的巨头亚马逊5年后会是什么样?:预测:你眼中的巨头亚马逊5年后会是什么样?
亚马逊FBA卖家销售税指南(完结篇):亚马逊FBA卖家销售税指南(完结篇)

最牛逼的性能监控系统,SkyWalking 集强大于一身!

作者:废物大师兄
来源:www.cnblogs.com/cjsblog/p/14075486.html

SkyWalking 是一个应用性能监控系统,特别为微服务、云原生和基于容器(Docker, Kubernetes, Mesos)体系结构而设计。

除了应用指标监控以外,它还能对分布式调用链路进行追踪。类似功能的组件还有:Zipkin、Pinpoint、CAT等。

上几张图,看看效果,然后再一步一步搭建并使用。

1、概念与架构

SkyWalking是一个开源监控平台,用于从服务和云原生基础设施收集、分析、聚合和可视化数据。SkyWalking提供了一种简单的方法来维护分布式系统的清晰视图,甚至可以跨云查看。它是一种现代APM,专门为云原生、基于容器的分布式系统设计。

SkyWalking从三个维度对应用进行监视:service(服务), service instance(实例), endpoint(端点)

服务和实例就不多说了,端点是服务中的某个路径或者说URI

SkyWalking allows users to understand the topology relationship between Services and Endpoints, to view the metrics of every Service/Service Instance/Endpoint and to set alarm rules.

SkyWalking允许用户了解服务和端点之间的拓扑关系,查看每个服务/服务实例/端点的度量,并设置警报规则。

1.1. 架构

SkyWalking逻辑上分为四个部分:Probes(探针), Platform backend(平台后端), Storage(存储), UI

这个结构就很清晰了,探针就是Agent负责采集数据并上报给服务端,服务端对数据进行处理和存储,UI负责展示

2、下载与安装

SkyWalking有两中版本,ES版本和非ES版。

如果我们决定采用ElasticSearch作为存储,那么就下载es版本。

https://skywalking.apache.org/downloads/
https://archive.apache.org/dist/skywalking/

agent目录将来要拷贝到各服务所在机器上用作探针

bin目录是服务启动脚本

config目录是配置文件

oap-libs目录是oap服务运行所需的jar包

webapp目录是web服务运行所需的jar包

接下来,要选择存储了,支持的存储有:

  • H2
  • ElasticSearch 6, 7
  • MySQL
  • TiDB
  • InfluxDB

作为监控系统,首先排除H2和MySQL,这里推荐InfluxDB,它本身就是时序数据库,非常适合这种场景

但是InfluxDB我不是很熟悉,所以这里先用ElasticSearch7

https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-storage.md

2.1. 安装ElasticSearch

https://www.elastic.co/guide/en/elasticsearch/reference/7.10/targz.html

# 启动./bin/elasticsearch -d -p pid# 停止pkill -F pid

ElasticSearch7.x需要Java 11以上的版本,但是如果你设置了环境变量JAVA_HOME的话,它会用你自己的Java版本

通常,启动过程中会报以下三个错误:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535][2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144][3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解决方法:

在 /etc/security/limits.conf 文件中追加以下内容:

* soft nofile 65536* hard nofile 65536* soft nproc 4096* hard nproc 4096

可通过以下四个命令查看修改结果:

ulimit -Hnulimit -Snulimit -Huulimit -Su

修改 /etc/sysctl.conf 文件,追加以下内容:

vm.max_map_count=262144

修改es配置文件 elasticsearch.yml 取消注释,保留一个节点

cluster.initial_master_nodes: ["node-1"]

为了能够ip:port方式访问,还需修改网络配置

network.host: 0.0.0.0

修改完是这样的:

至此,ElasticSearch算是启动成功了

一个节点还不够,这里用三个节点搭建一个集群

192.168.100.14 config/elasticsearch.yml

cluster.name: my-monitornode.name: node-1network.host: 192.168.100.14http.port: 9200discovery.seed_hosts: ["192.168.100.14:9300", "192.168.100.15:9300", "192.168.100.19:9300"]cluster.initial_master_nodes: ["node-1"]

192.168.100.15 config/elasticsearch.yml

cluster.name: my-monitornode.name: node-2network.host: 192.168.100.15http.port: 9200discovery.seed_hosts: ["192.168.100.14:9300", "192.168.100.15:9300", "192.168.100.19:9300"]cluster.initial_master_nodes: ["node-1"]

192.168.100.19 config/elasticsearch.yml

cluster.name: my-monitornode.name: node-3network.host: 192.168.100.19http.port: 9200discovery.seed_hosts: ["192.168.100.14:9300", "192.168.100.15:9300", "192.168.100.19:9300"]cluster.initial_master_nodes: ["node-1"]

同时,建议修改三个节点config/jvm.options

-Xms2g-Xmx2g

依次启动三个节点

pkill -F pid./bin/elasticsearch -d -p pid

接下来,修改skywalking下config/application.yml 中配置es地址即可

storage: selector: ${SW_STORAGE:elasticsearch7} elasticsearch7: nameSpace: ${SW_NAMESPACE:""} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.100.14:9200,192.168.100.15:9200,192.168.100.19:9200}

2.2. 安装Agent

https://github.com/apache/skywalking/blob/v8.2.0/docs/en/setup/service-agent/java-agent/README.md

将agent目录拷贝至各服务所在的机器上

scp -r ./agent chengjs@192.168.100.12:~/

这里,我将它拷贝至各个服务目录下

plugins是探针用到各种插件,SkyWalking插件都是即插即用的,可以把optional-plugins中的插件放到plugins中

修改 agent/config/agent.config 配置文件,也可以通过命令行参数指定

主要是配置服务名称和后端服务地址

agent.service_name=${SW_AGENT_NAME:user-center}collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.100.17:11800}

当然,也可以通过环境变量或系统属性的方式来设置,例如:

export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

最后,在服务启动的时候用命令行参数 -javaagent 来指定探针

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

例如:

java -javaagent:./agent/skywalking-agent.jar -Dspring.profiles.active=dev -Xms512m -Xmx1024m -jar demo-0.0.1-SNAPSHOT.jar

3、启动服务

修改 webapp/webapp.yml 文件,更改端口号及后端服务地址

server: port: 9000collector: path: /graphql ribbon: ReadTimeout: 10000 # Point to all backend's restHost:restPort, split by , listOfServers: 127.0.0.1:12800

启动服务

bin/startup.sh

或者分别依次启动

bin/oapService.shbin/webappService.sh

查看logs目录下的日志文件,看是否启动成功

浏览器访问 id="4、告警">4、告警

编辑 alarm-settings.yml 设置告警规则和通知

https://github.com/apache/skywalking/blob/v8.2.0/docs/en/setup/backend/backend-alarm.md

重点说下告警通知

为了使用钉钉机器人通知,接下来,新建一个项目:

<?

Spring Boot 基础就不介绍了,推荐看下这个教程:

https://github.com/javastacks/spring-boot-best-practice

可选依赖(不建议引入)

<dependency <groupId>org.apache.skywalking</groupId> <artifactId>server-core</artifactId> <version>8.2.0</version></dependency>

定义告警消息实体类:

package com.wt.monitor.skywalking.alarm.domain;import lombok.Data;import java.io.Serializable;/** * @author ChengJianSheng * @date 2020/12/1 */@Datapublic class AlarmMessageDTO implements Serializable { private int scopeId; private String scope; /**  * Target scope entity name  */ private String name; private String id0; private String id1; private String ruleName; /**  * Alarm text message  */ private String alarmMessage; /**  * Alarm time measured in milliseconds  */ private long startTime;}

发送钉钉机器人消息:

package com.wt.monitor.skywalking.alarm.service;import com.dingtalk.api.DefaultDingTalkClient;import com.dingtalk.api.DingTalkClient;import com.dingtalk.api.request.OapiRobotSendRequest;import com.taobao.api.ApiException;import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.binary.Base64;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Service;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;/** * https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq * @author ChengJianSheng * @data 2020/12/1 */@Slf4j@Servicepublic class DingTalkAlarmService { @Value("${dingtalk.webhook}") private String webhook; @Value("${dingtalk.secret}") private String secret; public void sendMessage(String content) {  try {   Long timestamp = System.currentTimeMillis();   String stringToSign = timestamp + "\n" + secret;   Mac mac = Mac.getInstance("HmacSHA256");   mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));   byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));   String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");   String serverUrl = webhook + "&timestamp=" + timestamp + "&sign=" + sign;   DingTalkClient client = new DefaultDingTalkClient(serverUrl);   OapiRobotSendRequest request = new OapiRobotSendRequest();   request.setMsgtype("text");   OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();   text.setContent(content);   request.setText(text);   client.execute(request);  } catch (ApiException e) {   e.printStackTrace();   log.error(e.getMessage(), e);  } catch (NoSuchAlgorithmException e) {   e.printStackTrace();   log.error(e.getMessage(), e);  } catch (UnsupportedEncodingException e) {   e.printStackTrace();   log.error(e.getMessage(), e);  } catch (InvalidKeyException e) {   e.printStackTrace();   log.error(e.getMessage(), e);  } }}

AlarmController.java

package com.wt.monitor.skywalking.alarm.controller;import com.alibaba.fastjson.JSON;import com.wt.monitor.skywalking.alarm.domain.AlarmMessageDTO;import com.wt.monitor.skywalking.alarm.service.DingTalkAlarmService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.text.MessageFormat;import java.util.List;/** * @author ChengJianSheng * @date 2020/12/1 */@Slf4j@RestController@RequestMapping("/skywalking")public class AlarmController { @Autowired private DingTalkAlarmService dingTalkAlarmService; @PostMapping("/alarm") public void alarm(@RequestBody List<AlarmMessageDTO> alarmMessageDTOList) {  log.info("收到告警信息: {}", JSON.toJSONString(alarmMessageDTOList));  if (null != alarmMessageDTOList) {   alarmMessageDTOList.forEach(e->dingTalkAlarmService.sendMessage(MessageFormat.format("-----来自SkyWalking的告警-----\n【名称】: {0}\n【消息】: {1}\n", e.getName(), e.getAlarmMessage())));  } }}

参考文档:

https://skywalking.apache.org/
https://skywalking.apache.org/zh/\
https://github.com/apache/skywalking/tree/v8.2.0/docs
https://archive.apache.org/dist/
https://www.elastic.co/guide/en/elasticsearch/reference/master/index.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-discovery-bootstrap-cluster.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-discovery-hosts-providers.html

最后,感谢阅读~
近期热文推荐:

1.Java 15 正式发布, 14 个新特性,刷新你的认知!!

2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!

3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

4.吊打 Tomcat ,Undertow 性能很炸!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!









原文转载:http://www.shaoqun.com/a/521202.html

跨境电商:https://www.ikjzd.com/

塔图:https://www.ikjzd.com/w/2274

55海淘:https://www.ikjzd.com/w/1723


作者:废物大师兄来源:www.cnblogs.com/cjsblog/p/14075486.htmlSkyWalking是一个应用性能监控系统,特别为微服务、云原生和基于容器(Docker,Kubernetes,Mesos)体系结构而设计。除了应用指标监控以外,它还能对分布式调用链路进行追踪。类似功能的组件还有:Zipkin、Pinpoint、CAT等。上几张图,看看效果,然后再一步一步搭建并使用
ensogo:ensogo
bestbuy:bestbuy
建议收藏!史上最全替代Keepa工具合集!(插件+安装教程+实操):建议收藏!史上最全替代Keepa工具合集!(插件+安装教程+实操)
如何避免亚马逊listing商标侵权?卖家必看 !:如何避免亚马逊listing商标侵权?卖家必看 !
2018年现象级爆款要诞生,这款产品大有追赶指尖陀螺的势头:2018年现象级爆款要诞生,这款产品大有追赶指尖陀螺的势头

虚拟机字节码执行引擎 —— 方法调用


本文部分摘自《深入理解 Java 虚拟机第三版》


概述

方法调用并不等同于方法中的代码被执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法)。之前讲过,一切方法调用在 Class 文件里面都是以符号引用的形式存储,而非方法在实际运行时内存布局中的入口地址(直接引用)。这个特性给 Java 带来强大的动态扩展能力,但也使得 Java 方法调用过程变得相对复杂,某些调用需要在类加载期间,甚至到运行期间才能确定目标方法的直接引用


解析

所有方法调用的目标方法在 Class 文件里面都是一个常量池中的符号引用,在类加载的解析阶段,会将其中的一部分引用转化为直接引用,这种解析能成立的前提是:方法在程序真正运行之前就有一个可确定的调用版本,并且这个方法的调用版本在运行期是不可变的。换句话说,调用目标在程序代码写好、编译器进行编译那一刻就已经确定下来了。这类方法的调用被称为解析(Resolution)

在 Java 中符合"编译期可知,运行期不可变"要求的方法,主要有静态方法和私有方法两大类,前者和类型直接关联,后者在外部不可被访问,这两种方法各自的特点决定了它们都不可能通过继承或别的方式重写出其他版本,因此更适合在类加载阶段进行解析

调用不同类型的方法,字节码指令集里设计了不同的指令。Java 虚拟机支持以下 5 条方法调用字节码指令:

  • invokestatic

    用于调用静态方法

  • invokespecial

    用于调用实例构造器方法、私有方法和父类中的方法

  • invokevirtual

    用于调用所有虚方法

  • invokeinterface

    用于调用接口方法,会在运行时再确定一个实现该接口的对象

  • invokedynamic

    先在运行时动态解析出调用点限定符所引用的方法,然后再执行该方法

只要能被 invokestatic 和 invokespecial 指令调用的方法,都可以在解析阶段确定唯一的调用版本,被 final 修饰的方法也是如此(使用 invokevirtual 指令调用)。能在类加载时就把符号引用解析为直接引用的方法统称为非虚方法(Non-Virtual Method),其他方法则称为虚方法(Virtual Method)


分派

解析调用是一个静态的过程,在编译期就完全确定,在类加载的解析阶段就会把涉及的符号引用全部转变为明确的直接引用,不必延迟到运行期再去完成。而另一种方法调用形式:分派(Dispatch)调用则要复杂许多。分派调用也是多态实现的基础,比如重载和重写,就是依靠分派调用机制来确定正确的目标方法

分派调用可能是静态的也可能是动态的,按照分派依据的宗量数又可分为单分派和多分派。这两类分派方式两两组合就构成了静态单分派、静态多分派、动态单分派、动态多分派四种分派组合情况:

1. 静态类型与实际类型

为了了解分派,首先要清楚静态类型和动态类型这两个概念,代码如下:

// Human 是 Man 的父类Human man = new Man();

我们把 Human 称为变量的静态类型(Static Type),后面的 Man 则被称为变量的实际类型(Actual Type)或者运行时类型(Runtime Type)。静态类型和实际类型在程序中都可能发生变化,区别在于静态类型的变化仅仅在编译期可知;而实际类型的变化的结果在运行期才可确定

// 实际类型变化,必须等到程序运行到这行才能确定Human human = (new Random()).nextBoolean() ? new Man() : new Woman();// 静态类型变化,编译期即可知Man man = (Man)human;Woman woman = (Woman)woman;

2. 静态分派

所有依赖静态类型来决定方法执行版本的分派动作,都称为静态分派。静态分派最典型的应用表现就是方法重载,代码如下:

public class StaticDispatch {  static abstract class Human {}  static class Man extends Human {}  static class Woman extends Human {}  public void sayHello(Human guy) {  System.out.println("hello guy"); }  public void sayHello(Man guy) {  System.out.println("hello gentleman"); }  public void sayHello(Woman guy) {  System.out.println("hello lady"); }  public static void main(String args) {  Human man = new Man();  Human woman = new Woman();  StaticDispatch sd = new StaticDispatch();  sd.sayHello(man);  sd.sayHello(woman); }}

程序的运行结果是两次打印内容都是"hello guy",因为使用哪个重载版本,完全取决于传入参数的数量和类型。代码中故意定义了两个静态类型相同,但实际类型不同的变量,但虚拟机在重载时只通过参数的静态类型而不是实际类型作为判定依据。静态分派发生在编译阶段,因此确定静态分派的动作实际上不是由虚拟机来执行,而由编译器来确定方法的重载版本。

3. 动态分派

动态分派与 Java 多态性的另外一个重要体现 —— 重写(Override)有着很密切的关系,我们还是用前面的代码为例:

public class StaticDispatch {  static abstract class Human {  protected abstract void sayHello(); }  static class Man extends Human {  @Override  protected abstract void sayHello() {   System.out.println("hello gentleman");  } }  static class Woman extends Human {  @Override  protected abstract void sayHello() {   System.out.println("hello lady");  } }  public static void main(String args) {  Human man = new Man();  Human woman = new Woman();  man.sayHello();  woman.sayHello(); }}

运行结果分别是"hello gentleman"和"hello lady",对于习惯了 Java 思想的我们来说是很正常的事,但虚拟机是符合判断应该调用哪个方法的呢?显然这里不可能再根据静态类型来决定了,而是两个变量的实际类型。动态分派是由虚拟机执行的,上述 Java 代码被编译成 class 字节码后,对应的 man.sayHello()woman.sayHello() 会被编译成 invokevirtual 方法调用指令,并且 man 和 woman 两个方法的所有者(接收者)的引用会被压到栈顶。invokevirtual 指令的运行时解析过程大致可分为以下几步:

  1. 找到操作数栈顶的第一个元素所指向对象的实际类型
  2. 如果在实际类型中找到与常量中的描述符和简单名称都相符的方法,则进行方法权限校验,通过则返回该方法的直接引用,查找过程结束;不通过则返回 java.lang.IllegalAccessError 异常
  3. 否则,按照继承关系从下往上依次对实际类型的各个父类进行第二步操作
  4. 如果始终没有找到合适的方法,则抛出 java.lang.IllegalAccessError 异常

invokevirtual 指令执行的第一步就是在运行期确定方法所有者的实际类型,这也是 Java 中方法重写的本质。我们把这种在运行期根据实际类型确定方法执行版本的分派过程称为动态分派

4. 单分派与多分派

方法的接收者与方法的参数统称为方法的宗量,根据分派基于多少种宗量,可以将分派划分为单分派和多分派两种。单分派是根据一个宗量对目标方法进行选择,多分派则是根据多于一个宗量对目标方法进行选择

public class Dispatch {  static class Rice {} static class Chocolate {}  public static class Father {  public void eat(Rice rice) {   System.out.println("father eat rice");  }    public void eat(Chocolate chocolate) {   System.out.println("father eat chocolate");  } }  public static class Son extends Father {  public void eat(Rice rice) {   System.out.println("son eat rice");  }    public void eat(Chocolate chocolate) {   System.out.println("son eat chocolate");  } }  public static void main(String[] args) {		Father father = new Father();  Father son = new Son();  father.eat(new Rice());  son.eat(new Chocolate()); }}

打印结果分别是"father eat rice"和"son eat chocolate",我们可以发现,这里的方法选择是基于方法接收者的不同和参数不同两个因素而造成的结果,也就是我们说的宗量。这里实际上涉及两个阶段,第一个阶段是静态分派的过程,方法接收者类型是 Father 还是 Son,方法参数是 Rice 还是 Chocolate,产生的两条 invokevirtual 指令的参数分别指向常量池中 Father::eat(Rice) 和 Father::eat(Chocolate) 方法的符号引用。因为是根据两个宗量进行选择,所以 Java 中的静态分派属于静态多分派。再看动态分派阶段,此时唯一可以影响虚拟机选择的因素只有方法接收者的实际类型了,即实际类型是 Father 还是 Son,因为只有一个宗量作为选择依据,所以 Java 的动态分派属于单分派类型

4. 虚拟机动态分派的实现

动态分派是执行非常频繁的动作,动态分派的方法版本选择过程需要运行时在接收者类型的方法元数据中搜索合适的目标方法,比如实际类型是 Father,那么就要在 Father 类型的方法元数据中寻找 eat 方法。为了提高运行效率,Java 虚拟机为类型在方法区中建立了一个虚方法表,虚方法表存放着各个方法的实际入口地址。如果某个方法在子类中没有被重写,那么子类的虚方法表和父类的虚方法表中相同方法的地址入口是一致的,都指向父类的实现。如果子类重写了这个方法,子类虚方法表中的地址就会被替换为指向子类实现版本的方法入口地址

为了程序实现方便,具有相同签名的方法,在父类、子类的虚方法表中都应当具有一致的索引序号,这样当类型转换时,只需要变更要查找的虚方法表即可。虚方法表一般在类加载的连接阶段初始化完成。










原文转载:http://www.shaoqun.com/a/521192.html

跨境电商:https://www.ikjzd.com/

万色:https://www.ikjzd.com/w/2382

夸克:https://www.ikjzd.com/w/1237


本文部分摘自《深入理解Java虚拟机第三版》概述方法调用并不等同于方法中的代码被执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法)。之前讲过,一切方法调用在Class文件里面都是以符号引用的形式存储,而非方法在实际运行时内存布局中的入口地址(直接引用)。这个特性给Java带来强大的动态扩展能力,但也使得Java方法调用过程变得相对复杂,某些调用需要在类加载期间,甚至到运行期间
eprice:eprice
四海商舟:四海商舟
跨境卖家注意!法国暴乱不断,土耳其汇率大涨!:跨境卖家注意!法国暴乱不断,土耳其汇率大涨!
口述:没有30万嫁妆 老公风流不羞愧(3/3):口述:没有30万嫁妆 老公风流不羞愧(3/3)
新手打造一个营销独立站需要掌握哪些技能:新手打造一个营销独立站需要掌握哪些技能

传纸条、打有线电话,金矿事故救援为啥还用原始通讯方式?|矿井|矿工|矿难

  来源:中国科普博览

  山东栖霞笏山金矿爆炸事故,牵动着全国人民的心!截至26日最新消息显示,已有11人成功升井,10人确认遇难,仍有一人处于失联状态,搜救仍在进行,事故原因也在调查中。

  1月17日,救援团队打通了一个钻孔,通过纸条与被困人员取得联系,了解到被困矿工们的具体状况。而后的一段时间中,都是靠着薄薄的纸条联系着地面与井下,直到后来才传入了有线电话与井内建立了稳定的联系。

  山东笏山金矿事故幸存者张某,在事故救援期间,是他写了两张纸条向井上救援人员传递消息。  山东笏山金矿事故幸存者张某,在事故救援期间,是他写了两张纸条向井上救援人员传递消息。

  在通信手段如此多样化的今天,为什么我们还要靠最原始的介质——纸条、电话线和井下被困人员保持通讯?往下送一部手机不可以吗?

栖霞金矿爆炸事故救援时间线,来源:央广网栖霞金矿爆炸事故救援时间线,来源:央广网

  矿井下通讯方式多样,但事故发生时都容易崩

  其实矿用通讯手段有很多,大致分为依靠实体传输通道的有线与依靠无线信号的无线两种通讯方式。

  通过有线通讯的方式主要有两种,漏泄通信和感应通信均可满足人在井下的通信需求。

  漏泄通信是通过漏泄电缆传输信号。其中用到的漏泄电缆内部金属线并没有完全被屏蔽,而是在电缆上开有漏泄槽,在电缆内部传输的一部分信号能通过漏泄槽的孔漏泄到外部,提供给移动的接收机以达到通信目的。

  而感应通信则主要是依靠矿道内金属导管(矿井内的金属导轨或传输管道等)实现。

 漏泄线缆示意图,来源:维基百科 漏泄线缆示意图,来源:维基百科

  通过以上两种方式,现代矿井工作能够实现即时、快速的通信。但是这个两种方式仍然有其短板。漏泄通信的漏泄槽之间相隔较远,因此很依赖于信号接受体本身的移动,换句话说,需要依靠携带接收机的矿工们。

  另一方面,两者的实现都是基于实体的传输线,一旦发生事故,本身铺设的传输线遭到严重损坏时,日常井下工作联络网也会遭到破坏。

  事实上,还有一种叫做透地通信的矿井应急通信,会将长达百米的天线埋入地下实现通讯。矿井事故中,天线容易被损坏,所以在严重事故中这些依靠原来矿井传输通道的通信方法可能根本不可行。

  依靠实体传输通道的有线易被破坏,那换成无线通讯呢?

  其实,大多数主要基于无线的通信手段,比如移动通信等,在矿井作业中也变得越来越普遍。但是在事故矿井内,通信空间受损,会导致无线信号的质量大大下降,或是彻底失效。此外,大功率的电信号也有可能导致矿井内易燃物爆炸。因此,包括手机和卫星在内的无线通信也不能成为有效的矿井应急通信手段。

  这也是为什么在灾情较为严重的矿井事故中,用的都是看起来十分"愚笨"的通信方式,例如敲击传声、传纸条和送入有线电话等,而这些方法,也被证明是最可靠的。

  古老媒介上的生命重托

  1963年,西德莱格德镇的若干名被困矿工就是通过钢索传声这一方式最终获救。被困矿工们仅依靠一瓶茶和有限的食物,在地下坚持了两周,从而缔造了"莱格德奇迹"。

莱格德矿难救援写实画以及逃生舱实物照片,来源:维基百科莱格德矿难救援写实画以及逃生舱实物照片,来源:维基百科

  栖霞矿难发生后,爆炸导致矿井通道被严重破坏,救援队伍无法确定被困人员的具体位置,更不知道被困人员的具体伤亡情况,只能先尝试尽快钻通通往被困人员身处区域的钻孔。幸运的是,1月17日下午,3号钻孔成功贯穿到五中段,并收到了井下传来的敲击声。

 1月25日,救援人员在事故现场作业。 1月25日,救援人员在事故现场作业。

  正是这些敲击声,在事发后第一次向救援队伍传递了井下仍有幸存人员的信号。之后,通过狭窄的钻孔用绳索和管道将补给品送入地下,同时通过绳索带出的纸条确定被困矿工的大概情况,再送入有线电话与内部建立稳定的联系。

  在地下矿灾的极端环境下,实物为媒介的传输和有线通信是最稳定省时的通信手段,正是这些平平无奇的通信手段为被困人员的成功生还提供了可能。

1月24日,一名被困矿工成功升井。1月24日,一名被困矿工成功升井。

  极端环境下的通讯挑战

  其实不仅是地下,地表和地外的许多极端环境都在考验人类的通信能力。

  在远离城市的山区,3G、4G网络减弱,但2G信号的存在感却得以增强。登山队在7500米以上的珠穆朗玛峰甚至也可以接收到基站的2G信号,所以仅仅是去珠峰旅游的话,大可不必担心你的手机会瘫痪。但是如果继续向山顶无基站覆盖的地域深入,就只能寻求卫星的帮助了。

  虽然卫星在矿井下帮不了什么忙,但是处于无遮挡的地表,即使是无人区,也可以使用卫星电话。顾名思义,卫星电话是直接使用卫星作为中转的电话通信方式。当然它的缺点也很明显,一是成本高昂,一般只会用来支持登山或科考等活动;二是因为传输的目标是地外的卫星,信号很容易受到大气,甚至是太阳活动的影响。当下卫星电话除了登山和科考中得到应用,也成为了远洋船只与陆地之间重要的通讯手段。

货架上的卫星电话(左)和印尼海啸救灾中应用卫星电话进行联络的场景(右)货架上的卫星电话(左)和印尼海啸救灾中应用卫星电话进行联络的场景(右)

  离开陆地,深入海洋。在深海中,因为发射的无线电信号会受到水质、洋流、水下动植物、障碍物等的影响,无线通信的效率会变得非常低。除此之外,海水对光传输的巨大衰减作用也致使光通信不可用。所以在深海,海底光纤和水声通信成为了目前最被广泛使用的水下通信方式。

  想必大家对海底光缆并不陌生,但是海底光缆的主要作用是沟通被海洋分隔开的两块儿陆地。而水声探测则可以支持深海探测器等水下作业的机器与人类进行沟通。因为考虑到海水压力和海水腐蚀的影响,水下通信设备也往往拥有严苛的制造标准。

铺设在海底的光缆网铺设在海底的光缆网

  我们再走远一点,如果漂泊于浩瀚无垠的太空中,此时唯一可用的通信方式只剩无线电波了,因为只有电磁波可以在太空的真空环境中传播。当然光也属于电磁波,但是因为直线传输的特点,光信号会被各种天体所阻挡,因此似乎只有无线电波可以担此大任。

  不论是高耸的世界屋脊、遥远的外太空,还是未知的地下和海洋,都与我们的日常生活遥不可及。但是应用于这些极端环境的各类通信方式却支持了人类探索这些区域,从而使人类在恶劣的环境下依然生存得游刃有余。

  从古老的实体传声,到现代化的光电通信,人类通信方式的发展支撑着我们走得更远、看得更广,但是无论身处什么样极端环境,人类通信最初的意义都是保持联系,构建联结。有的时候看似强大的通信却不敌一张纸条,再多样化的手段可能到头来都汇集成一句话:

  因为相连,所以拥有希望!

原文转载:http://tech.shaoqun.com/a/317680.html

跨境电商:https://www.ikjzd.com/

垂直电商:https://www.ikjzd.com/w/1450

邮乐购物商城:https://www.ikjzd.com/w/1776


来源:中国科普博览  山东栖霞笏山金矿爆炸事故,牵动着全国人民的心!截至26日最新消息显示,已有11人成功升井,10人确认遇难,仍有一人处于失联状态,搜救仍在进行,事故原因也在调查中。  1月17日,救援团队打通了一个钻孔,通过纸条与被困人员取得联系,了解到被困矿工们的具体状况。而后的一段时间中,都是靠着薄薄的纸条联系着地面与井下,直到后来才传入了有线电话与井内建立了稳定的联系。  山东笏山金矿事
logo免费制作:logo免费制作
海拍客:海拍客
亚马逊9.9美元包邮能在半年赚300万?:亚马逊9.9美元包邮能在半年赚300万?
法国8大本土电商平台,法国本地电商平台有这些!:法国8大本土电商平台,法国本地电商平台有这些!
海关总署:关于公布2018年商品归类行政裁定的公告!:海关总署:关于公布2018年商品归类行政裁定的公告!

狂砍28+12+9!哈登欧文打疯了,篮网打崩雷霆,杜兰特偷着乐_命中

原标题:狂砍28+12+9!哈登欧文打疯了,篮网打崩雷霆,杜兰特偷着乐

NBA常规赛,布鲁克林篮网现在坐拥三巨头豪华阵容,他们已经通过一波连胜杀到东部第四名,杜兰特+哈登+欧文三巨头带队可以轮番上阵狂砍救主,现在篮网进入佳境,只需要提升内线和防守就可以了。雷霆队作为杜兰特和哈登的母队,不要小看雷霆队,最近他们也在连胜,排名处于西部季后赛的边缘。篮网这场首发:哈登+欧文+小乔丹+乔哈里斯+布朗。杜兰特因为跟腱恢复轮休比赛。雷霆首发阵容:亚历山大+贝兹利+多特+霍福德+马勒登。狂砍28+12+9!哈登打疯了,欧文不讲理,篮网打崩雷霆领先17分。

首节比赛,雷霆队霍福德和小乔丹对位,而且霍福德命中三分,保罗徒弟亚历山大再度命中两分,雷霆5-0。篮网小乔丹回应暴扣,哈登也开始命中两分,篮网努力追分。雷霆霍福德再中三分,篮网布朗命中两分,乔哈里斯也命中一记三分,雷霆再中一记三分,哈登回应三分一箭穿心,小乔丹暴扣,篮网反超雷霆取得领先地位。接着雷霆没有打进,欧文再度命中两分,贝兹利也回应中投,篮网16-13雷霆。

暂停回来,篮网命中中投,雷霆回应三分,小乔丹暴扣,霍福德再度命中三分,篮网布朗命中两分,两队比分很焦灼。哈登命中两分,他再打一个2+1,帮助篮网取得了6分领先。同时,杰夫格林也发力,他也打出2+1,继续扩大领先。雷霆迪亚洛两罚全中止血,他连砍4分,亚历山大也两罚全中,雷霆稍微追上分差。篮网鲁瓦乌命中三分,欧文也命中两分,篮网进一步巩固自己的领先优势。第一节比赛打完,篮网36-27雷霆。

次节比赛,两队上来各打一铁,哈登命中两分,沙梅特命中三分,詹姆斯哈登继续爆发,他命中三分,连投带罚,连砍5分,哈登带队篮网打出一波10-0的小高潮,迅速将分差扩大到接近20分(46-27)。雷霆暂停调整,回来之后,篮网沙梅特再中三分,杰夫格林也再度命中两分,篮网越打越猛啊。雷霆多特终于命中三分,帮助球队打破得分荒,很艰难。同时,多特再度散发全中,雷霆稍微止血。篮网56-34雷霆。

接着,篮网命中两球,雷霆这边也回应三分,篮网乔哈里斯命中三分,亚历山大连投带罚,连砍4分。雷霆还在努力缩小分差。小乔丹暴扣砍下两分,霍福德连续命中两球,他也连砍4分帮助雷霆缩小分差。但是,篮网乔哈里斯命中三分,欧文也命中中投,篮网继续巩固优势。雷霆贝兹利命中两分,欧文命中三分,他连砍5分继续高歌猛进。亚历山大命中中投,雷霆再中三分,篮网布朗命中两分。杰夫格林命中三分,迪亚洛命中两分。半场结束,篮网76-59大幅领先雷霆。

半场数据,篮网队哈登砍下17分+4篮板+7助攻的数据,欧文砍下11分+5篮板+5助攻+1抢断,乔哈里斯也砍下12分+1篮板+1助攻+1抢断,小乔丹8分+6篮板+1助攻,布朗6分+2篮板,杰夫格林8分+3篮板+1助攻,沙梅特6分+1助攻。哈登打疯了,欧文也不讲理,两人狂砍28分+12助攻+9篮板,带队大幅领先雷霆。雷霆队这边,霍福德砍下13分+4篮板+1助攻+1盖帽,亚历山大13分+2篮板+3助攻,马勒登11分+2篮板+1抢断,迪亚洛9分+1篮板+2助攻,多特6分+2助攻,贝兹利4分+4篮板+2助攻。返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/389627.html

跨境电商:https://www.ikjzd.com/

亿恩:https://www.ikjzd.com/w/1461

amazon go:https://www.ikjzd.com/w/67


原标题:狂砍28+12+9!哈登欧文打疯了,篮网打崩雷霆,杜兰特偷着乐NBA常规赛,布鲁克林篮网现在坐拥三巨头豪华阵容,他们已经通过一波连胜杀到东部第四名,杜兰特+哈登+欧文三巨头带队可以轮番上阵狂砍救主,现在篮网进入佳境,只需要提升内线和防守就可以了。雷霆队作为杜兰特和哈登的母队,不要小看雷霆队,最近他们也在连胜,排名处于西部季后赛的边缘。篮网这场首发:哈登+欧文+小乔丹+乔哈里斯+布朗。杜兰特
勤商网:勤商网
xinong:xinong
重磅!亚马逊宣布中国卖家可以进驻沙特站点了!进驻攻略(4)认证篇:重磅!亚马逊宣布中国卖家可以进驻沙特站点了!进驻攻略(4)认证篇
亚马逊listing常见问题,应该如何解决?:亚马逊listing常见问题,应该如何解决?
亚马逊旺季爆单突围技巧解析:亚马逊旺季爆单突围技巧解析