main函數(shù)結(jié)束了之后,gorouter才會被關(guān)閉
All in all, Spring Boot is a project built on the top of the Spring framework. It provides a simpler and faster way to set up, configure, and run both simple and web-based applications.
總而言之,Spring Boot是一個建立在Spring框架之上的項目,它提供了一種簡單快速的方法來配置和運行web應(yīng)用程序。傳統(tǒng)的web開發(fā)要求首先安裝配置好Tomcat,然后再把自己的程序放到Tomcat的webapp里去執(zhí)行。Spring Boot反其道而行之,首先寫好web應(yīng)用程序,然后Spring Boot幫你啟動內(nèi)嵌的Tomcat(或者其它web服務(wù)器,例如Undertow或者Jetty)來運行。它使得web應(yīng)用程序不再是web服務(wù)器的客人,而變身為web服務(wù)器的主人。
Netflix,是一間在世界多國提供網(wǎng)絡(luò)視頻點播的OTT服務(wù)公司,并同時在美國經(jīng)營單一費率郵寄DVD出租服務(wù)。
為什么會從Spring Boot跳到Netflix公司?這是因為在基于Spring Boot的微服務(wù)架構(gòu)Spring Cloud中用到的一個很重要的組件Eureka,它是Netflix公司的產(chǎn)品,它提供了整個微服務(wù)架構(gòu)最重要的服務(wù)注冊和服務(wù)發(fā)現(xiàn)功能,可以說是微服務(wù)的核心。
Pivotal公司是由EMC和VMware聯(lián)合成立的一家新公司。EMC持有VMware 80%的股權(quán),而Dell又已經(jīng)收購了EMC,所以Pivotal目前是Dell公司的子公司。
Pivotal公司的主要產(chǎn)品是Cloud Foundry,Cloud Foundry是一種開源“平臺即服務(wù)(PaaS)”產(chǎn)品,它的作用就相當(dāng)于是一個巨大的盒子,在這個盒子里可以輕松創(chuàng)建和運行Spring Boot應(yīng)用以及提供Spring Cloud服務(wù)。從2016年以后遇到了強勁的競爭對手:來自Google公司的Kubernetes,因為Kubernetes提供的是基于目前如日中天的Docker容器的管理和服務(wù),受到開源社區(qū)的火爆追捧,對Pivotal公司的產(chǎn)品Cloud Foundry構(gòu)成極大威脅。
uuid太長了,還不是遞增的還不能排序,萬條左右的數(shù)據(jù)當(dāng)然是數(shù)據(jù)庫主鍵自增了.就算數(shù)據(jù)量大也不會用uuid的.
理由前面說過了
32位系統(tǒng)最大支持4G內(nèi)存??紤]一下指針,32位系統(tǒng)指針是int類型,2**32 byte = 4G
看看你的package.json文件的內(nèi)容
槽就是分區(qū),數(shù)據(jù)都是存放在分區(qū)里面的(這里的分區(qū)策略是哈希,所以叫哈希槽),然后分區(qū)與機器進(jìn)行動態(tài)綁定
直接cast肯定是不對的,
正確的寫法是:
using func=int(*)(int);
using FuncType = std::function<int(int)>;
FuncType f{reinterpret_cast<func>(dlsym(libHandle, "func"))};搜索引擎對meta標(biāo)簽看得不是很重, keyword這個標(biāo)簽已經(jīng)被完壞, 百度幾年前好像有表示過, 不太看中
Object.assign()是一重深度的深拷貝
第一個方法沒有改變vue.http.defaults實例,
返回的還是vue.http.defaults對象
Object.assign({}, Vue.http.defaults, config)或者{...Vue.http.defaults, ...config}
返回了一個全新的對象{},這個對象和axios.defaults完全沒有任何關(guān)系了
具體請見 MDN關(guān)于 object.assign()的文檔
不知道了!
本來想詳細(xì)講解一下的,想想還是算了,簡單列一下登錄認(rèn)證過程中,就應(yīng)該能理解了
客戶端: 我要查看用戶資料
服務(wù)端: 你沒有憑證(cookie),請先獲得憑證再來,獲得憑證需要你提供用戶名密碼。
客戶端: 好的,這是我的用戶名和密碼
服務(wù)端: 驗證通過,現(xiàn)在為你生成憑證,請保管好,以后只認(rèn)憑證,就算阿貓阿狗拿著你的憑證來查資料,我也會給他。
。。。
客戶端:我要查用戶資料,這是我的憑證.
服務(wù)端:好的,請稍等,我確認(rèn)一下你的憑證是否真的,OK,是真的,資料拿去。
。。。
客戶端:我要查用戶資料,這是我的憑證.
服務(wù)端:對不起,你的憑證已經(jīng)過期失效了,請重新提供用戶名密碼獲得新的憑證。
OK,再來講一下怎么生成憑證和怎么驗證憑證:
生成的條件是驗證用戶提供的用戶名和密碼是對的,
a. 生成隨機唯一的session_id, 比如md5(用戶id+毫秒數(shù))
b. 生成session內(nèi)容,并建立session_id與session內(nèi)容的對應(yīng)關(guān)系
即服務(wù)端拿一本帳本,記錄下這個憑證(根椐標(biāo)識)對應(yīng)的用戶名(一般是用戶ID)是誰,類似:
abcd123 => 'Tim',
ee22343 => 'You'
(這個對應(yīng)關(guān)系,可以保存在文件、memcache、數(shù)據(jù)庫等等,這就是用不同介質(zhì)保存session的原理)
c. 將session_id加密、簽名,寫到憑證中,返回客戶端。
用通俗語言來描述這個過程就是:
驗證用戶名密碼正確后
服務(wù)端拿出一張紙,隨機寫上一個標(biāo)識(比如像醫(yī)生寫病歷,有一定的防偽性) ---- session_id
再拿出帳本,寫上這個“標(biāo)識”與“用戶”的關(guān)聯(lián),表示這個標(biāo)識就等同于用戶A ----session_id與session內(nèi)容關(guān)聯(lián)
給這張紙蓋上大印 ----session_id加密和防偽
將這張紙作為憑證,交給用戶 ---- 將加密后的session_id作為cookie返回。
最后,用戶下次來請求,帶上了憑證,服務(wù)端驗證過程:
其它:
憑證有效期:比如可以約定,一天后就沒有用了
帳本有效期:session也是可以有效期的,比如我每隔一小時就刪除一些沒有用到的session,清理之后,就算你的憑證是真實的,但也無效了。
最后,cookie是標(biāo)準(zhǔn)實現(xiàn),無所謂自己實現(xiàn)(你可能只是需要封裝操作指令),要自己實現(xiàn)session的話,無非就是解決這幾個問題:
1)決定你的帳本(用什么方式保存)
2) 實現(xiàn)寫帳本(根據(jù)session_id寫數(shù)據(jù))
3) 實現(xiàn)讀帳本(按session_id讀數(shù)據(jù))
4) 實現(xiàn)清理帳本過期數(shù)據(jù)
import random
import datetime
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
def yourfunc():
print(datetime.datetime.now().strftime('%Y-%m-%d %X'))
def myfunc():
scheduler.remove_job('my_job_id')
yourfunc()
t = random.randint(1,5) # 1~5秒隨機
scheduler.add_job(myfunc, 'interval', seconds=t, id='my_job_id') # seconds可以換成minutes 隨機個60~200分鐘的估計就滿足你的需求了吧
scheduler.add_job(myfunc, 'interval', seconds=1, id='my_job_id')
scheduler.start()這個file并不是一個json數(shù)據(jù)吧,你可以了解下html5 的FileReader 對象
https://developer.mozilla.org...
https://www.cnblogs.com/tianm...
好吧漏看了一個規(guī)則: selector-class-pattern
模式用這則去匹配就行了。
下面官網(wǎng)這個問題也寫的很詳細(xì):https://stylelint.io/user-gui...
tab-click的那個handle方法會回傳你一個index告訴你點擊的是哪個tab
不需要不需要
安裝babel-polyfill, 并在App.uve里面引入:
<script>
import "babel-polyfill";
export default {
name: "app"
};
</script>定義一個變量clickNextBtn ,默認(rèn) false,點擊下一步按鈕 clickNextBtn=true。然后
beforeRouteLeave (to, from, next) {
if (this.clickNextBtn) {
next()
} else {
this.$confirm(...)
}
}北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。