Javaの簡易フレームワークを作っていて、コードジェネレータの機能が欲しいと思い、
調べてみると「Velocity」というものが出てきたので、それを使うことにする。
よくあるのは、HTMLの出力をVelocityを使って出す、ってのがあるみたいだけど、それをJavaコードにするイメージ。
テンプレート作成
template1.vlc
Hello, ${name}!
テンプレートをマージするJavaコード
HelloVelocity.java
import java.io.StringWriter;
import java.io.Writer;import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
public class HelloVelocity {
public static void main(String[] args) throws Exception {Velocity.init();
VelocityContext vContext = new VelocityContext();
vContext.put("name", "Velocity");Template template = Velocity.getTemplate(
"./res/template1.vlc", "UTF-8");Writer _writer = new StringWriter();
template.merge(vContext, _writer);System.out.println(_writer.toString());
_writer.close();
return;
}
}
実行
Hello, Velocity!
これで何でもできる気がしてきた。