izuiaicy-2018-1-21/每週總結

合抱之木,生於毫末;九層之臺,起於壘土;千里之行,始於足下。-----------送給在碼農之路上搬磚的自己。

2018-1-21杭州

1.mybatis篇

用戶的等級需求。每次添加一個等級需要在之前的level上+1。所以需要求數據庫同一個供應商下level的最大值,然後在次基礎上+1。由於sql語句不熟悉。導致求這個最大值的時候花了1個小時的時間。

問題:直接用max函數求解,數據庫有值的時候沒有問題,當數據庫的該值爲空時,返回的時null,不是一個int/Integer。困擾了許久。

解決辦法:1。嵌套查詢,先找出最大值,然後用level=最大值得到該條記錄。但是多了一個自查詢,時間複雜度爲O(n^2)。

  2。使用order by level 然後limit 0,1。使用按照遞增遞減的順序然後只查一個,完美解決。比1中的時間複雜度低。



2.web容器。web.xml

之前一直不知道web.xml具體的存在原理以及filter的使用

web容器主要是在項目啓動的時候啓動一些項目運行所必須的配置。spring監聽器/類加載/servlet/Filter等

1.spring監聽器:現在一般項目都會使用spring框架,整個項目部署在tomcat上運行的時候,首先會加載spring監聽器,然後通過spring監聽器去啓動我們在spring配置文件中的各種配置以及各種bean(註解注入/配置注入),以及數據庫的連接池。定時任務配置/ aop/MQ,其他通過spring啓動的框架(mybatis/hibernate)等等。

2.類加載:項目運行的時候我們先是將我們的代碼通過編譯器解析成字節碼文件,也就是類加載運行的文件,整個項目所運行的不是我們的代碼,而是我們代碼編譯的字節碼。

3.servlet:Web項目都是通過servlet請求,找到對應的處理器處理,然後通過視圖解析器將頁面渲染給前端。

4.Filter:Filter是web.xml不起眼的地方(之前基本上沒有使用過。。。或者說沒有注意到這個東東~)。主要起着過濾器的作用。

Filter的使用

1.一般web項目都會用上一個Filter處理編碼解碼問題。整個filter也很簡單就是編解碼。

2.其實filter中可以配置許多我們能用得到的地方,比方說前的編解碼、用戶權限安全、所有請求的過濾。

3.filter有三個方法:1。init() 主要是初始化一些基本的配置信息

      2。doFilter()這個就是我們業務處理的關鍵方法,在這個方法裏面我們可以過濾掉所有我們想過濾掉的請求(包括簡單的登陸頁面請求/接口請求)。當通過過濾的時候我們調用

   chain.dofilter(request,response)方法轉到下一個filter過濾器上。當是最後一個過濾器時就會直接走servlet請求的正常流程,找到控制器處理器,視圖解析器等等。

   3.destory() 一般不會做處理,使用默認的就好。


3.ThreadLocal

threadlocal主要提供了get/set方法。獲取你所需要的對象什麼的。主要用於多線程的處理。當一個對象經常性的會同一時刻被不同線程調用,且會更改對象的內容,我們通過thradlocal每個線程單獨使用自己的object的副本,並將修改作用在object的副本上,並不會影響其他線程對這個object的使用。作用於多線程高併發的業務處理。

每一個線程調用時,都會將這個object的副本存進一個map中,其中key是這個線程本身value是這個object對象,其他的線程無法拿到這個線程的object副本,所以他是安全的,然後通過map.get(key)拿到線程自己的object副本。


4.每次談需求的時候不能爲了完成需求還寫代碼,這次由於地址這裏只需要獲取地址name,沒有通過name獲取code,少了一些service服務,導致同事還得自己來寫。這個是不應該的。而且要多想想是不是後面的需求會不會涉及都這些。不然爲了後面的需求將之前的代碼全部覆蓋掉是不值得的。


5.當一個對象多次在不同的地方使用set時,我們可以在對象的實體類裏面使用構造器,重寫構造器。直接使用new Object(str,long,int)的方式,這樣會比較優雅。


6.本週犯了一個嚴重的錯誤,將項目發佈online的時候,居然在master上,merge/gray的代碼,這個是嚴重的錯誤,還好沒有提交。以後每次merge的時候需要pull兩次下最新的代碼,保持代碼的最新,然後merge的時候需要注意merge誰,想一想會不會出現git的問題。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章