2021年3月31日星期三

松弛焦虑:网红“冷冻缩阴法”,这些难以抵抗的偏方真的有用吗?

核心提示:松弛,似乎是一个女性们过不去的坎,从"缩阴凝胶"到"冷冻缩阴",执着于把阴道变小的同时,她们的松弛焦虑也被一步步地放大……

在抖音海外版 TikTok 上,有个带有Ice cube challenge标签的热门挑战:参加挑战的网红们将冰块塞进阴道里,宣称这样做可以让阴部变得更紧致,并且还将这大型缩阴直播美其名曰"冷冻缩阴疗法"。

图源:TikTok截图

于是不少无知少女抱着:"试试又不花钱,万一有效呢?"的想法跟风操作,殊不知"冷冻缩阴"危害大,分分钟会出现阴道黏膜冰灼伤问题

那些认为"冷冻缩阴"有效的人,其实是阴道周围的筋膜软组织冰冻损伤,失去了弹性,并不是真正缩了阴。冻伤后的破裂流血、长久不愈,更甚者会出现阴道黏膜组织坏死,从而导致阴道尿道瘘、阴道膀胱瘘、阴道直肠瘘,想想都可怕。

然而更令人惶恐的是,这个海外的"冷冻缩阴"不过是冰山一角,我国市面上还有数不清的缩阴偏方。

松弛,似乎是一个女性们过不去的坎,从"缩阴凝胶"到"冷冻缩阴",执着于把阴道变小的同时,她们的松弛焦虑也被一步步地放大……

一、层出不穷的缩阴偏方

1.缩阴凝胶:


在某宝上月销上千的"缩阴凝胶",关键词集齐了"缩阴"、"高潮"、"清宫",更是打着有"一粒就紧,能够恢复处女身。"神奇功效的招牌。事实上,这种几百元的凝胶在某巴巴上就可以查到其成本价仅不到十元,而且基本都是消字号产品,也就是属于卫生消毒用品,本质为抑菌剂

因此,再良心的缩阴凝胶,能带来的效果也只有杀杀菌。虽然没有太严重的危险,但在未经医师的指导下擅自使用阴道杀菌产品,有可能会破坏阴道内菌群平衡,引发阴道炎等妇科疾病。没用还可能有害,廉价却卖成天价,这就是缩阴凝胶的真面目。

2.徒手缩阴


缩阴凝胶涂了个寂寞就算了,这徒手缩阴更是令人身心交瘁,做徒手缩阴的"大师"打着中医推拿的名号,折叠你的大腿,并表示折合你的耻骨可以达到缩阴之功效。

但实际上这种不借助专业医疗设施的按压,轻则肌肉拉伤,重则按压致折伤脊柱或神经,导致半身不遂。

3.日式私密训练


与这个"日式私密训练营"比起来,徒手缩阴充其量只是个江湖散户。在这个所谓的缩阴训练营里,学员们缴纳着成千上万的学费,跟着可能没有任何资格证的导师一起在阴道吊着水壶、西瓜、哑铃等重物。导师告诉学员,这样吊着重物的练习可以唤醒阴道壁的弹性记忆,恢复处女时期的紧致。

但是这种蛮力拉扯阴道的方法不仅不能让你的阴道恢复弹性,还会导致阴道软组织挫伤引起水肿、出血等问题。所谓的疗效,就是打肿脸充胖子。

4.美容院缩阴针


美容院缩阴针的主要成分为聚丙烯酰胺或者组织硬化剂。其中聚丙烯酰胺早已被国家禁止使用。注射入人体后会造成阴道部位硬化、溃烂、感染,最后形成阴道瘘。而且聚丙烯酰胺具有流动性,非常难取出。

美容院推出的其他缩阴产品也不靠谱,主要成分是雌激素或类雌激素,长期使用会增加感染妇科疾病的几率,甚至会引发妇科肿瘤。

二、真正需要缩阴的人

事实上,并不是所有人会产生阴道松弛,也不是所有阴道松弛的人都需要进行缩阴!


阴道作为一个人体器官,是具有很好的自我修复能力的,性生活无法导致阴道松弛,且女性在经历正常生育后的半年,不需要什么外用产品来缩阴,阴道就会自行恢复。

只有因为自然衰老、妇科疾病、生育次数过多、胎儿过大造成阴道肌肉撕裂,无法愈合才会阴道松弛。想要阴道恢复紧实,可以在产后进行凯格尔运动(反复进行收紧会阴、提肛的动作),就可以促进阴道肌肉恢复紧实和弹性。

受到了阴道创伤(子宫和膀胱脱垂、漏尿、失禁等)时,才需要缩阴。这时,指望缩阴产品也没有什么用,应该到正规医疗机构进行医学干预、缩阴治疗。

况且这种缩阴手术也不是没有后顾之忧的,对于仍然想要生育的女性,术后留下的缝合口容易在顺产过程中产生二次创伤,患有严重子宫或阴道炎症的女性,也容易出现术后感染。部分女性还会出现阴道干涩、阴道麻木的后遗症,性生活体验不升反降。

三、一场贩卖女性松弛焦虑的缩阴营销


令人心酸的是:执着于缩阴的人,大多都是生育之后产生的松弛焦虑,担心自己在生育之后"性魅力"退减的女性。于是缩阴产业抓住了女性的心理,在百度、微博、知乎、甚至是朋友圈以粗劣的方式进行广告宣传,不断地放大女性焦虑。

"不是男士太花心,而是女士未缩阴。"

"缩阴才能拴住男人心,紧紧才能抓住幸福"

"今天你要不缩阴,明天老公要离婚。"

……


在这样铺天盖地的私密广告之下,已经被生产育儿折磨得疲惫不堪的女性,还会因为产后未愈的身体可能造成的夫妻问题感到焦虑、自卑,甚至因此掉进资本与性自卑共同营造的缩阴大坑,危害自己的身体健康。

生育不易,我们更不应该以生产造成的短暂身材变化而嫌弃侮辱女性。同时,阴道改造是个人自由,不管什么原因都值得被尊重,但要分清这是理性思考后的决定,还是在掉进了这场阴道松弛焦虑后的缩阴营销。

39健康网()原创内容,未经授权不得转载,违者必究。内容合作请联系:020-85501999-8819或39media@mail.39.net

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

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

ad公司:https://www.ikjzd.com/w/1332

粉丝通:https://www.ikjzd.com/w/743


核心提示:松弛,似乎是一个女性们过不去的坎,从"缩阴凝胶"到"冷冻缩阴",执着于把阴道变小的同时,她们的松弛焦虑也被一步步地放大…… 在抖音海外版TikTok上,有个带有Icecubechallenge标签的热门挑战:参加挑战的网红们将冰块塞进阴道里,宣称这样做可以让阴部变得更紧致,并且还将这大型缩阴直播美其名曰"冷冻缩阴疗法"。图源:TikTok截图于是不少无知少女抱着:"试试又不花钱,万一有效
asinseed:https://www.ikjzd.com/w/533
usps:https://www.ikjzd.com/w/513
dmm.adult:https://www.ikjzd.com/w/2026
男人的爱情经不起身材考验:http://lady.shaoqun.com/a/273134.html
旅行途中邂逅年轻的女孩 口述我和陌生女孩的一夜:http://www.30bags.com/a/250854.html
1月31日,印度将对美国加征报复性关税?:https://www.ikjzd.com/home/14388

这个小众水果,刮油解腻还能润喉

核心提示:油柑,又叫油柑子,有些地方也叫牛柑子或余柑,大戟科,落叶小乔木。单叶,条状长圆形,互生在很细的小枝上,二列状,宽线形,长椭圆形。

油柑,又叫油柑子,有些地方也叫牛柑子或余柑,大戟科,落叶小乔木。单叶,条状长圆形,互生在很细的小枝上,二列状,宽线形,长椭圆形。


在我国作为药用已有2000年的历史,古人常用油柑果实治疗消化不良、胃腹痛、感冒、牙疼、咽喉痛,疝痛、痢疾、咳嗽等疾患。


在明代,李时珍《本草纲目》中就记载油柑子有"久服轻身、延年长生"作用。现代科学证实,油柑子能明显治疗和预防胃癌,对乙肝、高血脂、高血压、高血糖等均有较好的疗效,还能提取出对葡萄球菌等多种害菌有较强抑制作用的抗菌素。联合国粮农组织还把油柑子与山楂、白榄列为"世界三大杂果",并安排经费和组织专家对油柑子进行研究和开发利用。

油柑盛产于潮汕地区,可生吃,也可做蜜饯、泡酒、泡茶。因为有刮油解腻、清热降火、润肺止咳的功效,常被潮汕人用来制作油柑糖葫芦、油柑汁、腌油柑、油柑煲汤……是养生的好帮手,也是火锅、烤肉后帮助刮油的一把好手。

虽然油柑营养价值高,但需要注意的是,油柑属寒凉性水果,部分人群初次食用可能会出现腹泻等不适症状,属于正常生理反应。因此准妈妈、小朋友和肠胃比较弱的人群就还是不推荐食用。


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

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

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

transfer:https://www.ikjzd.com/w/1735


核心提示:油柑,又叫油柑子,有些地方也叫牛柑子或余柑,大戟科,落叶小乔木。单叶,条状长圆形,互生在很细的小枝上,二列状,宽线形,长椭圆形。 油柑,又叫油柑子,有些地方也叫牛柑子或余柑,大戟科,落叶小乔木。单叶,条状长圆形,互生在很细的小枝上,二列状,宽线形,长椭圆形。在我国作为药用已有2000年的历史,古人常用油柑果实治疗消化不良、胃腹痛、感冒、牙疼、咽喉痛,疝痛、痢疾、咳嗽等疾患。在明代,李时珍
kk馆:https://www.ikjzd.com/w/1713
promotion:https://www.ikjzd.com/w/127
wish:https://www.ikjzd.com/w/105
被两个男人同时前后做 两个人一前一后一进一出着:http://lady.shaoqun.com/m/a/248081.html
快日死我,哦,好爽,哦 面对老板娘的诱惑我再也控制不住:http://lady.shaoqun.com/a/274507.html
央行数字货币呼之欲出,深圳有望成"试验田"!:https://www.ikjzd.com/home/104977

便秘别只知道开塞露!4个缓解便秘的方法,总有一个用得上

核心提示:很多的便秘患者都是因为情绪问题,焦虑,精神压力排泄不掉经常性爆发脾气等,都会加重便秘。

作为九·健康科普达人·叔


每天徜徉在知识的海洋中

对各类疾病早已见多不怪

但有一种却每次都会抓住我的心

没错,那就是猝死

↓↓

在大多数人的认知里

猝死的人

据《中国急救医学》杂志

一项关于猝死病例的研究

除去一些常见的原因外

"排便用力"也是猝死的一大诱因

图源:我国5516例尸解猝死病例流行特征分析

看到这,大家是不是瞬间觉得

拉屎都不香了

用力排便

是很多便秘人的常规操作

越是拉不出就越想拉出来

就是在这用力排便过程中

人会有猝死风险

人在准备排便时

会不自觉地采取瓦式呼吸

像这样↓↓↓

吸一口气,再瞬间憋住

然后下盘用力,排出便便

但这种憋气方式

往往会使腹压增高

导致血压升高、心率加快

心肌耗氧量增加

从而诱发心绞痛、心律失常等症状

严重甚至会引起心血管破裂

另外

血压波动较大时

也会增加血管壁斑块的活动

容易让它们脱落而发生心梗

引发猝死

1.诱发神经精神疾患

长期遭受便秘的折磨

会让人精神紧张、焦虑不安、失眠健忘

有的甚至出现精神抑郁

2.直肠癌风险

瑞典医学专家研究发现

患有习惯性便秘的人

尤其是中老年习惯性便秘患者

更易罹患直肠癌


3.引起性生活障碍及小便失禁

相信便秘的人都有过这样的体会

便秘时,整个会阴部

都有一种紧缩、下坠、胀满、隐痛等不适感

这是因为便秘使盆腔肌肉

受到慢性刺激而呈痉挛性收缩状态


久而久之

这些肌肉群就会过度松弛

但这些肌肉群可不是好惹的

它们与性功能有着密切的关系

4.易患乳腺癌

加拿大多伦多癌症研究所的专家发现

便秘者的粪便中存在一种致突变原

这种致突变原经肠道吸收后

会跟着血液循环进入相对敏感的乳腺组织

诱发乳腺癌

危害你们都知道了

叔不会见死不救的

一说到便秘

很多人就想到

通便神器开塞露

这是一种润滑性泻药

能刺激肠壁,软化大便

用不好

还可能刺伤肛门直肠黏膜

造成损伤出血

长期使用还会形成依赖,陷入恶性循环


真正有用的方法是这些↓↓

1.多吃膳食纤维

成人每天膳食纤维的摄入量应达到25~35g

豆类和全谷类食物膳食纤维含量较高

可以适当多吃点,比如

2.培养排便好习惯

人体的中枢神经参与排便

不管是手机、书、还是报纸

都会干扰大脑对排便传导神经的指挥

延长排便时间

久而久之,很容易形成排便困难

或是习惯性便秘


3.保持情绪平稳

很多的便秘患者都是因为情绪问题

焦虑,精神压力排泄不掉

经常性爆发脾气等

都会加重便秘


4.如厕的最佳姿势

从生理结构上来说

当直肠肌与直肠形成的肛肠角度越大

直肠越直时,排便越顺畅

对比来看,蹲姿有助于排便

但如果你的生活环境是坐式马桶

可以学一学这个姿势


参考资料:

[1]亢登峰,李晓英,王英元. 1294例心源性猝死的回顾性分析[J]. 中西医结合心脑血管病杂志,2007(01):63-65.

[2]王振宜. 便秘是疾病还是症状[N]. 上海中医药报,2021-03-05(005).

[3]赵智梅,陈晓松,杨仪君,杜鹏举,周攀豪. 我国5516例尸解猝死病例流行特征分析[J]. 中国急救医学,2020,40(02):158-163.

[4]刘宝华,刘沂.国内外便秘诊治指南比较分析[J].第三军医大学学报,2019,41(19):1846-1851.

[5]樊文彬,蓝海波,谢彦鹏,杨向东.慢性便秘与精神心理障碍的相关性研究[J].中国全科医学,2019,22(34):4272-4276.


[6]张声生,沈洪,张露,叶柏.便秘中医诊疗专家共识意见(2017)[J].中医杂志,2017,58(15):1345-1350.

[7]郑松柏,姚健凤,张颖.老年人慢性便秘的评估与处理专家共识[J].中华老年病研究电子杂志,2017,4(02):7-15.

[8]经纬.长期便秘易猝死[J].中华养生保健,2014(12):14.


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

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

徐家骏:https://www.ikjzd.com/w/1803

houzz:https://www.ikjzd.com/w/236


核心提示:很多的便秘患者都是因为情绪问题,焦虑,精神压力排泄不掉经常性爆发脾气等,都会加重便秘。 作为九·健康科普达人·叔每天徜徉在知识的海洋中对各类疾病早已见多不怪但有一种却每次都会抓住我的心没错,那就是猝死↓↓在大多数人的认知里猝死的人据《中国急救医学》杂志一项关于猝死病例的研究除去一些常见的原因外"排便用力"也是猝死的一大诱因图源:我国5516例尸解猝死病例流行特征分析看
腾邦:https://www.ikjzd.com/w/1382
c88:https://www.ikjzd.com/w/1017
败欧洲网站:https://www.ikjzd.com/w/1555
妻子进产房后 我想另一个女人:http://www.30bags.com/m/a/253116.html
申诉模板范文10篇:https://www.ikjzd.com/tl/6083
独家首发-最新跨境卖家生存数据:https://www.ikjzd.com/home/115446

忍不住挖鼻孔的人,最后怎样了?强制挖鼻综合征,3大后果要承受

核心提示:资料显示,人类已经"挖鼻孔"的历史已经超过6000年。有人说,鼻孔会越挖越大。从人类进化史来看,现代人的鼻孔好像真的比古代人大……

世界上存在从来不挖鼻孔的人吗?就算有人跳出来说"有",我也不会信的!


"挖鼻孔"被当做不雅行为,但几乎每个人都在私底下偷偷摸摸地挖过,那种酥痒的感觉还可能让人停不下来,越挖越上瘾。

你可别不信,早就有人对"挖鼻孔"进行了一番研究。

一、总是忍不住挖鼻孔?这是病!

资料显示,人类"挖鼻孔"的历史已经超过6000年,在古埃及的壁画上就有这样的画面:

图:靓仔,帮你扣个鼻

有人说"鼻孔会越挖越大",从人类进化史来看,现代人的鼻孔好像真的比古代人大。罗兰·弗雷特的《挖鼻史》中就记载了鼻孔大小(cm3)的变化:埃入猿5.3,非洲南方古猿7.5,黑猩猩8.2,现代人9.5……

随着对挖鼻孔研究的深入,挖鼻孔的定义也出来了。

根据《挖鼻史》的记载:"挖鼻子就是从鼻腔取出鼻垢或鼻涕,用拇指和食指夹住,搓捻滚揉成一个小小的球形物,然后把它生吞、涂抹在什么地方,或顺手弹出去的技巧"罗兰·弗雷特还把挖鼻孔的过程分成了挖取、搓揉、弹送三个步骤。

图源:《挖鼻史》

人类为什么会挖鼻孔?一是因为鼻孔不舒服,二是因为强迫症……

第一个原因我们很熟悉,鼻子进了异物、发痒,或鼻涕、鼻屎太多,堵塞鼻孔导致通气不畅,就会不自觉地用手挖鼻孔;第二个原因已经不受意识层面的控制,而是由潜意识支配。

1995年,美国学者James W. Jefferson和Trevor D. Thompson对挖鼻孔进行了研究,他们把"挖鼻孔挖到了手不离鼻,甚至拔掉鼻毛、挖出鼻血"的行为称为强制性挖鼻综合征(Rhinotillexomania)。

他们从心理学的角度解释,这可能是一种强迫行为。也有研究发现,鼻子的结构中有一个称为海绵状黏膜下静脉丛的组织,当人出现紧张、焦虑、激动等波动较大的情绪时,就会充血膨胀,使鼻子发痒,让人忍不住挖鼻孔

二、停不下来,或造成3种伤害

不过,挖鼻孔虽然很爽,但久而久之,产生的健康风险可不少,我们试举3例。

1.鼻腔感染

人的手指上携带了很多细菌和病毒,挖鼻孔的时候,手指会把携带的细菌和病毒带入鼻孔,引发鼻腔感染。

2.肺炎风险

英国利物浦热带医学院的研究发现,肺炎细菌可以通过皮肤和鼻腔传播。如果用沾上了肺炎细菌的手指挖鼻孔,肺炎细菌的传播速度会更快,而且传播数量更多。这与新冠期间,我们提倡不用手接触口鼻是一样的道理。


3.损伤鼻毛鼻粘膜

鼻毛可以阻挡灰尘和病原体进入人体,经常挖鼻孔,容易使鼻毛脱落,损伤鼻毛,使人体失去保护屏障。此外,鼻腔还有一层毛细血管丰富的鼻粘膜,鼻粘膜很脆弱,频繁挖鼻孔,会使鼻粘膜受损。

三、用科学的方法清理鼻腔

既然不能频繁地用手指挖鼻孔,那么当我们的鼻子不舒服时,应该怎么清理呢?一般来说,不同的人,清理鼻腔的方法不同

绝大多数人用温水清洗鼻孔即可,具体步骤为:取适量37℃左右的温水 → 将温水倒入干净的容器中 → 头部稍低,用手将温水捧到鼻孔前 → 轻轻用鼻子把温水吸进鼻腔 → 马上又将温水擤出来。重复上述动作3-4次,即可完成清洗鼻腔的步骤。

鼻炎患者或有严重鼻塞的人,推荐用生理盐水清洗鼻孔,具体步骤为:取容积约为300ml的水杯,加4-6g无碘盐,搅拌均匀 → 将配兑好的盐水倒入洗鼻器 → 头部微侧,一只鼻孔在上一只鼻孔在下,用洗鼻器冲洗鼻腔位于上方的鼻孔 → 调换鼻孔的上下顺序,再次冲洗。

在清洗鼻孔的时候,要注意:

第一,头部一定要稍低,不能仰头,每次吸入鼻腔的水量也不宜太多,以免吸入下呼吸道,引发呛咳或吸入性肺炎;

第二,鼻炎患者在配兑生理盐水时,要控制盐量,盐水浓度过高会使鼻腔干燥或出血;

第三,清洗鼻腔没有严格的时间和次数规定,一般每天清洗2-3次即可


相信每个人都有挖鼻孔的经历,而且生活中真的有人有事没事就挖鼻孔,形成了一种潜意识行为。频繁挖鼻孔对健康是具有潜在危害的,如果鼻子实在不舒服,建议采取上述方法清洗鼻腔。


参考资料:


[1]你为什么忍不住挖鼻孔?经常挖会让鼻孔变大吗?看完才能真相大白 .腾讯医典.  2020-10-27

[2]当心病从鼻入!挖鼻孔会带来这种危害!护理鼻子的这些小知识,必知!.人民网健康 .2019-10-30

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


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

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

五洲会:https://www.ikjzd.com/w/1068

周宁:https://www.ikjzd.com/w/1647


核心提示:资料显示,人类已经"挖鼻孔"的历史已经超过6000年。有人说,鼻孔会越挖越大。从人类进化史来看,现代人的鼻孔好像真的比古代人大…… 世界上存在从来不挖鼻孔的人吗?就算有人跳出来说"有",我也不会信的!"挖鼻孔"被当做不雅行为,但几乎每个人都在私底下偷偷摸摸地挖过,那种酥痒的感觉还可能让人停不下来,越挖越上瘾。你可别不信,早就有人对"挖鼻孔"进行了一番研究。一、总是忍不住挖鼻孔?这是病!资
淘粉吧官网:https://www.ikjzd.com/w/1725.html
myshow:https://www.ikjzd.com/w/2235
递四方:https://www.ikjzd.com/w/1066
紧急禁令!亚马逊&eBay严令禁止销售这款产品!:https://www.ikjzd.com/home/112137
万国邮联与中国联合举办大会:电商零售进出口额1396.2亿元!:https://www.ikjzd.com/home/111531
1年时间10倍销量,只需简单转变你也可以实现!:https://www.ikjzd.com/home/11009

SpringBoot内嵌Tomcat启动原理

SpringBoot应用启动运行run方法,然后一直来到这个Run方法public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; Collection<SpringBootExceptionReporter> exceptionReporters = new ArrayList(); this.configureHeadlessProperty(); SpringApplicationRunListeners listeners = this.getRunListeners(args); listeners.starting(); Collection exceptionReporters; try {  ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);  ConfigurableEnvironment environment = this.prepareEnvironment(listeners, applicationArguments);  this.configureIgnoreBeanInfo(environment);  Banner printedBanner = this.printBanner(environment);  context = this.createApplicationContext();//创建Springboot应用程序(即ApplicationContext),根据环境创建的  exceptionReporters = this.getSpringFactoriesInstances(SpringBootExceptionReporter.class, new Class[]{ConfigurableApplicationContext.class}, context);  this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);  this.refreshContext(context);//刷新IOC容器,即创建IOC容器对象,并初始化容器,创建容器中的每一个组件(即Bean)  this.afterRefresh(context, applicationArguments);  stopWatch.stop();protected ConfigurableApplicationContext createApplicationContext() { Class<?> contextClass = this.applicationContextClass; if (contextClass == null) {  try {   switch(this.webApplicationType) {   case SERVLET://如果是Srevlet环境就创建Servlet的SpringBoot应用    contextClass = Class.forName("org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext");    break;   case REACTIVE:    contextClass = Class.forName("org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext");    break;   default:    contextClass = Class.forName("org.springframework.context.annotation.AnnotationConfigApplicationContext");   }  } catch (ClassNotFoundException var3) {   throw new IllegalStateException("Unable create a default ApplicationContext, please specify an ApplicationContextClass", var3);  } } return (ConfigurableApplicationContext)BeanUtils.instantiateClass(contextClass);}public void refresh() throws BeansException, IllegalStateException { Object var1 = this.startupShutdownMonitor; synchronized(this.startupShutdownMonitor) {  this.prepareRefresh();  ConfigurableListableBeanFactory beanFactory = this.obtainFreshBeanFactory();  this.prepareBeanFactory(beanFactory);  try {   this.postProcessBeanFactory(beanFactory);   this.invokeBeanFactoryPostProcessors(beanFactory);   this.registerBeanPostProcessors(beanFactory);   this.initMessageSource();   this.initApplicationEventMulticaster();   this.onRefresh();//web的ioc容器重写了onRefresh方法   this.registerListeners();   this.finishBeanFactoryInitialization(beanFactory);   this.finishRefresh();protected void onRefresh() { super.onRefresh(); try {  this.createWebServer();//创建嵌入式的Servlet容器,不过是先获取容器工厂,再创建容器 } catch (Throwable var2) {  throw new ApplicationContextException("Unable to start web server", var2); }}private void createWebServer() { WebServer webServer = this.webServer; ServletContext servletContext = this.getServletContext(); if (webServer == null && servletContext == null) {  ServletWebServerFactory factory = this.getWebServerFactory();//先获取工厂从ioc容器中获取TomcatServletWebServerFactory 组件(是一个bean来的)   通过这个TomcatServletWebServerFactory创建Tomcat对象,后置处理器一看是这个对象,就获取所有的定制器来先定制Servlet容器的相关配置;  this.webServer = factory.getWebServer(new ServletContextInitializer[]{this.getSelfInitializer()});//再获取容器 } else if (servletContext != null) {  try {   this.getSelfInitializer().onStartup(servletContext);  } catch (ServletException var4) {   throw new ApplicationContextException("Cannot initialize servlet context", var4);  } } this.initPropertySources();}public WebServer getWebServer(ServletContextInitializer... initializers) { if (this.disableMBeanRegistry) {  Registry.disableRegistry(); } Tomcat tomcat = new Tomcat(); File baseDir = this.baseDirectory != null ? this.baseDirectory : this.createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); connector.setThrowOnFailure(true); tomcat.getService().addConnector(connector); this.customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); this.configureEngine(tomcat.getEngine()); Iterator var5 = this.additionalTomcatConnectors.iterator(); while(var5.hasNext()) {  Connector additionalConnector = (Connector)var5.next();  tomcat.getService().addConnector(additionalConnector); } this.prepareContext(tomcat.getHost(), initializers); return this.getTomcatWebServer(tomcat);}protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) { return new TomcatWebServer(tomcat, this.getPort() >= 0);//端口号大于0就自动启动}public TomcatWebServer(Tomcat tomcat, boolean autoStart) { this.monitor = new Object(); this.serviceConnectors = new HashMap(); Assert.notNull(tomcat, "Tomcat Server must not be null"); this.tomcat = tomcat; this.autoStart = autoStart; this.initialize();//启动}嵌入式的Servlet容器创建对象并启动Servlet容器;TomcatServletWebServerFactory是在ServletWebServerFactoryConfiguration被加入进容器的注入之后在ServletWebServerFactoryAutoConfiguration被导入

@Import({ ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class,  ServletWebServerFactoryConfiguration.EmbeddedTomcat.class,//导入这个class对象  ServletWebServerFactoryConfiguration.EmbeddedJetty.class,  ServletWebServerFactoryConfiguration.EmbeddedUndertow.class })第二步@Configuration(proxyBeanMethods = false)//判断是否导入了Tomcat依赖,导入了就把TomcatServletWebServerFactory放入ioc容器@ConditionalOnClass({ Servlet.class, Tomcat.class, UpgradeProtocol.class })@ConditionalOnMissingBean(value = ServletWebServerFactory.class, search = SearchStrategy.CURRENT)static class EmbeddedTomcat { @Bean TomcatServletWebServerFactory tomcatServletWebServerFactory(   ObjectProvider<TomcatConnectorCustomizer> connectorCustomizers,   ObjectProvider<TomcatContextCustomizer> contextCustomizers,   ObjectProvider<TomcatProtocolHandlerCustomizer<?>> protocolHandlerCustomizers) {  TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();  factory.getTomcatConnectorCustomizers()   .addAll(connectorCustomizers.orderedStream().collect(Collectors.toList()));  factory.getTomcatContextCustomizers()   .addAll(contextCustomizers.orderedStream().collect(Collectors.toList()));  factory.getTomcatProtocolHandlerCustomizers()   .addAll(protocolHandlerCustomizers.orderedStream().collect(Collectors.toList()));  return factory; }}第三步public WebServer getWebServer(ServletContextInitializer... initializers) { if (this.disableMBeanRegistry) {  Registry.disableRegistry(); } Tomcat tomcat = new Tomcat();//获取Tomcat //配置Tomcat基本环节 File baseDir = this.baseDirectory != null ? this.baseDirectory : this.createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); connector.setThrowOnFailure(true); tomcat.getService().addConnector(connector); this.customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); this.configureEngine(tomcat.getEngine()); Iterator var5 = this.additionalTomcatConnectors.iterator(); while(var5.hasNext()) {  Connector additionalConnector = (Connector)var5.next();  tomcat.getService().addConnector(additionalConnector); } this.prepareContext(tomcat.getHost(), initializers); return this.getTomcatWebServer(tomcat);//开始启动Tomcat}第四步protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) { return new TomcatWebServer(tomcat, this.getPort() >= 0);//端口大于0就自动启动}第五步public TomcatWebServer(Tomcat tomcat, boolean autoStart) { this.monitor = new Object(); this.serviceConnectors = new HashMap(); Assert.notNull(tomcat, "Tomcat Server must not be null"); this.tomcat = tomcat; this.autoStart = autoStart; this.initialize();//准备启动}第六步private void initialize() throws WebServerException { logger.info("Tomcat initialized with port(s): " + this.getPortsDescription(false)); Object var1 = this.monitor; synchronized(this.monitor) {  try {   this.addInstanceIdToEngineName();   Context context = this.findContext();   context.addLifecycleListener((event) -> {    if (context.equals(event.getSource()) && "start".equals(event.getType())) {     this.removeServiceConnectors();    }   });   this.tomcat.start();//启动tomcat  }@Bean//如果classpath有Tomcat就把TomcatServletWebServerFactoryCustomizer放入容器@ConditionalOnClass(name = "org.apache.catalina.startup.Tomcat")public TomcatServletWebServerFactoryCustomizer tomcatServletWebServerFactoryCustomizer(  ServerProperties serverProperties) { return new TomcatServletWebServerFactoryCustomizer(serverProperties);}

 









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

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

parser:https://www.ikjzd.com/w/680

kili:https://www.ikjzd.com/w/238


SpringBoot应用启动运行run方法,然后一直来到这个Run方法publicConfigurableApplicationContextrun(String...args){StopWatchstopWatch=newStopWatch();stopWatch.start();ConfigurableApplicationContextcontext=null;Collection<S
blackbird:https://www.ikjzd.com/w/950
黄远:https://www.ikjzd.com/w/1785
naning9韩国官网:https://www.ikjzd.com/w/2401
mile:https://www.ikjzd.com/w/1746
致新卖家-该如何努力,才能做好亚马逊?:https://www.ikjzd.com/home/19446
穿丝袜太性感 老公骂我像妓女:http://lady.shaoqun.com/m/a/271342.html

原型+原型链+闭包+立即执行函数+插件开发初识

一个比较强的分析:针对item的乘除进行封装成方法,针对不同的方法进行item的乘除,但是还是不够简介

 

 

 

 

来个更加简洁的:这就有点像java里面的一些封装,多写这样的代码对之后的专业素养能有一个比较大的提升

 

 

 

原型:

原型prototype其实是function对象的一个属性,将其打印出来它也是对象。

 

 

 

所有被构造函数构造出的对象都可以继承原型上的属性和方法,(当然自己有的先向自己找,自己没有的才去原型上找),任何一个实例化的对象都能访问对应原型上的方法

这就是为什么方法会写在原型上面。属性则写在函数内部,因为属性一般要进行配置

 

 

 

 

让实例化的对象去增加prototype是不行的,只是添加this的属性,

而delete 也是无法删除prototype的属性或方法的,delete 只能删除实例化对象this里面的属性或方法的,无法删除prototype里面的,

对prototype进行规范化写法:因为 xxx.prototype是对象的,所以进行对象化的添加属性与方法,在开发的时候都是这样的写法

 

 

 

 

 

 

 

 

 

 

 

 原型上面的构造器的constructor指向的是构造函数本身:

 

 

 

通过xxx.prototype.constructor= xxx ;

改变对应的函数

__proto的产生:在函数实例化之后形成的this{ __proto__:XXX.prototype}

在这里我们要理解:(__proto__属性一定是属于实例化对象的,而不是属于构造函数的),

这里的this是隐式的,只是一个隐式表达给你,写是无法这样写的

但js内部的写法就是这样子的:

 

 

 

 

 

 

__proto__:设计的时候就是针对自己找不到的属性和方法能够通过__proto__来去寻找到prototype里面的属性与方法,并且为了不让用户修改用了__ 这样的写法,

__proto__相当于一个容器,能够有个指针能够指向prototype,通过指针来去访问实例对象的prototype,相当于门牌号

 

 

 

 

当然__proto__的指向也是能够更改的,只是没有什么意义

 

 

 练习:

 

 

 

 

 这里对var car =new Car()进行了实例化,所以实例化之后的prototype是没有变化的;

 

 

 

 

 

只是在__proto__下面的constructor下面的prototype进行了修改

后面的对Car.prototype ={ name:'Mazda'} 的修改,是没有修改实例化之后的prototype,修改的是实例化之前的prototype

 

 

 

那么这样:car.prototype.name='Mazda'这样是对this里面的__proto__:进行的一个重新赋值,并相当于重写prototype

 

为什么要把某些属性和方法放在prototype里面,为了一些属性值和方法一样的时候放在prototype进行继承,如果要传参数,动态的获取这个属性的时候,才会放在构造函数里面

 

讲一个非常非常有用的东西,跟上面原理不一样,

window和return的问题:

下面这样return 和window实现的是一样的功能

 

 

 

 

window的方法能够直接执行的,因为在函数内部就进行了保存,return则是要进行赋值一个全局变量才能进行执行函数

 

 

 

 

对于立即执行函数是非常好写插件的东西,因为在立即执行函数中声明变量是不会污染全局变量的,可以进行隔离

一个插件的标准:

 

 

 

 

 对于立即执行函数有一个好的习惯先写一个(;分号)主要是为了怕忘记写,程序不会出错,跟函数声明变成表达式是不一样的

 

 

 

作业:

写一个插件,任意传两个数字,调用插件内部方法可进行加减乘除功能

 

    ;(function(){
  var compute =function(opt){
  this.x =opt.firstNum
  this.y =opt.secondNum
  }
  compute.prototype={
  plus:function(){
       return this.x+this.y
  },
  minus:function(){
        return this.x-this.y
  },
  mul:function(){
      return this.x*this.y
  },
  div:function(){
      return this.x/this.y
  }
}
    window.Compute=compute
})()

var compute = new Compute({
    firstNum:1,
    secondNum:2
})

console.log(compute.plus());
console.log(compute.minus());
console.log(compute.mul());
console.log(compute.div());


 









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

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

扬帆计划:https://www.ikjzd.com/w/1581

primc:https://www.ikjzd.com/w/129


一个比较强的分析:针对item的乘除进行封装成方法,针对不同的方法进行item的乘除,但是还是不够简介来个更加简洁的:这就有点像java里面的一些封装,多写这样的代码对之后的专业素养能有一个比较大的提升原型:原型prototype其实是function对象的一个属性,将其打印出来它也是对象。所有被构造函数构造出的对象都可以继承原型上的属性和方法,(当然自己有的先向自己找,自己没有的才去原型上找),
慧聪商务网:https://www.ikjzd.com/w/1836
promoted:https://www.ikjzd.com/w/971
ask me:https://www.ikjzd.com/w/2459
英国VAT申报注册,这六大问题你不得不知!:https://www.ikjzd.com/home/100773
2020年亚马逊品牌备案2.0全攻略(图文版详解):https://www.ikjzd.com/home/125499
我被隔壁少妇勾引出轨 老婆判我"死刑":http://lady.shaoqun.com/m/a/270801.html