精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美一区二区三区日韩视频| 久久久久久久久岛国免费| 中文综合在线观看| 日本美女久久久| 91av久久| 国产精品麻豆网站| 国产精品9999久久久久仙踪林| 亚洲日本韩国在线| 91日韩在线| 精品久久久久久久久久久院品网| 欧美日韩中文在线视频| 动漫一区在线| 久久久久久一二三区| 成人网欧美在线视频| 中文字幕一区二区三区精品 | 欧美在线视频日韩| 国产精品av免费观看| 久香视频在线观看| 成人涩涩免费视频| 成人xxxx视频| 无码任你躁久久久久久久| 欧美精品国产一区| 色综合影院在线| 97人妻天天摸天天爽天天| 99视频这里有精品| 欧美亚洲国产一区二区三区| 久久99中文字幕| 国产原厂视频在线观看| 久久久久久久久久看片| 国产有色视频色综合| 99热这里只有精品在线| 日本午夜精品视频在线观看| 2019中文字幕全在线观看| 玖玖爱这里只有精品| 欧美军人男男激情gay| 日韩电影大片中文字幕| 日韩精品――色哟哟| 日韩国产大片| 欧美色图一区二区三区| 亚洲精品无码久久久久久| 欧美黄色视屏| 亚洲精品v日韩精品| 亚洲日本欧美在线| 二区三区在线| 国产日韩欧美不卡| 欧美日韩精品不卡| 天堂网www中文在线| av欧美精品.com| 国产在线视频欧美一区二区三区| 亚洲精品国产av| 国产麻豆欧美日韩一区| 91精品久久久久久久久久入口| 艳妇乳肉豪妇荡乳av无码福利 | 日韩美女视频在线观看| 国产又黄又粗又爽| 亚洲一区二区三区四区五区午夜| 久久久久久久999| 久草免费在线视频观看| 禁久久精品乱码| 欧美精品久久久久a| 青娱乐国产在线视频| 欧美激情自拍| 久久免费视频观看| 国产成人精品a视频一区| 日韩图片一区| 欧美性受xxx| 69xxxx国产| 日本在线不卡一区| 91久久国产精品| a级片在线视频| 成人h动漫精品一区二区| 国产精品电影一区二区| 精品国精品国产尤物美女| 国产一级二级av| 国产伦理久久久久久妇女 | 麻豆网站在线| 一个色综合av| 黄色国产一级视频| 色8久久影院午夜场| 欧美三片在线视频观看| 婷婷中文字幕在线观看| 白白在线精品| 国产性色av一区二区| 精品无码一区二区三区蜜臀| 影音先锋中文字幕一区二区| 日本欧美爱爱爱| 国产日韩欧美视频在线观看| 成人激情免费电影网址| 日本婷婷久久久久久久久一区二区| 91精彩在线视频| 亚洲一区二区三区视频在线播放| 成年网站在线免费观看| 日韩午夜电影免费看| 精品国内二区三区| 在线观看免费小视频| 欧美黄色大片网站| 色域天天综合网| 高清亚洲成在人网站天堂| 日本五十熟hd丰满| 日韩精品久久理论片| 91在线观看免费| 日韩精品系列| 亚洲欧美日本韩国| 欧美精品一区免费| 91成人福利社区| 精品偷拍一区二区三区在线看| 网站永久看片免费| 日韩视频在线一区二区三区| 91精品免费久久久久久久久| 偷拍精品一区二区三区| 国产精品久久久久aaaa樱花| av免费观看国产| 高清精品久久| 亚洲午夜性刺激影院| 国产在线观看免费av| 麻豆成人av在线| 欧美一区二区三区精美影视| 日韩特级毛片| 欧美日韩成人激情| 精品成人av一区二区三区| 欧美视频网站| 91久久久精品| 日韩在线免费电影| 日本高清不卡aⅴ免费网站| 在线xxxxx| 91成人超碰| 国产精品揄拍500视频| 麻豆app在线观看| 亚洲第一av色| 黄页网站在线看| 国产精品传媒精东影业在线| 国产精品91久久久久久| 日本一区视频| 岛国视频午夜一区免费在线观看 | 996久久国产精品线观看| 亚洲人成伊人成综合网久久久| 久久精品欧美一区二区| 国产成人精品在线看| 强开小嫩苞一区二区三区网站| 成人在线免费电影网站| 国产午夜精品一区理论片飘花 | 永久久久久久久| 久草热8精品视频在线观看| 天天好比中文综合网| 色成人免费网站| 曰本色欧美视频在线| 乱子伦一区二区三区| 久久久久久久av麻豆果冻| 日韩av资源在线| 免费成人结看片| 日本久久亚洲电影| 黄色网址在线播放| 色综合天天综合在线视频| 久久精品老司机| 性色一区二区三区| 欧美一区国产一区| 日本另类视频| xxav国产精品美女主播| 亚洲综合免费视频| 综合精品久久久| 免费观看黄网站| 黑人一区二区三区四区五区| 国产原创精品| 免费成人直播| 综合网中文字幕| 国产精品人妻一区二区三区| 亚洲精品亚洲人成人网| 日本少妇一级片| 99精品国产在热久久婷婷| 久久综合中文色婷婷| 欧美123区| 久久综合久久88| 国产18精品乱码免费看| 日韩欧美国产骚| 天堂av网手机版| 国产乱码精品一区二区三| 69sex久久精品国产麻豆| 欧美福利在线播放网址导航| 热99精品只有里视频精品| 成人综合影院| 日韩欧美国产综合一区| 亚洲视频免费播放| 亚洲国产精品v| 中文字幕制服丝袜| 久久精品系列| 免费看污污视频| 精品国内亚洲2022精品成人| 国产精品美女主播| 日韩特级毛片| 在线电影av不卡网址| 精品人妻无码一区二区色欲产成人 | 日韩高清av一区二区三区| 四虎影院在线免费播放| 亚洲精品乱码久久久久久久久| 国产a√精品区二区三区四区| 久久久夜夜夜| 国产精品三级一区二区| 久久99性xxx老妇胖精品| 91精品视频播放| 天天综合av| 欧美尺度大的性做爰视频| 青青草超碰在线| 欧美一卡二卡三卡四卡| 日韩不卡在线播放| 一区二区三区在线观看欧美| 精品国产成人亚洲午夜福利| 国产经典欧美精品| 91人人澡人人爽人人精品| 激情欧美一区| 午夜在线视频免费观看| 免费欧美视频| 国产视频一区二区不卡| vam成人资源在线观看| 538国产精品视频一区二区| 黄色片网站在线观看| 国产亚洲激情视频在线| 四虎永久在线观看| 欧美一二三四在线| 国产一区二区三区三州| 欧美视频一区二区三区…| 久久免费在线观看视频| 国产精品久久久久久久岛一牛影视| 五十路六十路七十路熟婆 | 精品少妇一区二区三区免费观 | 国产黄片一区二区三区| 国产suv精品一区二区883| 想看黄色一级片| 男女男精品网站| 国产福利一区视频| 亚欧美中日韩视频| 日韩中文字幕在线免费| 午夜国产精品视频| 公共露出暴露狂另类av| 9999国产精品| 亚洲va韩国va欧美va精四季| 五月天亚洲色图| 精品伦精品一区二区三区视频| 亚洲视频国产| 成人欧美一区二区| 亚洲日本va| 国产精品v欧美精品v日韩精品| 国产乱码精品一区二区三区亚洲人| 国产精品青青在线观看爽香蕉| 日本不卡一二三| 国产99久久精品一区二区永久免费| 桃色av一区二区| 欧美在线免费看| 欧美黑人巨大xxxxx| 日本精品视频在线| 中文不卡1区2区3区| 全球成人中文在线| av在线日韩| 国产精品爽黄69天堂a| 玖玖精品在线| 91久久久久久久久久| 精品午夜av| 翡翠波斯猫1977年美国| 国产精品高潮呻吟久久久久 | 日韩电影二区| 中文字幕色一区二区| 亚洲成人精品| 丰满的少妇愉情hd高清果冻传媒| 亚洲国产裸拍裸体视频在线观看乱了中文 | 精品国产国产综合精品| 亚洲人精品午夜| 久久久久久久9999| 欧美色道久久88综合亚洲精品| 国产午夜麻豆影院在线观看| 欧美日韩中字一区| av中文字幕观看| 日韩精品在线看| porn视频在线观看| 欧美成人黄色小视频| 182在线播放| 国产精品日日做人人爱| 欧美片网站免费| 久久精品国产第一区二区三区最新章节 | 99精品国自产在线| 91久久精品国产91久久性色| 88久久精品| 日韩精品另类天天更新| 亚州av乱码久久精品蜜桃 | 亚洲天堂av在线| 国产在线拍揄自揄视频不卡99| 日韩中文字幕视频网| 明星裸体视频一区二区| 99久久夜色精品国产亚洲1000部| 国产黄色激情视频| 久久影院亚洲| 日本wwwxx| 久久久av毛片精品| 免费在线视频观看| 欧美性猛交xxxx黑人交| 亚洲精品97久久中文字幕| 国产一级揄自揄精品视频| 色www永久免费视频首页在线| 日本久久久久久久久久久| 蜜桃在线一区| 亚洲电影免费| 亚洲激情偷拍| 精品人妻一区二区三| 久久久不卡网国产精品一区| 欧美三级在线免费观看| 在线看日本不卡| 少妇人妻精品一区二区三区| 久久精品中文字幕| 黑人巨大精品| 国产一区二区黄色| 亚洲一区二区三区| 午夜免费高清视频| 久久亚洲精品小早川怜子| 久草资源在线视频| 4438x亚洲最大成人网| 免费一级在线观看播放网址| 欧美激情第99页| 亚洲青青久久| 手机成人在线| 男女精品网站| 大乳护士喂奶hd| 亚洲综合丝袜美腿| 国产男女猛烈无遮挡| 这里只有精品丝袜| 国产精品高清乱码在线观看| 国产精品日本一区二区| 女同性一区二区三区人了人一| 五月婷婷狠狠操| 972aa.com艺术欧美| 18精品爽视频在线观看| 欧美一区二区不卡视频| 美女av在线播放| 国产中文字幕日韩| 日韩欧美1区| www.这里只有精品| 国产精品美女久久久久久2018| 日韩熟女一区二区| 亚洲天堂av图片| 国产精品高清乱码在线观看| 欧美高清一区二区| 视频在线观看91| av男人的天堂av| 欧美天堂一区二区三区| 国产鲁鲁视频在线观看免费| 国产精品xxx视频| 国精一区二区| 男人添女人下面免费视频| 中文字幕欧美激情| 中文字幕一区二区人妻痴汉电车| 有码中文亚洲精品| 日韩电影免费观看高清完整版在线观看| 亚洲精品影院| 久久99国产精品尤物| 天天看天天摸天天操| 欧美一区二区在线免费观看| av毛片在线免费| 国产伦精品一区二区三区免费视频 | 欧美激情在线精品一区二区三区| 日韩中文字幕免费在线 | 精品少妇一二三区| 亚洲电影免费观看高清| 麻豆蜜桃在线观看| 欧美一进一出视频| 久久66热re国产| 九九热这里有精品视频| 亚洲精品一区二区三区在线观看| 多野结衣av一区| 欧美一区二区影视| 麻豆精品蜜桃视频网站| 日韩影院一区二区| 亚洲精品第一国产综合精品| 成人免费影院| 一本一道久久久a久久久精品91| 国产乱人伦偷精品视频免下载| 久久国产露脸精品国产| 精品亚洲精品福利线在观看| 欧美日韩在线精品一区二区三区激情综合| 午夜精品福利一区二区| 国产成人综合网站| 五月婷婷视频在线| 最近2019中文免费高清视频观看www99| 欧美一区在线观看视频| 中文字幕无码精品亚洲35| 中文一区一区三区高中清不卡| 国产女人高潮时对白| 97超级碰在线看视频免费在线看| 欧美色爱综合| 日批视频免费看| 欧美专区在线观看一区| 青青草视频在线免费直播| 免费观看成人高| 国产精品91xxx| 精产国品一区二区| 欧美国产中文字幕| 日韩电影在线视频| 免费看毛片的网站| 欧美日韩国产小视频在线观看| av在线网页| 一区二区三区视频在线播放| 97精品视频在线观看自产线路二| 国产一区二区三区视频免费观看| 26uuu另类亚洲欧美日本老年|