国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

14個SpringBoot妙招,優雅編碼

開發 前端
有時候我們為了統一管理會把一些變量放到 yml 配置文件中;而不是到處設置“魔數”,一旦那天需要修改,只需要修改配置文件即可,不需要滿項目去搜索替換。

說到代碼優化,很多人上來就是各種理論、架構、核心思路;其實優化這個事情說簡單也簡單,說復雜也可以很復雜,但是我覺得最重要的就是要有一個良好的編碼習慣,代碼"屎山”并非一朝一夕形成的,往往是經過了日積月累;因此,培養一個好的習慣,可以讓我們的代碼變的更加優雅、易維護,系統變的更加健壯;下面就分享14個小技巧,讓優化變成順手就完成的小事兒;

1. 定義配置文件信息

有時候我們為了統一管理會把一些變量放到 yml 配置文件中;而不是到處設置“魔數”,一旦那天需要修改,只需要修改配置文件即可,不需要滿項目去搜索替換;

  • 例如圖片用 @ConfigurationProperties 代替 @Value
  • 使用方法定義對應字段的實體
@Data
// 指定前綴
@ConfigurationProperties(prefix = "developer")
@Component
public class DeveloperProperty {
    private String name;
    private String website;
    private String qq;
    private String phoneNumber;
}
  • 使用時注入這個bean
@RestController
@RequiredArgsConstructor
public class PropertyController {
 
    final DeveloperProperty developerProperty;
 
    @GetMapping("/property")
    public Object index() {
       return developerProperty.getName();
    }
}

2. 用@RequiredArgsConstructor代替@Autowired

我們都知道注入一個 bean 有三種方式哦(set 注入,構造器注入,注解注入),Spring 推薦我們使用構造器的方式注入 Bean

我們來看看上段代碼編譯完之后的樣子

圖片圖片

@RequiredArgsConstructor 注解由lombok提供;

3.代碼模塊化

阿里巴巴 Java 開發手冊中說到每個方法的代碼不要超過 50 行(我沒記錯的話),在實際的開發中我們要善于拆分自己的接口或方法, 做到一個方法只處理一種邏輯,說不定以后某個功能就用到了, 拿來即用。

圖片圖片

4. 拋異常而不是返回

在寫業務代碼的時候,經常會根據不同的結果返回不同的信息,盡量減少返回,會顯得代碼比較亂

  • 反例

圖片圖片

  • 正例

圖片圖片

5. 減少不必要的db

盡可能的減少對數據庫的查詢

舉例子

刪除一個服務(已下架或未上架的才能刪除),之前有看別人寫的代碼,會先根據id查詢該記錄,然后做一些判斷

  • 反例圖片
  • 正例圖片

6. 不要返回 null

避免調用方法時,造成不必要的空指針

  • 反例

圖片圖片

  • 正例

圖片圖片

7. if else

不要太多了if else if,可以試試策略模式代替

8. 減少controller業務代碼

業務代碼盡量放到service層進行處理,后期維護起來也好操作而且美觀

  • 反例

圖片圖片

  • 正例

圖片圖片

9. 利用好IDEA

目前為止市面上的企業基本都用idea作為開發工具了吧

舉一個小例子

IDEA會對我們的代碼進行判斷,提出合理的建議

例如:

圖片圖片

它推薦我們用lanbda的形式代替,點擊replace。

圖片圖片

10. 閱讀源碼

一定要養成閱讀源碼的好習慣包括優秀的開源項目GitHub上stars:>1000, 會從中學好好多知識包括其對代碼的設計思想以及高級API,面試加分(好多面試官習慣問源碼相關的知識)

11. 設計模式

23種設計模式,要嘗試代碼中運用設計模式思想,寫出的代碼即規范又美觀還高大上哈哈。

12. 擁抱新知識

像我們這種工作年限少的程序員,我覺得要多學習自己認知之外的知識,不能每天crud,有機會就多用用有點難度的知識,沒有機會(項目較傳統),可以自己下班多些相關demo練習

13. 基礎問題

  • Map遍歷
HashMap<String, String> map = new HashMap<>();
map.put("name", "du");
for (String key : map.keySet()) {
   String value = map.get(key);
}
 
map.forEach((k, v) -> {
});
 
// 推薦
for (Map.Entry<String, String> entry : map.entrySet()) {
 
}
  • optional 判空
//獲取子目錄列表
public List<CatalogueTreeNode> getChild(String pid) {
    if (V.isEmpty(pid)) {
        pid = BasicDic.TEMPORARY_DIRECTORY_ROOT;
    }
    CatalogueTreeNode node = treeNodeMap.get(pid);
 
    return Optional.ofNullable(node)
              .map(CatalogueTreeNode::getChild)
              .orElse(Collections.emptyList());
}
  • 遞歸大數據量的遞歸時,避免在遞歸方法里new對象,可以試試把對象當作方法參數進行傳遞使用
  • 注釋類 接口方法 注解 較復雜的方法 注釋都要寫而且要寫清楚, 有時候寫注釋不是給別人看的 而是給自己看的

14. 判斷元素是否存在

hashSet 而不是 list,list 判斷一個元素是否存在的代碼

ArrayList<String> list = new ArrayList<>();
 
// 判斷a是否在list中
 
for (int i = 0; i < list.size(); i++)
       if ("a".equals(elementData[i]))
          return i;

由此可見其復雜度為On,而hashSet底層采用hashMap作為數據結構進行存儲,元素都放到map的key(即鏈表中)

HashSet<String> set = new HashSet<>();
 
// 判斷a是否在set中
 
int index = hash(a);
 
return getNode(index) != null

由此可見其復雜度為O1。

責任編輯:武曉燕 來源: 一安未來
相關推薦

2024-08-12 10:03:08

2019-09-15 23:24:16

系統安全Linux操作系統

2009-10-13 14:53:00

2021-11-10 10:03:18

SpringBootJava代碼

2023-01-30 07:41:43

2023-06-28 08:25:14

事務SQL語句

2010-09-09 10:18:01

2025-03-17 00:00:00

2025-03-10 00:00:11

Spring框架數據

2024-05-29 08:12:55

接口參數格式

2025-09-02 09:32:33

Spring工具項目

2024-10-18 08:53:49

SpringMybatis微服務

2025-07-10 07:24:54

Spring支付策略類

2024-03-18 14:06:00

停機Spring服務器

2009-04-02 10:59:57

優化插入MySQL

2021-04-16 08:11:07

程序體積優化

2022-04-10 10:41:17

ESLint異步代碼

2020-01-10 16:23:44

Springboot停止服務Java

2023-03-06 11:36:13

SpingBoot注解

2020-03-25 17:55:30

SpringBoot攔截器Java
點贊
收藏

51CTO技術棧公眾號

国产精品一在线观看| 免费久久99精品国产| 精品视频—区二区三区免费| 亚洲欧洲在线观看| 亚洲欧美在线成人| 久久不见久久见中文字幕免费| 国产偷国产偷精品高清尤物| 男人添女荫道口女人有什么感觉| 五月婷婷丁香色| 日韩影院在线观看| 国产91视觉| 欧美一区精品| 国产精品99久久久久久久久久久久| 久久国产精品免费一区二区三区| 日韩久久免费电影| 国产va在线视频| 精品国产凹凸成av人网站| 国产69久久| 色88888久久久久久影院野外| 桥本有菜亚洲精品av在线| 亚洲精品福利视频网站| 美女av网站| 亚洲超碰精品一区二区| 小草在线视频在线免费视频| 欧美视频在线免费| 国产在线观看网站| 欧美乱熟臀69xxxxxx| 久操视频在线播放| 日韩成人久久久| av影院在线免费观看| 亚洲精品xxx| 欧美日韩女优| 欧美激情在线观看视频| 色琪琪丁香婷婷综合久久| 亚洲国产一区二区三区青草影视| 三年片观看免费观看大全视频下载| 亚洲成人精品影院| 黄色免费在线看| 亚洲国产又黄又爽女人高潮的| 97se综合| 97视频在线观看网址| 欧美成免费一区二区视频| 精品综合在线| 成人免费看的视频| 精精国产xxxx视频在线动漫| 欧美在线播放高清精品| 欧美日韩美女| 国产aⅴ夜夜欢一区二区三区| 亚洲午夜极品| 91成人在线视频观看| 国产网站一区二区三区| 黄网站app在线观看下载视频大全官网| 欧美色播在线播放| 国产精品原创| 午夜精品福利在线观看| 中文在线播放一区二区 | 国产91精品久久久久久| 亚洲精品电影| 免费看av软件| 一区二区三区欧美日| 1024在线播放| 欧美激情小视频| 国产亚洲激情| 中文字幕欧美人妻精品一区| 色欧美乱欧美15图片| 国产成人福利夜色影视| 成人两性免费视频| 豆国产96在线|亚洲| 亚洲成av人影片在线观看| 亚洲国产成人一区| 欧州一区二区| 无颜之月在线看| 欧美特级www| 亚洲人永久免费| 日韩啪啪网站| av一区二区不卡| 在线观看免费视频高清游戏推荐| 一区二区三区在线观看视频 | 91精品国产麻豆国产在线观看| 91视频网页| 久久伊人资源站| 蜜臀精品一区二区三区在线观看| 欧美成人福利在线观看| 欧美一级理论片| 亚洲精华一区二区三区| 日韩精品一线二线三线| 一区二区三区国产| 蜜桃视频成人m3u8| 国产成人av一区二区三区| 国产精品美女一区二区三区| 国产在线88av| 亚洲一区国产精品| 国产精品网曝门| 免费观看亚洲| 久久久综合香蕉尹人综合网| 亚洲蜜桃精久久久久久久| 亚洲欧美一级| 中文字幕精品一区日韩| 欧美日韩视频专区在线播放| 精品视频黄色| 国产免费999| 中日韩午夜理伦电影免费| 亚洲欧美日韩精品一区二区| 青青久草在线| 国产精品一区=区| 中文字幕欧美日韩一区| 四虎在线精品| 无颜之月在线看| 欧美精品一区二区精品网| 欧美日韩在线大尺度| 国产青青视频| 国语自产偷拍精品视频偷| 国产精品1区2区| 免费污视频在线观看| 99在线热播| 精品久久久久久久大神国产| 欧美极品少妇xxxxⅹ喷水| 日本怡春院一区二区| 第九色区av在线| 国产日韩欧美在线| 亚洲国产综合视频在线观看| 久久久久影视| 日本wwww视频| 亚洲一区二区成人| 快播av资源| 国内精品久久久久久影视8| 国产欧美一区二区三区鸳鸯浴| 欧美大片1688| 久久亚洲精品无码va白人极品| 亚洲精品一二区| 毛片基地黄久久久久久天堂| 国产盗摄精品一区二区酒店| 亚洲欧美日韩精品在线| 日韩国产在线看| heyzo一区| 国产一区影院| 91精品美女| 欧美日韩免费高清| 亚洲电影一区二区三区| 国产麻豆精品久久| 黄动漫在线免费观看| 成人深夜直播免费观看| 色综合久久综合中文综合网| 亚洲乱码久久| 日韩影视在线| 法国空姐在线观看免费| 亚洲人成电影在线播放| 成人福利视频在线| 成人偷拍自拍| 水莓100在线视频| 日本一区二区精品| 亚洲欧美日韩视频一区| 99精品视频在线观看免费| 亚洲视频国产| 动漫黄在线观看| 老牛影视免费一区二区| 亚洲日本中文字幕| 亚洲欧美综合在线精品| 欧美另类女人| 三上悠亚亚洲一区| jizz欧美大全| 国产综合色一区二区三区| 日韩电影免费观看在线观看| 26uuu另类欧美| 欧美a级片视频| 国产91足控脚交在线观看| 国产91在线视频观看| 国产又爽又黄的激情精品视频| 日韩欧美电影在线| 国产欧美日韩在线看| 欧美日韩三区| 免费日韩成人| 欧美亚洲激情视频| 色综合电影网| 日韩伦理在线免费观看| 一区二区三区视频播放| 国产羞羞视频在线观看| av在线不卡观看| 亚洲欧洲日本专区| 亚洲一区二区黄色| 男男成人高潮片免费网站| 加勒比久久高清| 91视频在线观看| 女人和拘做爰正片视频| 91入口在线观看| 日韩中文娱乐网| 欧美专区日韩专区| 91视频在线看| 一区二区三区四区五区精品视频| 青青久久精品| 美女免费久久| 久草香蕉在线| 中日韩在线视频| 国产精品视频资源| 国产精品久久久久久久久果冻传媒| 91色|porny| 亚洲午夜视频在线观看| 欧美日韩精品福利| 国产精品高清在线观看| 欧美国内亚洲|