Több üzleti elemző/rendszerszervező által használt eszközben is megjelenik a szkriptelhetőség groovy nyelven (pl. ODI, SoapUi, ..).
A hatékony munkavégzés miatt elengedhetetlen megismerkedni vele.
Néhány elemző szoftver ingyenes verziója nem tartalmaz egy sor kényelmi használat funkciót, de a szkriptélhetőség lehetőségével és szakértelemmel a hatékonyság és használat konform érzete nagyon megnövelhető
Csak csomagold ki egy program könyvtárba.
Ennek a könyvtárnak az elérési útját állítsd be GROOVY_HOME környezeti változónak.
A PATH környezeti változót bővítsd ki a %GROOVY_HOME%/bin bejegyzéssel.
- Indítható a parancs értelmező:
c:\prg\groovy\bin\groovy.bat
- Vagy a groovy konzol:
c:\prg\groovy\bin\groovyConsole.bat
groovyc Hello.groovy
--
groovyc *.groovy *.java
java -cp %GROOVY_HOME%/embeddable/groovy-all-2.0.0.jar;. kl_class "Kecskemeti Lajos"
--
javac kl_minta.java // java-ban mindig fordítani kell
java kl_minta
Book = new Book ( id: 1, title: "Lajos Groovy mintája")
java.util.*, java.lang.*, java.net.*, java.io.*, groovy.lang.*, and groovy.util.*.
,java.util.regex.*, java.math.BigDecimal, java.math.BigInteger
def list = [1, 2, 'x'] // list of 3 elements
assert list.size() == 3
def builder = new groovy.xml.MarkupBuilder()
builder.employee {
name 'Kecskeméti Lajos'
gender 'male'
}
def name = "Dani"
def printClosure = { println "Hello, ${name}" }
printClosure()
name = "Tomi"
printClosure()
String.metaClass.firstUpper = { -> return delegate[0].toUpperCase() + delegate[1..delegate.length() - 1] }
println "iiii".firstUpper()
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
def result = slurper.parseText('{"person":{"name":"Kecskeméti Lajos","age":40,"cars":["bmw","ford"]}}')
println result.person.name
println result.person.age
println result.person.cars.size()
println result.person.cars[0]
println result.person.cars[1]
authors = [ 'Kecskeméti', 'Lajos', 'Dani', 'Tomi' ]
println authors
println authors[0]
println(2 + 2 )
println(2.plus(2))
println ("hello");
println "hello"
def lastName = "Lajos"
def fullname = "Kecskeméti ${lastName} " // string interpolation (also called Gstring)
println fullname
def var = 10 //dinamikus
var = "It's a String"
--
String s1 = " A String " // statikus
s2 = "Another String "
import groovy.transform.CompileStatic
@CompileStatic
int doubleIt(int num) {
2* num
}
assert doubleIt(2) == 4
class Employee{
String name
}
Employee emp = new Employee()
emp.setName("John Doe" )
println emp.name
public class Todo {
String name
String note
}
// public static void main(String[] args) { // -- elhagyható !!--
def todos = [ new Todo(name:"1", note:"one"), new Todo(name:"2", note:"two"), new Todo(name:"3", note:"three") ]
todos.each {
println "${it.name} ${it.note}"
} //each
// } //main
//}
---- Várakoztatás
Thread.sleep(1000) // várakozás
print "Hello!"
println 'Hello World!'
--
Map map = { 1 : "Bill", 2 : "Doug", 3 : "Bev" }
---// összes txt file melynek a tartalmában benne van a Hello szövegrész
println new File('.').files.findAll{ it.name.endsWith('.txt') && it.text.contains('Hello')}.collect{ it.name }
-- //könyvtárat listáz
// C:\Users\kecskemetil\Documents\kl_p\prg\groovy-2.5.2\bin\minta
dh = new File('../minta')
dh.eachFileRecurse {
println it
}
--- könyvtárat listáz teljes eléréi uttal
class FileExample {
static void main(String[] args) {
new File("../minta").eachFile() {
file->println file.getAbsolutePath()
}
}
}
----- Kiíratások
package com.apress.bgg;
public class Todo {
String name
String note
public static void main(String[] args) {
def todos = [ new Todo(name:"1", note:"one"), new Todo(name:"2", note:"two"), new Todo(name:"3", note:"three") ] // ArrayList jelőlésesére : []
todos.each {
println "${it.name} ${it.note}"
} //each
} //main
}
------A rövidítések feloldása:
Command Line Interface (CLI)
- a futtatás
- és a képernyő törlés
A hatékony munkavégzés miatt elengedhetetlen megismerkedni vele.
Néhány elemző szoftver ingyenes verziója nem tartalmaz egy sor kényelmi használat funkciót, de a szkriptélhetőség lehetőségével és szakértelemmel a hatékonyság és használat konform érzete nagyon megnövelhető
Az ismerkedés kezdjük ott, hogy felfogható úgy mit egy speciális java nyelv amely egy csomó könnyítést egyszerűsítést tartalmaz ami miatt nagyon hatékony munka válik lehetővé a használatával.
Egyszerű telepítés:
Csak csomagold ki egy program könyvtárba.
Ennek a könyvtárnak az elérési útját állítsd be GROOVY_HOME környezeti változónak.
A PATH környezeti változót bővítsd ki a %GROOVY_HOME%/bin bejegyzéssel.
- Indítható a parancs értelmező:
c:\prg\groovy\bin\groovy.bat
- Vagy a groovy konzol:
c:\prg\groovy\bin\groovyConsole.bat
Egyszerű fordítás
groovyc Hello.groovy
--
groovyc *.groovy *.java
Egyszerű futtatás,
java -cp %GROOVY_HOME%/embeddable/groovy-all-2.0.0.jar;. kl_class "Kecskemeti Lajos"
Akár egy lépésbe futtatható
groovy kl_minta.groovy--
javac kl_minta.java // java-ban mindig fordítani kell
java kl_minta
Javanál rövidebb összevont kód
Book = new Book ( id: 1, title: "Lajos Groovy mintája")
Automatikus implicid includ-olás
java.util.*, java.lang.*, java.net.*, java.io.*, groovy.lang.*, and groovy.util.*.
,java.util.regex.*, java.math.BigDecimal, java.math.BigInteger
Az érvényesítés használata minden típusnál
def list = [1, 2, 'x'] // list of 3 elements
assert list.size() == 3
A built-in builder használata
def builder = new groovy.xml.MarkupBuilder()
builder.employee {
name 'Kecskeméti Lajos'
gender 'male'
}
A closure-k használata, nevesített változó újra használata
def name = "Dani"
def printClosure = { println "Hello, ${name}" }
printClosure()
name = "Tomi"
printClosure()
A fejlett metaprogramozás
String.metaClass.firstUpper = { -> return delegate[0].toUpperCase() + delegate[1..delegate.length() - 1] }
println "iiii".firstUpper()
Azonnali json formátum támogatás
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
def result = slurper.parseText('{"person":{"name":"Kecskeméti Lajos","age":40,"cars":["bmw","ford"]}}')
println result.person.name
println result.person.age
println result.person.cars.size()
println result.person.cars[0]
println result.person.cars[1]
A Lists és Maps használat támogatása
authors = [ 'Kecskeméti', 'Lajos', 'Dani', 'Tomi' ]
println authors
println authors[0]
Minden változó objektum is egyben (nem kell boxing és unboxing)
println(2 + 2 )
println(2.plus(2))
Zárójelezés és pontosvesszőzés elhagyható
println ("hello");
println "hello"
A szövegek interpolációjának támogatása
def lastName = "Lajos"
def fullname = "Kecskeméti ${lastName} " // string interpolation (also called Gstring)
println fullname
Statikus és dinamikus típus kezelés
def var = 10 //dinamikus
var = "It's a String"
--
String s1 = " A String " // statikus
s2 = "Another String "
A statikus Byte kód generálás támogatása
import groovy.transform.CompileStatic
@CompileStatic
int doubleIt(int num) {
2* num
}
assert doubleIt(2) == 4
A getter és setter használat támogatása
class Employee{
String name
}
Employee emp = new Employee()
emp.setName("John Doe" )
println emp.name
MAIN metódus elhagyható
package kl;public class Todo {
String name
String note
}
// public static void main(String[] args) { // -- elhagyható !!--
def todos = [ new Todo(name:"1", note:"one"), new Todo(name:"2", note:"two"), new Todo(name:"3", note:"three") ]
todos.each {
println "${it.name} ${it.note}"
} //each
// } //main
//}
Néhány minta
---- Várakoztatás
Thread.sleep(1000) // várakozás
print "Hello!"
println 'Hello World!'
--
Map map = { 1 : "Bill", 2 : "Doug", 3 : "Bev" }
---// összes txt file melynek a tartalmában benne van a Hello szövegrész
println new File('.').files.findAll{ it.name.endsWith('.txt') && it.text.contains('Hello')}.collect{ it.name }
-- //könyvtárat listáz
// C:\Users\kecskemetil\Documents\kl_p\prg\groovy-2.5.2\bin\minta
dh = new File('../minta')
dh.eachFileRecurse {
println it
}
--- könyvtárat listáz teljes eléréi uttal
class FileExample {
static void main(String[] args) {
new File("../minta").eachFile() {
file->println file.getAbsolutePath()
}
}
}
----- Kiíratások
package com.apress.bgg;
public class Todo {
String name
String note
public static void main(String[] args) {
def todos = [ new Todo(name:"1", note:"one"), new Todo(name:"2", note:"two"), new Todo(name:"3", note:"three") ] // ArrayList jelőlésesére : []
todos.each {
println "${it.name} ${it.note}"
} //each
} //main
}
------A rövidítések feloldása:
Command Line Interface (CLI)
Groovy consol ablak két legfontosabb gombja
- a futtatás- és a képernyő törlés
Megjegyzések
Megjegyzés küldése