搭建Springboot網站有感

最近心血來潮,搭建了我的網站,一方面想學習下新的知識,另外一方面也想有個做品,在這分享下本身的體會,先不說知識點。css

建站容易嗎,因人而異,而我在完成這個最最簡單的工做時起碼經歷了3個階段不一樣的心理變化,我也很意外。html

第一階段 - 信心滿滿:前端

  前端不就是Html,CSS和JS三劍客嗎,配個Java後端實在是太簡單了,何況還有bootstrap和Spring框架,5分鐘不用就能打好。因爲公司用eclipse而處處都誇idea,因此我打算用新的編輯器去作,而就這個簡單的決定卻花費了很多時間,開始打擊個人信心。java

  什麼問題?就是熱部署,在eclipse中項目啓動後如果更改了文件保存,若是勾選了自動build就會自動編譯,改變的代碼馬上會被使用。而idea則不是,因而乎面向百度編程,在通過幾個方案的設置後會發現自動編譯是能夠了,可是若是這樣設置debug模式不可用(蛋疼),而後繼續查找信息,終於翻到了一篇信息解釋了這個問題,最後綜合考慮仍是選擇手動編譯來進行運行時的部署。mysql

  問題1牽扯出問題2而且極可能會有問題三、4...,最關鍵的是當問題一連串的拉出來時,越末尾的問題越難查。已經不是百度第一頁,百度前幾條就能解決的,並且不少時候並無100%針對你提問的,極可能這篇文章只有50%,另外一篇30%,要將幾篇文章結合起來,才能對目前的困難有個初步的解決方案。在這過程的不免會碰到路走不通的狀況(沒人爲你這問題提供回答),或者是路途崎嶇(改個BUG還得刮骨療毒),這時取捨權就在本身手中,這跟工做是不同的,本身建站是沒人幫助的,沒有上司拍板,沒有明確的目標要求(一句話,靠本身)。jquery

第二階段 - 死磕到底:linux

  爲何要作網站,還不是想有點追求。git

  那作的途中就會碰到不少阻擋你追求腳步的障礙,例如bootstrap的模態窗(就是個彈窗),在我使用時會發現,瀏覽器頁面若是有滾動條再配合固定的頂部導航欄,那麼彈窗彈出時會將滾動條弄消失,而後頁面元素會撐滿,關掉彈窗會讓頁面恢復以前的樣子,有種鬼畜的樣子:程序員

打開模態框前:ajax

打開模態框後:

 

  是否是很不爽,我纔剛用bootstrap來創建帝國,結果弄個彈窗就告訴我大清亡了?

  因而又百度沒準是我使用姿式不對,就是此次經歷讓我深有體會,框架什麼的使用方法,其實真的不會很具體的教你什麼,運氣好你按教程作了,完美出效果。但更多狀況會有各類問題,甚至連教程都看得一臉懵逼(怎麼這麼不詳細啊擦),結果操做正確,bootstrap的確存在這個問題....

  又到了老套路解決問題的時候,結果因問題偏回答的很少,而且一些答案單看是不知道對不對的,還得嘗試,可能解決了當下這個問題卻對其餘正常功能形成影響。最後是在不起眼的角落裏最優解。

  這個只是建站中的一個小插曲,還有許許多多意向不到的問題,例如雲服務器數據庫被入侵,服務器Tomcat部署各類報錯等等。

第三階段 - 敬畏並充滿但願:

  初生牛犢不怕虎,工做中不少外在的框架,環境部署等等外部條件都是別人搭建好的。每每只要寫業務邏輯便可,當本身動手後發現外面的世界很大很大,本身腦海裏蹦出的小要求,簡單的效果,網上一搜都是值得深挖的東西(例如各類驗證碼,如今都涉及到大數據分析用戶行爲來判斷是人仍是機器,而不是簡單的驗證)。一些之前自認爲懂得知識點居然還有不少小細節(用了這麼久的JS,你參透原型鏈了嗎,並以此爲原理來解釋下你的JS繼承爲何要這麼寫嗎)。

  書到用時方恨少,不僅是功能,更有性能(緩存的使用等),安全(CSRF等)其餘平時不多注意的問題(都是大佬們寫好了)。一些技術的使用後再瞭解下背後的實現,設計思想也是十分有意思的(例如Springboot,Spring這些,用起來很方便,很強大,但是爲何呢,其實沒有魔法沒有duang,都是程序員一行行代碼堆出來的)。

    如今底子已經勉強建好了,各類知識點均可以在裏面嘗試,有趣的或者很坑的我會記錄下來和你們分享~

歡迎關注,博客會陸續推出有意思的知識點和各類神坑,但願和你們一塊兒探討

網站地址爲:https://www.top-housekeeper.xyz

等網站再成熟點會公佈git地址,目前網站運用到的知識有:

1.js知識:面向對象編程思想(建立工具類,封裝ajax造成統一的請求和回調流程,對象的基礎設計)、繼承的實現(包含原型鏈知識)

2.html和css知識:盒子概念、各類定位

3.bootstrap:模態框、彈框、導航、輪播圖

4.jquery:ajax的使用

5.java:一些設計思想、log4j2等插件的使用

6.springboot:對系統異常的統一攔截、對前端不一樣數據的接收和返回(跳轉)、攔截器、過濾器、系統初始化、mybatis

7.freemark:模板的使用

8.redis

9.mysql

10.linux:mysql、redis、https的設置、tomcat

11.網站安全:數據庫安全、XSS攻擊、滑動驗證碼的設計

相關文章
相關標籤/搜索