使用Spring Boot和Doma进行”新”超敏捷的Web开发
首先
Seasar2的许多Java产品,
尤其是SAStruts、S2JDBC和S2DAO将于2016年9月26日停止维护,
因此,在今后使用Java创建Web应用程序时,应该使用哪个框架。
从我调查的情况来看,如果想要实现与Seasar2类似的开发效果,最好选择Spring Boot + Doma。
所以,这些相关的备忘录。(将随时添加修订)
搭建开发环境
-
- JDK
这里使用JDK 8。
从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载并安装。
Spring Tool Suite(以下简称STS)
是在Eclipse中捆绑了用于Spring开发的插件集合。
这里使用版本3.8.1。
从http://spring.io/tools/sts下载并安装。
Doma Tools(Eclipse插件)
有Doma1和Doma2,但这里使用的是Doma2。
在STS启动后,通过[Install New Software]从http://dl.bintray.com/domaframework/eclipse/安装。
Buildship Gradle Integration(Eclipse插件)
在STS启动后,通过[Eclipse Marketplace]安装。
还有一个名为Gradle IDE Pack的选项,但据说明,它将被废弃,因此在这里使用Buildship Gradle Integration。
项目创建和设置
-
- 启动STS。
-
- 创建项目。
选择[文件]-[新建]-[Spring Starter项目]。
按照以下指定创建项目。
[名称]:Example
[类型]:Gradle(Buildship)
[打包方式]:Jar
[Java 版本]:1.8
[语言]:Java
[Spring Boot 版本]:1.4.1 (SNAPSHOT)
[依赖]:
Web
DevTools
Tymeleaf
MySQL
其他:保持默认设置
编辑build.gradle文件。
重点:
将输出的Java类和SQL文件的输出目录设置为相同。
processResources.destinationDir = compileJava.destinationDir
为了在编译之前将SQL文件复制到输出目录,反转依赖关系。
compileJava.dependsOn processResources
添加Doma相关的Maven库和依赖关系。
https://oss.sonatype.org/content/repositories/snapshots/
compile(‘org.seasar.doma.boot:doma-spring-boot-starter:1.1.0’)
domaGenRuntime(‘org.seasar.doma:doma-gen:2.12.1’)
创建domGen任务。
配置示例:
https://gist.github.com/cacarrot/7bfa164511f1b461605c686d43446c22
配置项目。
获取Doma库并存储在项目的/lib文件夹中。
根据在build.gradle中设置的依赖关系,应该会下载到以下路径。将其复制并存储。
~/.gradle/caches/modules-2/files-2.1/org.seasar.doma/doma/2.12.0/df98f42d23e149ff699c0ccd2a0997e974a55a14/doma-2.12.0.jar
打开创建的项目的属性。
在[Java编译器]-[注解处理]中指定以下内容。
[启用项目特定设置]:勾选
其他:保持默认设置
在[Java编译器]-[注解处理]-[工厂路径]中指定以下内容。
[启用项目特定设置]:勾选
使用[添加JAR文件]添加Doma库
{项目名称}/lib/doma-2.12.0.jar
其他:保持默认设置
通过Doma-Gen的DAO和Entity自动生成
-
- 在事前通过STS的[Window]-[Show View]菜单中显示[Gradle Tasks]视图。
-
- 在[Gradle Tasks]视图中右击项目,选择[Create Gradle Run Configuration]。
-
- 填写以下内容后点击OK。
名称:随意的名称(例如:Example – domaGen)
Gradle Tasks:domaGen(在build.gradle中定义的任务名称)
运行保存的配置后,Doma-Gen将开始执行,自动生成DAO和Entity(在源代码文件夹下),以及SQL文件(在META-INF文件夹下)。
Spring Boot和Doma的合作
-
- ポイント
doma-spring-boot-starterの設定を利用するには、Doma-Genで生成したDAOに @ConfigAutowireableアノテーションの付与が必要。
org.seasar.doma.boot.ConfigAutowireable
application.ymlの設定には最低限以下が必要
doma.dialect
spring.datasource.url
spring.datasource.username
spring.datasource.password
spring.datasource.driver-class-name
请参考以下网址。
Doma関連
http://doma.readthedocs.io/ja/stable/
http://doma-gen.readthedocs.io/ja/stable/
Spring Boot関連
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/
http://jsug-spring-boot-handson.readthedocs.io/en/latest/index.html