精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

加速Java應用開發4—模板加速項目開發速度

開發 后端
模板帶給我們的好處很明顯:約束+重用。通過模板我們可以把變與不變分離,重用不變,變可以交給子類/通過回調機制完成,而且還具有約束作用,防止亂寫代碼。

模板,一個我們天天使用的技術, 比如:

  • Java類就是創建Java對象實例的模板;
  • 泛型,參數化類型的模板,如List<User>;常見的如泛型DAO、泛型Service等;
  • Arrays.sort() 一個排序的模板;
  • Spring中的DAO支持設計;可參考《我對SpringDAO層支持的總結》;
  • HttpServlet設計,如service根據http method轉發給各個do開頭的方法(doGet、doPost等);
  • 還有如Struts2的ActionSupport設計,我們繼承后能自動得到如國際化、驗證的支持;
  • JSP、Velocity、Freemarker等模板頁面技術;
  • 等等。。

模板帶給我們的好處很明顯:約束+重用。通過模板我們可以把變與不變分離,重用不變,變可以交給子類/通過回調機制完成,而且還具有約束作用,防止亂寫代碼。

那我們應該利用好這個技術,加速項目的開發速度。接下來我們看看如何利用模板技術來加速我們的開發速度。

接下來,我將介紹下如何利用模板技術加速開發速度,但不會接受如何利用模板技術開發可復用的代碼;本文以IntelliJ IDEA為原型介紹:

  1. 代碼生成
  2. Live Template
  3. File and code Templates
  4. 自動代碼生成

1、代碼生成

如我們要求 i + j,可以先:

  1. int k = add(i, j);  

然后按Alt+enter自動生成相關代碼;而不是自己去敲;其會自動生成相應的變量和方法體;如圖

1、按Alt+Enter彈出如創建方法/創建本地變量的提示

 

2、可以根據生成的模板方法,修改模板參數;

 

3、還有典型的如生成構造器、getter/setter等,按Alt+Insert得到如下圖:

 

比如在生成構造器時,可以選擇相關字段,會自動生成相應的賦值操作:

 

4、Ctrl+O/Alt+Insert生成覆蓋方法;ctrl+I/Alt+Insert生成實現方法的

5、選中代碼后,Ctrl+Alt+T彈出Surround with,生成包圍代碼的的代碼,如if/else:

#p#

6、在如JSP標簽頁面中,按Ctrl+Alt+J,生成環繞的標簽:

 

 

等等。。具體可以參考jetbrains.官網的《Generating Code》部分。

2、Live Template

如果用過idea,肯定用過如輸入 psvm 然后按Tab鍵,會自動生成public static void main方法,使我們少輸入很多字符。這個功能在idea中叫做Live Template;接下來讓我們看看有哪些Live Template和如何自定義Live Template。

最常見的功能:

  1. psvm----->public static void main(String[] args) {}
  2. psfi ------->public static final int 

3、ifn   會自動生成如下圖

大家可以通過 File--->Settings---->Live Templates找到所有模板,如:

如 lazy 生成延遲初始化的代碼,inn生成if (** != null)

如fori --->for (int j = 0; j < ; j++) {}    

List list;  itli  ----> for (int i = 0; i < list.size(); i++) { Object o =  list.get(i);}

 

 

等等,這個可以去Settings里查看。

接下來我們看看如何自定義自己的Live Template:

 

 #p#

  1. 輸入“縮寫前綴”,即在代碼中輸入的前綴;
  2. 模板文本;
  3. Change:選擇在哪使用;

接下來在Java文件中,輸入test會生成 hello world;

此處看到 $END$ 這種變量,接下來解釋下:

  1. 格式是$變量名$
  2. $END$ : 表示展開模板后光標停留的位置,比如我們的test,生成模板后,光標停留在hello world 前邊;
  3. $SELECTION$ : 表示對選中的代碼應用模板;如我們定義test為:

 

此處選中“int i = 1;”,然后按Ctrl+Alt+T 彈出“Surround With” 然后輸入test前綴,自動生成:--->hello int i = 1; world 

還有如 輸入 if for等前綴 按Ctrl+Shift+Enter會自動生成 帶()和{} 的形式,非常方便。

如果想定義自己的變量,可以直接點擊在編寫模板時,模板文本右邊的:“Edit variables” 編寫:如得到返回的變量,方法名,類名等等。

大家可以參考官網的《Live Templates》。

3、File and code Templates

到此我們使用的都是代碼塊級別的模板,在工作中我們常見的還需要:

  1. 生成如Copyright頭;
  2. 生成類頭Javadoc,如用戶、時間、版本;
  3. 創建如spring配置文件,每次可能都是從別的地方復制一份;
  4. 如我們做企業項目時,都先寫一個CRUD的DAO、Service、Controller等等,但是幾乎每一個模塊都是類似的,但是我們每次可能都要重復寫一遍;

因為IDEA使用的是velocity模板,所以語法相對來說是比較靈活的,而Eclipse看了下是自創的,所以在創建時沒有IDEA靈活。

File---->Settings--->File and Code Templates 打開模板設置頁面

3.1、給Class生成Copyright頭

1、創建Include文件

  1. 首先選擇Includes標簽,然后點擊創建創建一個;
  2. 接著Name處輸入名字;
  3. Extension部分輸入擴展名;
  4. 文件正文;

此文件包含了我的copyright

#p#

2、添加到類模板中

  1. 首先選中Class;
  2. 在頁面頂部使用 @parse("Coyright.java")把剛才寫的文件包含進來

接著新建一個Java Class,在頁面的頂部會出現這個copyright;

3.3、自定義Service模板 

以KeyValueService.java為例。

  1. 首先File--->Settings---->File and Code Templates進入模板設置頁面
  2. 創建模板,如圖所示

 

  1. 點擊Templates標簽,點擊新增按鈕
  2. Name處輸入名字
  3. Extension處輸入擴展名
  4. 輸入模板正文,此處我們可以使用${NAME}和${PACKAGE_NAME}分別獲取輸入的文件名和包名
  5. 語法是velocity語法,所以很強大,按理說很復雜的需求也可以實現

3、新增Class

3.1、在包處Alt+Enter彈出新建列表,選擇Java  Class

3.2、 接著在彈出的界面中輸入 Service的前綴,并選擇Service類型:

 

4、接著類就創建好了:

  1. /** 
  2.  * Copyright (c) 2005-2012 https://github.com/zhangkaitao 
  3.  * 
  4.  * Licensed under the Apache License, Version 2.0 (the "License"); 
  5.  */ 
  6. package com.sishuok.es.maintain.keyvalue.service; 
  7.  
  8. import com.sishuok.es.common.inject.annotation.BaseComponent; 
  9. import com.sishuok.es.common.service.BaseService; 
  10. import com.sishuok.es.maintain.keyvalue.entity.HelloValue; 
  11. import com.sishuok.es.maintain.keyvalue.repository.HelloRepository; 
  12. import org.springframework.beans.factory.annotation.Autowired; 
  13. import org.springframework.stereotype.Service; 
  14.  
  15. /** 
  16.  * <p>User: Zhang Kaitao 
  17.  * <p>Date: 13-6-20 下午4:31 
  18.  * <p>Version: 1.0 
  19.  */ 
  20. @Service 
  21. public class HelloService extends BaseService<Hello, Long> { 
  22.  
  23.     @Autowired 
  24.     @BaseComponent 
  25.     private HelloRepository helloRepository; 
  26.  

非常方便。

除此之外,我們還可以定義如 jsp模板、html模板、配置文件模板等等,消除開發中的重復工作。

但是此種方式的主要缺點就是:一次只能一個文件。比如,我們生成Service時,其實DAO、Contoller等***也自動生成。 接下來就需要自動代碼生成了。

4、自動代碼生成

估計很多朋友都使用/開發過代碼生成器;其實開發一個簡單的代碼生成器花不了多長時間,核心指導思想是:變與不變分離:

  • 不變的是結構;
  • 變的是包名、類名及實體數據。

所以根據這個思想可以很容易寫一個代碼生成器,可以按照如下步驟完成:

  1. 自動生成一個模塊的DAO、Service、Controller;
  2. 根據數據庫自動生成一個模塊的Entity、DAO、Service、Controller;
  3. 自動生成一對一、一對多關系的模塊代碼;
  4. 自動生成公司中常用的代碼的模塊代碼,如樹;

目前見到的主要有這些類型的自動代碼生成。

代碼生成的模板文件可以使用純文本(即純粹的字符串替換),更高級點的可以使用如velocity這種模板語言,更加強大。

如果有朋友不會寫代碼生成器,可以先建一個Example的示例代碼,接著做復制、粘帖、修改實體名等等完成,估計30秒鐘也能出一個基本的模塊代碼。但是如果交給代碼生成器,速度更快。

比如筆者剛開發的新項目,還沒時間開發代碼生成器,就寫一個一些示例,這樣如果寫新模塊就直接復制一份改改即可,尤其樹這塊節省不少時間,點擊showcase前往查看。

代碼生成器也不是***的,如果你做過互聯網項目,不像企業應用那樣有許多的增刪改查,所以這個時候,純粹生成CRUD的代碼生成器沒有任何意義。

到此我們介紹完了模板,使用模板能提升不少開發速度,但是模板不是***的,只有發現有些代碼是由:變與不變組成,那我們就可以把不變的做成模板,變的部分通過占位符(即變量)填入。

原文鏈接:http://jinnianshilongnian.iteye.com/blog/1895481

 

責任編輯:陳四芳 來源: 開濤的博客
相關推薦

2013-07-03 09:52:13

熱部署熱替換

2013-07-01 10:07:44

JavaSpringHibernate

2012-02-08 15:06:31

ibmdw

2009-09-24 17:21:17

加速Hibernate

2013-07-03 10:20:06

2009-08-21 15:40:26

Linux KerneLinux開發加速

2017-06-14 09:00:40

容器開發人員云應用

2018-09-11 09:00:50

工具開發應用程序

2025-04-02 10:06:00

2024-06-20 09:00:31

2013-07-04 13:37:23

Java開發速度

2023-08-29 15:14:32

2025-02-03 16:24:20

2022-11-09 07:49:12

Records類聲明代碼

2010-02-01 09:21:49

GroovyGoogle App Gaelyk

2010-05-05 17:19:55

云計算

2014-07-17 14:20:23

甲骨文移動套件
點贊
收藏

51CTO技術棧公眾號

性做久久久久久免费观看欧美| 你懂的视频一区二区| 色婷婷综合在线| 日韩欧美精品在线不卡| 国产乱码久久久久| 欧美日韩一区二区高清| 亚洲美女久久久| 午夜国产福利在线观看| 538视频在线| 久久久久久一级片| 亚洲综合色av| 五月婷婷激情视频| 午夜激情一区| 中文字幕免费精品一区| 你懂的在线观看网站| 嫩草伊人久久精品少妇av杨幂| 亚洲精品国产a| 欧美午夜欧美| 好男人www在线视频| 日韩精品电影在线观看| 欧美激情中文字幕在线| 日本xxxxxxxxx18| 成人午夜三级| 日韩欧美中文字幕精品| 久久婷婷国产91天堂综合精品| 黑人玩欧美人三根一起进| 成人欧美一区二区三区1314| 国产综合av一区二区三区| 在线免费观看日韩视频| 媚黑女一区二区| 91国内产香蕉| 国产亚洲精品女人久久久久久| 日韩一区二区三区免费播放| 精品呦交小u女在线| 美女伦理水蜜桃4| 欧美专区一区| 欧美一区中文字幕| 无码日韩人妻精品久久蜜桃| 欧美gv在线| 亚洲成人免费视频| 在线观看17c| 国产网友自拍视频导航网站在线观看| 欧美国产日韩精品免费观看| 欧美一区二区三区成人久久片| 四虎在线观看| 91视频观看免费| 国产乱码精品一区二区三区中文| 草草视频在线播放| 国产成人免费视频| 成人资源视频网站免费| 亚洲精选一区二区三区| 国产成人综合在线| 成人av电影免费| 性一交一乱一透一a级| 国产精品1区2区3区| 91在线直播亚洲| 精品国产区一区二| 国产不卡在线播放| 国产91免费视频| 少妇喷水在线观看| 久久亚洲捆绑美女| 日韩国产欧美精品| aaa日本高清在线播放免费观看| 国产情人综合久久777777| 日韩国产美国| a视频在线观看免费| 亚洲精品国产视频| 日韩国产欧美亚洲| 99精品在免费线偷拍| 精品视频在线免费看| 高潮一区二区三区| 亚洲精品一区二区三区在线| 欧美精品一区二区久久久| 中文字幕天堂网| 九九久久成人| 久久久精品国产| 国产精品不卡av| 久久福利精品| 成人免费视频网址| 亚洲h视频在线观看| 97se亚洲国产综合自在线不卡| 青青草久久网络| 国产精品一区二区三区视频网站| 亚洲国产综合视频在线观看| 2022亚洲天堂| www.成人| 亚洲欧美日本精品| 亚洲国产精品免费在线观看| 亚洲国产精品一区制服丝袜| 国产成人精品综合久久久| a级片免费观看| xfplay精品久久| 人人妻人人澡人人爽精品欧美一区| heyzo高清国产精品| 色狠狠一区二区三区香蕉| 不用播放器的免费av| 奇米影视777在线欧美电影观看 | 日产精品99久久久久久| 91久久精品国产91性色69| av在线一区二区| 在线一区日本视频| 天堂网在线最新版www中文网| 欧美色涩在线第一页| 日韩精品xxx| 精品视频亚洲| 2019亚洲男人天堂| av手机免费看| 国产精品乱人伦中文| 少妇人妻在线视频| 日韩精品三级| 日韩在线视频线视频免费网站| 精品久久免费视频| 国产一区二区精品久久91| 蜜桃999成人看片在线观看| av激情在线| 欧美精品第1页| 中文字幕 自拍| 日韩一区二区免费看| 91在线色戒在线| www.在线视频.com| 午夜欧美在线一二页| 黄色片子免费看| 日韩欧美一区二区三区免费看| 欧美第一黄色网| 国产又大又粗又硬| 欧美国产一区视频在线观看| 国产乱子伦农村叉叉叉| 高清欧美性猛交xxxx黑人猛| 久久中文字幕在线视频| 亚洲无码精品在线播放| 久久久久国产精品厨房| 成人av一级片| 麻豆成人入口| 国内外成人免费激情在线视频网站| 国产精品综合在线| 自拍偷拍欧美精品| 老司机久久精品| 日韩av自拍| 国产精品日韩在线播放| 粉嫩av一区| 欧美在线免费视屏| 国产又粗又猛又爽又黄av| 久久av最新网址| 青青草成人激情在线| 婷婷午夜社区一区| 亚洲一区二区福利| 国产美女www| 国产精品午夜免费| 五月天av在线播放| 色一区二区三区四区| 国产精品午夜视频| 欧美成人精品一区二区男人看| 欧美色图免费看| xxxxx99| 美女性感视频久久| 中文一区一区三区免费| 国产精品视频一区视频二区 | 久久久久人妻一区精品色| 青青青伊人色综合久久| 亚洲一区二区在线免费观看| 久久麻豆视频| 美女性感视频久久久| 性一交一乱一伧老太| 亚洲成av人片在线| 中文字幕在线观看网址| 日韩综合一区二区| 天天做天天爱天天高潮| 综合中文字幕| 欧美亚洲国产视频| 97超碰国产一区二区三区| 777精品伊人久久久久大香线蕉| 国产97免费视频| 不卡一区二区在线| 少妇性l交大片| 国产精品久久久久无码av| 99re国产视频| 日韩性xxx| 久久在精品线影院精品国产| 亚洲欧美激情另类| 色久综合一二码| 久久99精品久久久久久青青91| 久久视频在线免费观看| 久久草视频在线| 26uuu国产电影一区二区| 亚洲最大综合网| 欧美ab在线视频| 久精品国产欧美| 欧洲亚洲精品久久久久| 欧美高清在线视频观看不卡| 三级黄视频在线观看| 欧美日本在线播放| 国产稀缺真实呦乱在线| 国产欧美日本一区二区三区| 黄色片免费网址| 久久av最新网址| 欧美另类videosbestsex日本| 西瓜成人精品人成网站| 国产在线观看精品| 九色porny视频在线观看| www.日韩不卡电影av| 污视频软件在线观看| 欧美军同video69gay| 一区二区三区福利视频| 亚洲欧美另类综合偷拍| 人人爽人人爽人人片| 高清成人免费视频| 亚洲精品20p| 玖玖视频精品| cao在线观看| 91精品精品| 亚洲.欧美.日本.国产综合在线| 北条麻妃在线一区二区免费播放| 国产精品欧美日韩| 亚洲精品mv| 国色天香2019中文字幕在线观看| 国产在线看片| 一区二区三区在线播放欧美| 五月婷婷六月丁香| 欧美大胆人体bbbb| 99精品久久久久久中文字幕| 欧美性大战久久| 中文字幕亚洲乱码熟女1区2区| 亚洲精品ww久久久久久p站| 国产美女网站视频| 欧美经典一区二区| 99久久久无码国产精品衣服| 91在线视频18| 波多野结衣影院| 成人av在线一区二区| 亚洲成人av免费观看| 久久爱www久久做| 人人干人人干人人| 免费成人在线观看| 午夜欧美福利视频| 日韩av不卡一区二区| 超碰影院在线观看| 久久免费国产| 成人黄色一区二区| 天堂va蜜桃一区二区三区| av动漫免费看| 一区二区三区 在线观看视| 久久久久人妻一区精品色欧美| 亚洲视频香蕉人妖| 男人在线观看视频| 最新高清无码专区| 美女视频久久久| 中文字幕一区二区三区四区| 在线观看亚洲大片短视频| 久久久国产午夜精品| 欧美18—19性高清hd4k| 国产亚洲1区2区3区| 久久久久久久毛片| 国产精品久久综合| 最新一区二区三区| 一区二区久久久| 久久久99精品| 午夜视频一区二区三区| 中文字幕视频网站| 91国偷自产一区二区使用方法| 日韩熟女一区二区| 欧美在线观看视频一区二区| 亚洲一卡二卡在线观看| 欧美精品视频www在线观看| 国产免费无遮挡| 日韩精品专区在线| 少妇喷水在线观看| 国产亚洲精品激情久久| 日本高清视频在线播放| 欧美成人精品影院| 捆绑调教日本一区二区三区| 琪琪第一精品导航| 欧美一级做一级爱a做片性| 3d精品h动漫啪啪一区二区| 国产精品三p一区二区| 免费精品视频一区| 91久久夜色精品国产按摩| 久久男人资源站| 免费视频一区| 伊人成人222| gogogo免费视频观看亚洲一| 亚洲成人黄色av| 亚洲免费视频中文字幕| 欧美三级一区二区三区| 欧美性三三影院| 亚洲av无码一区二区乱子伦| 日韩精品一二三四区| 日本暖暖在线视频| 久久免费观看视频| 国产激情久久| 国产激情美女久久久久久吹潮| 神马电影久久| 欧美亚洲色图视频| 日韩电影在线一区二区| 男人的天堂免费| 中文字幕乱码日本亚洲一区二区| 午夜写真片福利电影网| 色八戒一区二区三区| 国产刺激高潮av| 日韩中文字幕视频| 涩涩在线视频| 99精品国产一区二区| 欧美久久综合网| 国产一区二区三区乱码| 久久综合综合久久综合| 加勒比精品视频| 亚洲精品五月天| 中文字幕 自拍偷拍| 欧美精品一区二区三区高清aⅴ | av在线一区二区| 综合五月激情网| 欧美三级中文字| 欧美日韩免费做爰大片| 欧美日韩爱爱视频| 91丨精品丨国产| 日本日本精品二区免费| 一本色道久久综合亚洲精品高清 | 激情综合五月| 亚洲国产精品一区在线观看不卡 | 亚洲国产中文字幕| 国产精品免费无遮挡| 国产一区二区三区在线免费观看| 美女高潮视频在线看| 国产不卡一区二区在线观看 | 91国产美女视频| h视频久久久| 蜜桃视频一区二区在线观看| 精品一区二区在线看| 欧洲性xxxx| 91久久精品午夜一区二区| 亚洲日本国产精品| 91精品国产高清自在线| www.成人网| 日韩精品在线观看av| 成熟亚洲日本毛茸茸凸凹| 9999热视频| 日韩午夜电影在线观看| 成人午夜在线影视| 亚洲一区二区免费在线| 911精品美国片911久久久| 日韩在线一区视频| 国产精品不卡一区二区三区| 在线观看黄色网| www.色综合| 欧美1区2区3| 久久男人资源站| 91一区二区在线| 国产又黄又猛又粗又爽| 亚洲欧美综合v| 美女日韩欧美| 手机在线观看国产精品| 久久精品二区亚洲w码| 午夜激情福利电影| 91精品国产乱码久久蜜臀| 呦呦在线视频| 国产一区二区中文字幕免费看| 99精品99| 日韩中文字幕电影| 欧美日高清视频| 日本高清在线观看视频| 激情视频在线观看一区二区三区| 国产日韩视频| 亚洲日本精品视频| 777亚洲妇女| 色yeye免费人成网站在线观看| 国产精品.com| 久久人人精品| 91精品一区二区三区蜜桃| 欧美不卡123| www.成人爱| 中文字幕一区二区三区在线乱码| 国产精品1区2区3区在线观看| 五月婷婷激情网| 在线日韩欧美视频| 婷婷视频一区二区三区| 欧美 日韩 激情| 国产精品久久久久久妇女6080 | 国产精品第72页| 亚洲午夜av久久乱码| 国内不卡的一区二区三区中文字幕 | 亚洲乱妇老熟女爽到高潮的片| 偷拍亚洲欧洲综合| 888av在线| 国产亚洲精品久久飘花| 日本不卡视频在线观看| 久久久久免费看| 中文字幕久久久av一区| 国产精品极品在线观看| 亚洲中文字幕久久精品无码喷水| ㊣最新国产の精品bt伙计久久| 色丁香婷婷综合久久| 国产情人节一区| 国产日韩一区二区三区在线播放| 欧日韩不卡视频| 日韩精品久久久久久福利| 亚洲欧洲专区| 久久久噜噜噜www成人网| 亚洲另类在线视频| www.中文字幕久久久| 精品无人区一区二区三区| 黄网站免费久久|