제목이 좀 그렇긴 한데 정확하게 쓰자면 "groovy 로 작성한 코드를 java애플리케이션에서 사용하기" 가 될 것 같습니다. JVM위에서 돌아가는 많은 언어가 나왔습니다. 예를 들면 groovy, JRuby, Jython 등등 많죠. JVM에서 돌아가기때문에 즉 JVM이 그 각각의 코드를 알아볼수 있다면 당연히 java애플리케이션에서 사용할 수 있으리라는 짐작이 갑니다. 그래서 한번 해봤습니다. ^^
# groovy 코드(builder를 이용해서 XML생성)
groovyc 명령어를 통해 컴파일을 합니다. 그럼 당연히 openframework.groovy 패키지 아래 XMLBuilder.class라는 파일이 생성됩니다. 실제로는 아래처럼 다양한 클래스 파일이 생성됩니다.
무려 4개나 생성되네요. ^^
자바코드를 만들어봅니다.
# java 코드(groovy코드를 통해 xml을 생성)
# 결과물
순수 자바에 비하면 좀더 간단하게 기능을 구현할 수 있는 방법은 JVM위에 돌아가는 많은 스크립트 언어가 아닐까 하는 생각으로 테스트 해봤습니다. 단점도 있겠죠..?? 유지보수라고 할수도 있겠지만. 글쎄요.. ^^
다양한 생각을 해보고 싶어서 해본 테스트 결과였습니다.
# groovy 코드(builder를 이용해서 XML생성)
package openframework.groovy
import groovy.xml.*
import java.io.*
class XMLBuilder{
def getXML() {
def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
def friendnames = [ "Julie", "Joey", "Hannah"]
builder.person() {
name(first:"Megan", last:"Smith") {
age("33")
gender("female")
}
friends() {
for (e in friendnames) { friend(e) }
}
}
return writer.toString()
}
}
import groovy.xml.*
import java.io.*
class XMLBuilder{
def getXML() {
def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
def friendnames = [ "Julie", "Joey", "Hannah"]
builder.person() {
name(first:"Megan", last:"Smith") {
age("33")
gender("female")
}
friends() {
for (e in friendnames) { friend(e) }
}
}
return writer.toString()
}
}
groovyc 명령어를 통해 컴파일을 합니다. 그럼 당연히 openframework.groovy 패키지 아래 XMLBuilder.class라는 파일이 생성됩니다. 실제로는 아래처럼 다양한 클래스 파일이 생성됩니다.
무려 4개나 생성되네요. ^^
자바코드를 만들어봅니다.
# java 코드(groovy코드를 통해 xml을 생성)
package openframework;
import openframework.groovy.XMLBuilder;
public class Test {
public static void main(String[] args) {
XMLBuilder builder = new XMLBuilder();
System.out.println(builder.getXML());
}
}
import openframework.groovy.XMLBuilder;
public class Test {
public static void main(String[] args) {
XMLBuilder builder = new XMLBuilder();
System.out.println(builder.getXML());
}
}
# 결과물
<person>
<name first='Megan' last='Smith'>
<age>33</age>
<gender>female</gender>
</name>
<friends>
<friend>Julie</friend>
<friend>Joey</friend>
<friend>Hannah</friend>
</friends>
</person>
<name first='Megan' last='Smith'>
<age>33</age>
<gender>female</gender>
</name>
<friends>
<friend>Julie</friend>
<friend>Joey</friend>
<friend>Hannah</friend>
</friends>
</person>
순수 자바에 비하면 좀더 간단하게 기능을 구현할 수 있는 방법은 JVM위에 돌아가는 많은 스크립트 언어가 아닐까 하는 생각으로 테스트 해봤습니다. 단점도 있겠죠..?? 유지보수라고 할수도 있겠지만. 글쎄요.. ^^
다양한 생각을 해보고 싶어서 해본 테스트 결과였습니다.
'자바' 카테고리의 다른 글
[Ant] Ant로 SVN 작업 처리하기 (0) | 2008.12.26 |
---|---|
[일상] 일요일 위키에 추가한 내용 (0) | 2008.12.21 |
[생각] 자바는 참 어려운 언어.. (17) | 2008.12.21 |
[JDK] JDK 7의 변경사항 (4) | 2008.12.20 |
[REST] jersey로 REST구현하기 (2) | 2008.12.16 |