1. 對於一些類型或者步驟,通常使用整數類型做爲值。爲了防止新增類型或步驟,通常能夠可定義不連續值。例如:0 10 20 30 等,若是有新增類型或者步驟,能夠定義值爲2,3,4等。前端
2. 自動化代碼生成工具java
3. 若是定義字段類型爲int,在使用Integer轉換的時候,會默認調用方法將Integer轉換爲int,若是Integer爲null,會報空指針異常。須要判斷是否爲null。git
4. 使用spring MVC傳遞參數時,若是報400錯誤,多是類型轉換錯誤,請確認傳遞的參數類型是否一致。github
5. 詳細的註釋:每一個參數什麼意思;有哪些狀況須要處理;若是有Map,map的key和value值有哪些;使用<br>換行web
6. static靜態方法或靜態代碼塊,進行數據初始化redis
7. service引用別的service,儘可能不要引用別的mapperspring
8. git的使用sql
9. map中key值爲字符串時,按int型排序:shell
Map<String,Integer> sortMap = new TreeMap<>(new Comparator<String>() {數據庫
public int compare(String o1, String o2) {
return Integer.parseInt(o1)-Integer.parseInt(o2);
};
});
10. token認證,攔截器。使用基於 Token 的身份驗證方法,在服務端不須要存儲用戶的登陸記錄。大概的流程是這樣的:
1). 客戶端使用用戶名跟密碼請求登陸
2). 服務端收到請求,去驗證用戶名與密碼
3). 驗證成功後,服務端會簽發一個 Token,再把這個 Token 發送給客戶端
4). 客戶端收到 Token 之後能夠把它存儲起來,好比放在 Cookie 裏或者 Local Storage 裏
5). 客戶端每次向服務端請求資源的時候須要帶着服務端簽發的 Token
6). 服務端收到請求,而後去驗證客戶端請求裏面帶着的 Token,若是驗證成功,就向客戶端返回請求的數據
token:加密 ; 請求時攜帶 ; 緩存起來
11. 模擬post請求:amber 和 postman
12. 使用guava中的工具類
13. 使用泛型,簡化代碼
14. 使用lombok中的@Data減小setter和getter方法
15. 實體類繼承
16. 自動構建工具,jenkins
17. 相同的代碼提取成複用方法
18. 緩存不變的內容,例如:區域、城市
19. 數據庫插入或者更新,時間自動生成
20. 分頁封裝,將設計分頁的內容提取出來,例如:放到intercept和ThreadLocal中
21. 員工/崗位:查詢員工使用員工,查詢上下級關係使用崗位。崗位保存歷史信息,同一個員工的每一個時間段只有一個處於激活狀態。
22. 封裝返回對象
23. mybatis:
HashMap:<select id="getDealerVisitRecordCount" resultType="int" parameterType="java.util.Map" >
in語句判斷,判斷是否爲空以及長度是否大於0:
<if test="positionIdList!=null and positionIdList.size!=0">
a.position_id in
<foreach collection="positionIdList" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
大於和小於:
<if test="startDate!=null">
AND a.visit_time > #{startDate}
</if>
24. 一個項目,若是一切正常,多是訪問路徑錯了。包括:IP,項目名,類路徑,方法路徑。更新maven項目可能致使項目路徑由/變爲項目名。
25. 在eclipse中新建simple Maven project項目後,pom.xml報錯:
web.xml is missing and <failOnMissingWebXml> is set to true
解決方法:
在Java EE窗口下,打開項目,單擊Deployment Descriptor,右鍵單擊:Generate Deployment Descriptor Stub
注意,只有新建簡單項目,打war包的時候,纔會出現上面的操做。
26. 直接使用:PrepareStatement
Class.forName(db_driver);
conn = DriverManager.getConnection(url, "root", "123123");
ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
27. List、Set、 數組等轉字符串:
list轉字符串:str = StringUtils.join(list.toArray(), ",");
符串數組轉爲字符串:str = StringUtils.join(strArray, "-");
set轉換爲字符串:str = StringUtils.join(set.toArray(), ";");
28. 本身的項目,一個方法,各類狀況,各類測試
29. guava處理字符串與List之間,字符串與map之間的轉換:
List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");
String result = Joiner.on(",").join(names);
參考:http://blog.csdn.net/sunhuwh/article/details/41291515
30. 自動分頁:https://github.com/pagehelper/Mybatis-PageHelper
31. 使用jenkins部署項目時,打包等都沒問題,只有部署有問題。能夠經過tomcat下的日誌查看錯誤。
32. 經過拋出自定義異常來獲取返回信息給前端
33. 一直查看後臺日誌,來判斷是否有錯誤
34. 寫SQL語句來查詢一些經常使用東西否,方便查看
35. 設計一個表時,要知道這個表都會顯示顯示哪些內容。須要保存哪些信息,之後用。(例如:記錄人員等)
36. 在插入數據時,若是有字段限制惟一。爲防止數據重複插入致使異常。可使用下面三種方法:
1). 使用redis,redis操做爲單線程。標記已有線程在處理這件事。例如:手機號
2). 使用ON DUPLICATE KEY UPDATE
3). 捕獲重複字段異常
37. 當超連接不表示真正訪問路徑時,能夠按F12,經過點擊超連接,查看網絡請求來確認真正的訪問路徑。
38. 記錄操做日誌,一些關鍵信息記錄到數據庫中,方便之後查詢。但對於錯誤信息,通常記錄到文件。若是錯誤日誌也記錄到數據庫,可能會在非法攻擊的時候致使數據庫崩潰。
39. 一些專業的羊毛黨,很是強大。能夠經過程序辨別短信驗證碼等,刷註冊等。通常只能經過業務解決,如:讓對方投資纔給優惠,或者直接下線活動。
40. xshell上的連接有明確的名字,不要全用IP地址做爲名字
41. 保存經常使用SQL。數據庫用戶名和密碼
42. 保存經常使用訪問地址
43. 定時回收舊文件
44. 若是報錯找不到類,jar又確實有,能夠反編譯jar包看看jar包裏面有沒有相關類。
45. restTemplate請求資源時 設置請求頭:
1)HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("key1", "values");
requestHeaders.add("key2", "ddd");
2)HttpEntity<String> requestEntity = new HttpEntity<String>(null, requestHeaders);
ResponseEntity<String> response = template.exchange(url, HttpMethod.GET, requestEntity, String.class, params);
String sttr = response.getBody();
參見:https://blog.csdn.net/u010139801/article/details/72770123
46. 提交的代碼不生效怎麼辦?
1)確認git上已有最新代碼
2)反編譯服務器上代碼
3)本地分支驗證
4)監控日誌,不行的話新增日誌。新增日誌包括是否執行,執行的中間結果是什麼
47. 必定要有異常監控,否則的話很尷尬
48. 前端頁面空白,能夠debug模式,看看哪些文件沒有加載成功