Java geliştirme süreci genellikle özel bir değişken, günlükçü veya çekirdek belirtme gibi sabit bir formatta kod yazmalıdır. Bu tür küçük ölçekli kod üretimi için, IDEA tarafından sağlanan Canlı Şablonlar işlevini kullanabiliriz. İlk başta bunun basit bir Kod Parçacığı olduğunu düşündüm, ancak daha sonra değişken işlev yapılandırmasını desteklediğini ve çok karmaşık kod üretimini destekleyebileceğini keşfettim.
Canlı Şablonların kullanımını tanıtmama izin verin.
IDEA, yaygın olarak kullanılan birçok dinamik şablonla birlikte gelir, Java koduna fori girin ve satır başı görünecektir.
için (inti = 0; i < ; i ++) { }Her bir boşluğa atlamak ve değeri manuel olarak doldurmak için Sekme tuşuna basın.
Sonuçta, resmi yerleşik şablonlar kişisel kodlama stilimizin ihtiyaçlarını karşılayamaz.Canlı Şablonlar, özelleştirmemiz için değişken işlevler sağlar.
Özel bir şablon eklemek için, önce tetikleyici kelimeyi (yani Kısaltma) doldurmanız gerekir, açıklama isteğe bağlıdır ve ardından şablonun bağlamını tanımlayın, Java'yı seçmek için tanımla'yı tıklayın, böylece Java düzenlenirken geçerli şablon tetiklenir. Bağlamı tanımladıktan sonra, Şablonu doldurabilirsiniz.
İşte sık kullandığım birkaç basit şablon
========== < dışarı > ---------- System.out.println ($ END $) ========== < pfs > ---------- privatefinalstaticString $ varName $ = "$ var $"; ` ========== < privateField > ---------- / ** * YORUM $ * / @Getter @ Ayarlayıcı özel $ TYPE $$ NAME $; ========== < ana > ---------- publicstaticvoidmain (Stringargs) { $ END $ } ==========Şablon, bir değişkeni temsil etmek için $$ ile çevrili karakterleri kullanarak değişkenlerin tanımını destekler. $ END $, imlecin son atlama konumunu temsil eden önceden tanımlanmış özel bir değişkendir. Her değişkenin konumu üzerinden atlanabilir.
Vim'in Code Sinppet eklentisini kullandıysanız, şablonda işlevlerin çalıştırılabileceğini göreceksiniz.Elbette, güçlü Canlı Şablonlar da bunu destekliyor ve IDEA, şu anda düzenlenen işlevin parametreleri gibi kodun anlamını algılayabilir. Ama bu oyun oynamamıza izin verecek. Şablon işlevlerinin işlevini kolaydan zora inceleyelim.
Daha önce bahsettiğimiz değişkenler işlevlere bağlanabilir ve yapılandırma yöntemi yukarıdaki şekilde gösterilmiştir.
Değişkenleri hızlıca bildirin
Değişkenleri bildirmek, özellikle açıklama eklenmesi gereken değişkenleri bildirmeniz gerektiğinde yaygın bir işlemdir.Yorum yaptığınızda, bu kodları yazmak çok sıkıcıdır. İşte tanımladığım şablon:
< osgiRef > ---------- / ** * END $ * / @OsgiReference @ Ayarlayıcı özel $ TYPE $$ NAME $;İlk bakışta, bu şablon yukarıda tanımladığım privateField'a benziyor.Tek fark, fonksiyonları bu değişkenlere bağlamam.
Aşağıda gösterelim, önce mevcut sınıf adını kopyalayıp ardından osgiRef'e giriyoruz
Hızlı bir şekilde kaydediciyi bildirin
Günlükçü bildirmek de yaygın bir işlemdir.Yukarıda, değişkenleri hızlı bir şekilde bildirmek için yapıştır işlevini kullandık. Şimdi başka bir sınıfAdı () işlevini kullanacağız.Adından da anlaşılacağı gibi, işlevi geçerli sınıf adını döndürmektir.
< ağaç kesicisi > ---------- /**ağaç kesicisi*/ privatestaticfinalLoggerLOGGER = LoggerFactory.getLogger ($ CLASS $ .class);Yukarıda kullanılan işlevler sınırlı yetenekler sağlıyorsa ve yeterince esnek değilse, groovyScript (), istediğiniz tüm yetenekleri sağlar.Girişi işlemek için Groovy komut dosyalarının çalıştırılmasını destekler ve ardından işlenen dizeyi çıkarır.
groovyScript ("kod"; ...) | kod | Bir Groovy kod parçası veya Groovy komut dosyası kodu mutlak yol | | ... | İsteğe bağlı parametreler, bu parametreler Groovy kodunda kullanılan "_1, _2, _3, ..._ n" 'ye bağlanacaktır. |Pratik uygulamasına bir göz atalım.
Hızlı fasulye yapılandırması
Yeni bir hizmet eklemek için, Spring'e bir bean kaydetmelisiniz. Genel olarak, bu konfigürasyon, id ve sınıfı belirlemekten başka bir şey değildir. Xml'de konfigüre ettiğimiz için, className () fonksiyonunu kullanamayız, ancak onu elde etmek için clipboard () fonksiyonunu kullanabiliriz. Sınıfın tam referansı için, IDEA'da, sınıf adına doğrudan sağ tıklayıp Referansı Kopyala'ya tıklıyoruz. Ardından sınıf adını almak için harika betiği yürütün.
< fasulye > ---------- < beanid = "$ id $" class = "$ REF $" / >id bind decapitalize (groovyScript ("_ 1.tokenize ('.')", clipboard ())), önce sınıfın tam referansını almak için clipboard () değerini alın ve ardından groovy code_1.tokenize ('.') (Tuşuna basın. Bir dize dizisine bölmek ve ardından sınıf adını almak için sonuncuyu almak ve ardından kimliği almak için ilk harfi küçük harfle yazmak için decapitalize () kullanın.
Mevcut bağlam bilgilerini hızlı bir şekilde yazdırın
Hata günlüğünü yazdırırken, giriş parametreleri gibi mevcut bağlam bilgilerini yazdırmanız gerekir.Bazen çok fazla parametre olduğunda yazmak zordur.Neyse ki, mevcut fonksiyon parametrelerinin bir listesini döndüren bir şablon function methodParameters () vardır. Tabii ki, bu liste biziz Doğrudan kullanılamaz, groovyScript ile dönüştürülmesi gerekir.
< printContext > --------------- LogUtil. $ TYPE $ (LOGGER, "$ MSG $" + $ parametreler $);Parametreleri groovyScript'e ("'\"' + _1.collect {it + '='}. Join (',') + '\ "'", methodParameters ()) bağlayın, ardından mevcut fonksiyonun parametreleri otomatik olarak yapılabilir Biçimlendirmeden sonra çıktı.
Yukarıda yaygın olarak kullanılan şablon işlevlerini kısaca tanıttık. Aslında, IDEA'da başka birçok şablon işlevi vardır. Bkz. Şablon Değişkenleri Oluşturma ve Düzenleme .