読者です 読者をやめる 読者になる 読者になる

Spring-On-Rails

dev

spring-on-rails - Google Code
データベーステーブルとJavaクラスのマッピング定義(XML)を書くだけで、CRUDを行うWebアプリケーションを自動生成してくれるというもの。既存のデータベーステーブルが存在することが前提です。
内部的にはSpring/Hibernate/iBatis/Maven/Antなどを使っているそうです。
マッピングの定義はこんな感じ:

<?xml version="1.0" encoding="UTF-8"?>
<map
   xmlns="http://www.asksunny.com"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.asksunny.com typeMap.xsd">
  <entity javaName="Employee" tableName="Employee">
    <property javaName="ssn" columnName="ssn"
       allowNull="false" primaryKey="true"
       javaType="string" sqlType="CHAR(11)"/>
    <property javaName="firstName" columnName="First_Name"
       allowNull="false"
       javaType="String" sqlType="VARCHAR2" length="64"/>
    <property javaName="lastName" columnName="Last_Name"
       allowNull="false"
       javaType="String" sqlType="VARCHAR2" length="64"/>
  </entity>
</map>

あとはAntのタスク定義を修正して、Antでビルド->mvn jetty:runすればOK。
面白いアプローチだとは思いますが、"Rails"の冠を頂くにはまだ工夫が足りないかなぁという気がします。
特に、http://code.google.com/p/spring-on-rails/wiki/EntityMapping を見ると、XML定義ファイルの中に

<meta><![CDATA[
    controllerType=multiple
    ormType=hibernate
    springVersion=2
    jeeVersion=4
]]></meta>

とか、

<methods><![CDATA[
    //Addition methods to add to PoJo class.
    public void doSomething(){
        //We have nothing to do here;
    }
    public String returnAfterMessage(){
        return serverId + " >>" + serverName;
    }
]]></methods>

てな感じでJavaコードフラグメントが混入してるあたり、時代遅れ感が否めません。ここは素直にDSLを定義した方がいいのではないかと思います。
強いて言うなら、完全にJava/Springに閉じた世界で開発ができることがメリット、ということになるのでしょうか。