- 浏览: 259869 次
- 性别:
- 来自: 新乡
文章分类
- 全部博客 (227)
- servciemix (10)
- db (18)
- javaTools (4)
- hibernate (31)
- web (3)
- spring (14)
- design pattern (4)
- java security (3)
- portal (1)
- ejb (6)
- session (2)
- java_lang (21)
- jbpm (29)
- struts (7)
- orgRights (2)
- project manager Jira (7)
- 跨库事务 (2)
- mysql (14)
- ubuntu (7)
- osgi (9)
- maven ant make (4)
- 分布式 高并发 高性能 (5)
- virgo-dm_server (0)
- osgi web (3)
- platform (1)
- smooks (1)
- business (1)
- 职场生涯 (14)
- Java编码格式 (2)
- web服务 (1)
- 计算机使用 (1)
- 健康工作生活的保障,工作中务必抛掉的不良心态 (4)
- 电信-网络监控 (1)
- 多线程-multithread (1)
- 海量数据-高性能 (2)
- Mybatis (1)
- web开发平台研发 (0)
- oracle (0)
- 应用服务器调优 (0)
- web前端 (0)
- servlet-jsp (0)
- tomcat (2)
- newtouch (1)
- portal_liferay (2)
- version control (1)
- apm-impact (2)
- tools (1)
- 研发管理 (1)
- 电商业务 (1)
- 生鲜电商市场调查 (0)
- PBX (0)
- 房东 (0)
最新评论
-
lifuchao:
...
权限问题 -
Branding:
谢谢,受教了,另外,CONN AS SYSDBA,必须是在操作 ...
Oracle密码忘记了怎么办? -
zhuchao_ko:
...
Portal实现原理 -
败类斯文:
不知道改哪里。。。木有见到红色。。表示悟性低了、、
jira error: Neither the JAVA_HOME nor the JRE_HOME environment variable is defin -
c__06:
正文:假如事务我是这样定义的: <tx:method n ...
Spring中Transactional配置
使用 Spring Roo 从零开始,一步步的创建一个简单的 Spring 程序。
SpringSource 刚刚发布最新版本 1.0.0m1 ,参见 Spring Roo 1.0.0.M1 Released。
相对之前的 alpha 2 ,这一版本中带来不少的新特性,下面发行说明中的罗列的新特性。
* Much easier installation
* 31% better performance
* Tomcat support (for embedded usage)
* JMS support (including ActiveMQ setup)
* Selenium support
* Email support
* Web Flow installation
* Additional samples
* Various other fixes and improvements
在 Spring Roo 提供完整的官方文档之前 ,SpringSource 网站博客上提供入门文章 便是不可多得的学习资料,我这里也是根据文章进行操作的。
从 SpringSource 网站上下载 Spring ROO 1.0.0 m1 ,解压到硬盘上。
将 <spring_roo_dir>/bin 加入到系统的PATH变量中。在 Linux 系统上,你可以直接创建一个链接到 ~/bin 或 /usr/bin/ 中。
ln -sf <spring_roo_dir>/bin/roo.sh /home/<user>/bin/roo
注意,之前的 alpha 中要求设置 ROO_HOME 环境变量,现在不需要了,请将其删除。
另外, Spring Roo 需要 Maven 支持,你必须安装一个 2.0.9 以上的版本,参考用Maven 构建项目。
下面就可以开始创建一个新的Spring 项目。
1. 创建一个项目。
[hantsy@localhost ~]$ mkdir roodemo
[hantsy@localhost ~]$ cd roodemo
[hantsy@localhost roodemo]$ roo
____ ____ ____
/ __ \/ __ \/ __ \
/ /_/ / / / / / / /
/ _, _/ /_/ / /_/ /
/_/ |_|\____/\____/ 1.0.0.M1 [rev 64]
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
任何时候你可以输入hint 来获得一些操作建议。
roo> hint
Welcome to Roo! We hope you enjoy your stay!
Before you can use many features of Roo, you need to start a new project.
To do this, type 'create project' (without the quotes) and then hit TAB.
Enter a -topLevelPackage like 'com.mycompany.projectname' (no quotes).
When you've finished completing your -topLevelPackage, press ENTER.
Your new project will then be created in the current working directory.
Note that Roo frequently allows the use of TAB, so press TAB regularly.
Once your project is created, type 'hint' and ENTER for the next suggestion.
You're also welcome to visit http://forum.springframework.org for Roo help.
roo> cre
这时按 Tab 键,你会发现 Spring Roo 会帮你自动补全命令 create project。
Linux 用户对 Tab 的使用再也熟悉不过了,在 Spring Roo 的命令行,你随时都使用 tab 来辅助命令的输入。
roo> create project
这里按下 enter ,会得到一条提示信息。
You must specify a default option (otherwise known as option 'topLevelPackage') for this command
指定一个 topLevelPackage 参数,它是项目的基础包名。再次提醒,这里你仍然可以 create project - 按 tab 来自动补全。
roo> create project -topLevelPackage roodemo
Created /home/hantsy/Projects/roodemo/pom.xml
Created SRC_MAIN_JAVA
Created SRC_MAIN_RESOURCES
Created SRC_TEST_JAVA
Created SRC_TEST_RESOURCES
Created SRC_MAIN_WEBAPP
Created SRC_MAIN_RESOURCES/applicationContext.xml
Created SRC_MAIN_WEBAPP/WEB-INF
Created SRC_MAIN_WEBAPP/WEB-INF/roodemo-servlet.xml
Created SRC_MAIN_WEBAPP/WEB-INF/web.xml
Created SRC_MAIN_WEBAPP/WEB-INF/jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/index.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/urlrewrite.xml
这里会生成一个标准 maven web 项目,目录结构如下。
.
|-- pom.xml
`-- src
|-- main
| |-- java
| |-- resources
| | `-- applicationContext.xml
| `-- webapp
| `-- WEB-INF
| |-- jsp
| | `-- index.jsp
| |-- roodemo-servlet.xml
| |-- urlrewrite.xml
| `-- web.xml
`-- test
|-- java
`-- resources
Spring Roo 已经帮你添加最基本的Spring 配置。
你可以把项目导入到eclipse进行编辑。
在项目根目录中运行 mvn eclipse:eclipse ,会生成 Eclipse 相关的特殊文件,如.classpath , .project等。
现在你可以像导入一个普通项目那样将这个项目导入到你的workspace中。
2. 设置数据库。
在持久层技术上选择,Roo 提供了多jpa实现的选择,和多种数据库选择。
这里如果输入hint,会得到以下信息。
roo> hint
Roo requires the installation of a JPA provider and associated database.
Type 'install jpa' and then hit TAB three times.
We suggest you type 'H' then TAB to complete "HIBERNATE".
After the -provider, press TAB twice for database choices.
For testing purposes, type (or TAB) HYPERSONIC_IN_MEMORY.
If you press TAB again, you'll see there are no more options.
As such, you're ready to press ENTER to execute the command.
Once JPA is installed, type 'hint' and ENTER for the next suggestion.
任何时候,不要忘记使用 hint 来获得提示。
roo> install jpa -
按 tab 可以看到所提供的参数选项。
install jpa -database install jpa -provider
输入 -p 按 tab 自动补全 -provider 。
roo> install jpa -provider
按 tab 可以看到几种可用的 jpa 实现。
ECLIPSELINK HIBERNATE OPENJPA
接着输入首字母 H 按tab,补全 HIBERNATE,再输入-d 按 tab,补全-database。
roo> install jpa -provider HIBERNATE -database
H2_IN_MEMORY HYPERSONIC_IN_MEMORY HYPERSONIC_PERSISTENT
MSSQL MYSQL ORACLE
POSTGRESQL SYBASE
最后输入MY 按 tab 选择MySQL 数据库。
roo> install jpa -provider HIBERNATE -database MYSQL
Created SRC_MAIN_RESOURCES/META-INF
Created SRC_MAIN_RESOURCES/META-INF/persistence.xml
Created SRC_MAIN_RESOURCES/database.properties
please enter your database details in src/main/resources/database.properties
Managed SRC_MAIN_RESOURCES/applicationContext.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
现在如果比较之前生成的代码,你会发现,Spring Roo 已经帮你在Spring配置文件 applicationContext.xml 中配置好了相应的数据库的 Data Source,并且生成了相的相应的数据库配置模板(src/main/resources/database.properties),在 pom.xml 文件中已经添加 jpa ,数据库驱动相关的依赖。
现在你可以查看默认生成的数据库配置。
roo> database properties
database.driverClassName = com.mysql.jdbc.Driver
database.password =
database.url = jdbc:mysql://localhost:3306
database.username =
你可以手动修改数据库配置,也可以在 Spring Roo 命令行中完成。
设置数据库用户名。
roo> database set -key database.username -value root
Managed SRC_MAIN_RESOURCES/database.properties
设置数据库密码。
roo> database set -key database.password -value root
Managed SRC_MAIN_RESOURCES/database.properties
设置数据库url连接地址。
roo> database set -key database.url -value jdbc:mysql://localhost:3306/posts?useUnicode=true&characterEncoding=UTF-8
Managed SRC_MAIN_RESOURCES/database.properties
在MySQL 数据库创建创建数据库posts,在Terminal 使用mysqladmin 命令,你也可以使用自己熟悉的 MySQL 客户端工具来完成。
mysqladmin create posts --default-character-set=utf8 -uroot -p
输入密码,一个posts数据库就创建好了。
现在我们回到 roo shell中,查看一下数据库配置。
roo> database properties
database.driverClassName = com.mysql.jdbc.Driver
database.password = root
database.url = jdbc:mysql://localhost:3306/posts?useUnicode=true&characterEncoding=UTF-8
database.username = root
所有的数据库配置选项已经修改了。
3. 创建 Domain Class
现在如果输入 hint ,可以看到以下信息。
roo> hint
You can create entities either via Roo or your IDE.
Using the Roo shell is fast and easy, especially thanks to the TAB completion.
Start by typing 'new p' and then hitting TAB twice.
Enter the -name in the form '~.domain.MyEntityClassName'
In Roo, '~' means the -topLevelPackage you specified via 'create project'.
Afer specify a -name argument, press SPACE then TAB. Note nothing appears.
Because nothing appears, it means you've entered all mandatory arguments.
However, optional arguments do exist for this command (and most others in Roo).
To see the optional arguments, type '-' and then hit TAB. Mostly you won't
need any optional arguments, but let's select the -testAutomatically option
and hit ENTER. You can always use this approach to view optional arguments.
After creating an entity, use 'hint' for the next suggestion.
创建一个 Post 类。
roo> new persistent class jpa -name ~.domain.Post -
按下 Tab ,你有三种选择,你可以创建一个抽象类,或者从其它类继承。
new persistent class jpa -name ~.domain.Post -abstract
new persistent class jpa -name ~.domain.Post -extends
new persistent class jpa -name ~.domain.Post -testAutomatically
这里输入 t 按 Tab 键选择 -testAutomatically 同时创建一个测试类。
roo> new persistent class jpa -name ~.domain.Post -testAutomatically
Created SRC_MAIN_JAVA/roodemo/domain
Created SRC_MAIN_JAVA/roodemo/domain/Post.java
Created SRC_TEST_JAVA/roodemo/domain
Created SRC_TEST_JAVA/roodemo/domain/PostDataOnDemand.java
Created SRC_TEST_JAVA/roodemo/domain/PostIntegrationTest.java
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_Plural.aj
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_Entity.aj
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_ToString.aj
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_Configurable.aj
Created SRC_TEST_JAVA/roodemo/domain/PostIntegrationTest_Roo_Configurable.aj
Created SRC_TEST_JAVA/roodemo/domain/PostDataOnDemand_Roo_DataOnDemand.aj
Created SRC_TEST_JAVA/roodemo/domain/PostIntegrationTest_Roo_IntegrationTest.aj
Created SRC_TEST_JAVA/roodemo/domain/PostDataOnDemand_Roo_Configurable.aj
这里 ~ 代表创建项目指定的 topLevelPackage 值。所有的 .aj 文件都是 AspectJ 文件 ,对于不熟悉AspectJ 的人来讲,可能对生成的代码有些令人费解。
不过,我们完全没有必要关心 .aj 的内容,可以以此为基础添加自己的代码。
下面往 Post 中添加一些字段,这里全部略去了Roo shell 的输出。
roo> add field string -fieldName title -notNull -sizeMax 200
roo> add field string -fieldName content -notNull -sizeMax 2000
roo> add field date jpa -fieldName createdDate -type java.util.Date
roo> add field date jpa -fieldName modifiedDate -type java.util.Date
创建另外一个类 Comment。
roo> new persistent class jpa -name ~.domain.Comment -testAutomatically
roo> add field string -fieldName name -notNull -sizeMax 200
roo> add field string -fieldName email -notNull -sizeMax 50
roo> add field string -fieldName content
roo> add field string -fieldName url
roo> add field date jpa -fieldName createdDate -type java.util.Date
添加关联关系。
roo> add field set jpa -fieldName comments -element ~.domain.Comment -class ~.domain.Post -mappedBy post
roo> add field reference jpa -fieldName post -type ~.domain.Post -class ~.domain.Comment
如果细心的话你可以注意,这里我们指定了一个 -class 参数,在默认情况下,不添加 -class 参数会修改刚刚创建类,而这里通过 -class 参数可以指定将内容添加到哪个类中。
4. 创建 Web Controller类
Spring 可以为我们生成最基本的CURD页面。
roo> new controller automatic -formBackingObject roodemo.domain.Post -name roode roodemo.web.PostController
Created SRC_MAIN_JAVA/roodemo/web
Created SRC_MAIN_JAVA/roodemo/web/PostController.java
Created SRC_MAIN_JAVA/roodemo/domain/CommentEditor.java
Created SRC_MAIN_JAVA/roodemo/web/PostController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP/images
Created SRC_MAIN_WEBAPP/images/banner-graphic.png
Created SRC_MAIN_WEBAPP/images/springsource-logo.png
Created SRC_MAIN_WEBAPP/images/list.png
Created SRC_MAIN_WEBAPP/images/show.png
Created SRC_MAIN_WEBAPP/images/create.png
Created SRC_MAIN_WEBAPP/images/update.png
Created SRC_MAIN_WEBAPP/images/delete.png
Created SRC_MAIN_WEBAPP/styles
Created SRC_MAIN_WEBAPP/styles/roo.css
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/header.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/footer.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/includes.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/dataAccessFailure.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/uncaughtException.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/list.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/show.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/create.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/update.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/menu.jsp
Managed SRC_MAIN_WEBAPP/WEB-INF/jsp/menu.jsp
Created SRC_MAIN_JAVA/roodemo/domain/CommentEditor_Roo_Editor.aj
roo> new controller automatic -formBackingObject ~.domain.Comment -name ~.web.CommentController
Created SRC_MAIN_JAVA/roodemo/web/CommentController.java
Created SRC_MAIN_JAVA/roodemo/domain/PostEditor.java
Created SRC_MAIN_JAVA/roodemo/web/CommentController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/list.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/show.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/create.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/update.jsp
Managed SRC_MAIN_WEBAPP/WEB-INF/jsp/menu.jsp
Created SRC_MAIN_JAVA/roodemo/domain/PostEditor_Roo_Editor.aj
5. 运行程序
退出roo shell,在项目根目录中运行 mvn tomcat:run ,以嵌入式方式运行 tomcat。
浏览器打开 http://localhost:8080/ 。
接下的一些博文会关注如何添加一些其它功能,如安全,邮件等。
SpringSource 刚刚发布最新版本 1.0.0m1 ,参见 Spring Roo 1.0.0.M1 Released。
相对之前的 alpha 2 ,这一版本中带来不少的新特性,下面发行说明中的罗列的新特性。
* Much easier installation
* 31% better performance
* Tomcat support (for embedded usage)
* JMS support (including ActiveMQ setup)
* Selenium support
* Email support
* Web Flow installation
* Additional samples
* Various other fixes and improvements
在 Spring Roo 提供完整的官方文档之前 ,SpringSource 网站博客上提供入门文章 便是不可多得的学习资料,我这里也是根据文章进行操作的。
从 SpringSource 网站上下载 Spring ROO 1.0.0 m1 ,解压到硬盘上。
将 <spring_roo_dir>/bin 加入到系统的PATH变量中。在 Linux 系统上,你可以直接创建一个链接到 ~/bin 或 /usr/bin/ 中。
ln -sf <spring_roo_dir>/bin/roo.sh /home/<user>/bin/roo
注意,之前的 alpha 中要求设置 ROO_HOME 环境变量,现在不需要了,请将其删除。
另外, Spring Roo 需要 Maven 支持,你必须安装一个 2.0.9 以上的版本,参考用Maven 构建项目。
下面就可以开始创建一个新的Spring 项目。
1. 创建一个项目。
[hantsy@localhost ~]$ mkdir roodemo
[hantsy@localhost ~]$ cd roodemo
[hantsy@localhost roodemo]$ roo
____ ____ ____
/ __ \/ __ \/ __ \
/ /_/ / / / / / / /
/ _, _/ /_/ / /_/ /
/_/ |_|\____/\____/ 1.0.0.M1 [rev 64]
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
任何时候你可以输入hint 来获得一些操作建议。
roo> hint
Welcome to Roo! We hope you enjoy your stay!
Before you can use many features of Roo, you need to start a new project.
To do this, type 'create project' (without the quotes) and then hit TAB.
Enter a -topLevelPackage like 'com.mycompany.projectname' (no quotes).
When you've finished completing your -topLevelPackage, press ENTER.
Your new project will then be created in the current working directory.
Note that Roo frequently allows the use of TAB, so press TAB regularly.
Once your project is created, type 'hint' and ENTER for the next suggestion.
You're also welcome to visit http://forum.springframework.org for Roo help.
roo> cre
这时按 Tab 键,你会发现 Spring Roo 会帮你自动补全命令 create project。
Linux 用户对 Tab 的使用再也熟悉不过了,在 Spring Roo 的命令行,你随时都使用 tab 来辅助命令的输入。
roo> create project
这里按下 enter ,会得到一条提示信息。
You must specify a default option (otherwise known as option 'topLevelPackage') for this command
指定一个 topLevelPackage 参数,它是项目的基础包名。再次提醒,这里你仍然可以 create project - 按 tab 来自动补全。
roo> create project -topLevelPackage roodemo
Created /home/hantsy/Projects/roodemo/pom.xml
Created SRC_MAIN_JAVA
Created SRC_MAIN_RESOURCES
Created SRC_TEST_JAVA
Created SRC_TEST_RESOURCES
Created SRC_MAIN_WEBAPP
Created SRC_MAIN_RESOURCES/applicationContext.xml
Created SRC_MAIN_WEBAPP/WEB-INF
Created SRC_MAIN_WEBAPP/WEB-INF/roodemo-servlet.xml
Created SRC_MAIN_WEBAPP/WEB-INF/web.xml
Created SRC_MAIN_WEBAPP/WEB-INF/jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/index.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/urlrewrite.xml
这里会生成一个标准 maven web 项目,目录结构如下。
.
|-- pom.xml
`-- src
|-- main
| |-- java
| |-- resources
| | `-- applicationContext.xml
| `-- webapp
| `-- WEB-INF
| |-- jsp
| | `-- index.jsp
| |-- roodemo-servlet.xml
| |-- urlrewrite.xml
| `-- web.xml
`-- test
|-- java
`-- resources
Spring Roo 已经帮你添加最基本的Spring 配置。
你可以把项目导入到eclipse进行编辑。
在项目根目录中运行 mvn eclipse:eclipse ,会生成 Eclipse 相关的特殊文件,如.classpath , .project等。
现在你可以像导入一个普通项目那样将这个项目导入到你的workspace中。
2. 设置数据库。
在持久层技术上选择,Roo 提供了多jpa实现的选择,和多种数据库选择。
这里如果输入hint,会得到以下信息。
roo> hint
Roo requires the installation of a JPA provider and associated database.
Type 'install jpa' and then hit TAB three times.
We suggest you type 'H' then TAB to complete "HIBERNATE".
After the -provider, press TAB twice for database choices.
For testing purposes, type (or TAB) HYPERSONIC_IN_MEMORY.
If you press TAB again, you'll see there are no more options.
As such, you're ready to press ENTER to execute the command.
Once JPA is installed, type 'hint' and ENTER for the next suggestion.
任何时候,不要忘记使用 hint 来获得提示。
roo> install jpa -
按 tab 可以看到所提供的参数选项。
install jpa -database install jpa -provider
输入 -p 按 tab 自动补全 -provider 。
roo> install jpa -provider
按 tab 可以看到几种可用的 jpa 实现。
ECLIPSELINK HIBERNATE OPENJPA
接着输入首字母 H 按tab,补全 HIBERNATE,再输入-d 按 tab,补全-database。
roo> install jpa -provider HIBERNATE -database
H2_IN_MEMORY HYPERSONIC_IN_MEMORY HYPERSONIC_PERSISTENT
MSSQL MYSQL ORACLE
POSTGRESQL SYBASE
最后输入MY 按 tab 选择MySQL 数据库。
roo> install jpa -provider HIBERNATE -database MYSQL
Created SRC_MAIN_RESOURCES/META-INF
Created SRC_MAIN_RESOURCES/META-INF/persistence.xml
Created SRC_MAIN_RESOURCES/database.properties
please enter your database details in src/main/resources/database.properties
Managed SRC_MAIN_RESOURCES/applicationContext.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
Managed ROOT/pom.xml
现在如果比较之前生成的代码,你会发现,Spring Roo 已经帮你在Spring配置文件 applicationContext.xml 中配置好了相应的数据库的 Data Source,并且生成了相的相应的数据库配置模板(src/main/resources/database.properties),在 pom.xml 文件中已经添加 jpa ,数据库驱动相关的依赖。
现在你可以查看默认生成的数据库配置。
roo> database properties
database.driverClassName = com.mysql.jdbc.Driver
database.password =
database.url = jdbc:mysql://localhost:3306
database.username =
你可以手动修改数据库配置,也可以在 Spring Roo 命令行中完成。
设置数据库用户名。
roo> database set -key database.username -value root
Managed SRC_MAIN_RESOURCES/database.properties
设置数据库密码。
roo> database set -key database.password -value root
Managed SRC_MAIN_RESOURCES/database.properties
设置数据库url连接地址。
roo> database set -key database.url -value jdbc:mysql://localhost:3306/posts?useUnicode=true&characterEncoding=UTF-8
Managed SRC_MAIN_RESOURCES/database.properties
在MySQL 数据库创建创建数据库posts,在Terminal 使用mysqladmin 命令,你也可以使用自己熟悉的 MySQL 客户端工具来完成。
mysqladmin create posts --default-character-set=utf8 -uroot -p
输入密码,一个posts数据库就创建好了。
现在我们回到 roo shell中,查看一下数据库配置。
roo> database properties
database.driverClassName = com.mysql.jdbc.Driver
database.password = root
database.url = jdbc:mysql://localhost:3306/posts?useUnicode=true&characterEncoding=UTF-8
database.username = root
所有的数据库配置选项已经修改了。
3. 创建 Domain Class
现在如果输入 hint ,可以看到以下信息。
roo> hint
You can create entities either via Roo or your IDE.
Using the Roo shell is fast and easy, especially thanks to the TAB completion.
Start by typing 'new p' and then hitting TAB twice.
Enter the -name in the form '~.domain.MyEntityClassName'
In Roo, '~' means the -topLevelPackage you specified via 'create project'.
Afer specify a -name argument, press SPACE then TAB. Note nothing appears.
Because nothing appears, it means you've entered all mandatory arguments.
However, optional arguments do exist for this command (and most others in Roo).
To see the optional arguments, type '-' and then hit TAB. Mostly you won't
need any optional arguments, but let's select the -testAutomatically option
and hit ENTER. You can always use this approach to view optional arguments.
After creating an entity, use 'hint' for the next suggestion.
创建一个 Post 类。
roo> new persistent class jpa -name ~.domain.Post -
按下 Tab ,你有三种选择,你可以创建一个抽象类,或者从其它类继承。
new persistent class jpa -name ~.domain.Post -abstract
new persistent class jpa -name ~.domain.Post -extends
new persistent class jpa -name ~.domain.Post -testAutomatically
这里输入 t 按 Tab 键选择 -testAutomatically 同时创建一个测试类。
roo> new persistent class jpa -name ~.domain.Post -testAutomatically
Created SRC_MAIN_JAVA/roodemo/domain
Created SRC_MAIN_JAVA/roodemo/domain/Post.java
Created SRC_TEST_JAVA/roodemo/domain
Created SRC_TEST_JAVA/roodemo/domain/PostDataOnDemand.java
Created SRC_TEST_JAVA/roodemo/domain/PostIntegrationTest.java
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_Plural.aj
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_Entity.aj
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_ToString.aj
Created SRC_MAIN_JAVA/roodemo/domain/Post_Roo_Configurable.aj
Created SRC_TEST_JAVA/roodemo/domain/PostIntegrationTest_Roo_Configurable.aj
Created SRC_TEST_JAVA/roodemo/domain/PostDataOnDemand_Roo_DataOnDemand.aj
Created SRC_TEST_JAVA/roodemo/domain/PostIntegrationTest_Roo_IntegrationTest.aj
Created SRC_TEST_JAVA/roodemo/domain/PostDataOnDemand_Roo_Configurable.aj
这里 ~ 代表创建项目指定的 topLevelPackage 值。所有的 .aj 文件都是 AspectJ 文件 ,对于不熟悉AspectJ 的人来讲,可能对生成的代码有些令人费解。
不过,我们完全没有必要关心 .aj 的内容,可以以此为基础添加自己的代码。
下面往 Post 中添加一些字段,这里全部略去了Roo shell 的输出。
roo> add field string -fieldName title -notNull -sizeMax 200
roo> add field string -fieldName content -notNull -sizeMax 2000
roo> add field date jpa -fieldName createdDate -type java.util.Date
roo> add field date jpa -fieldName modifiedDate -type java.util.Date
创建另外一个类 Comment。
roo> new persistent class jpa -name ~.domain.Comment -testAutomatically
roo> add field string -fieldName name -notNull -sizeMax 200
roo> add field string -fieldName email -notNull -sizeMax 50
roo> add field string -fieldName content
roo> add field string -fieldName url
roo> add field date jpa -fieldName createdDate -type java.util.Date
添加关联关系。
roo> add field set jpa -fieldName comments -element ~.domain.Comment -class ~.domain.Post -mappedBy post
roo> add field reference jpa -fieldName post -type ~.domain.Post -class ~.domain.Comment
如果细心的话你可以注意,这里我们指定了一个 -class 参数,在默认情况下,不添加 -class 参数会修改刚刚创建类,而这里通过 -class 参数可以指定将内容添加到哪个类中。
4. 创建 Web Controller类
Spring 可以为我们生成最基本的CURD页面。
roo> new controller automatic -formBackingObject roodemo.domain.Post -name roode roodemo.web.PostController
Created SRC_MAIN_JAVA/roodemo/web
Created SRC_MAIN_JAVA/roodemo/web/PostController.java
Created SRC_MAIN_JAVA/roodemo/domain/CommentEditor.java
Created SRC_MAIN_JAVA/roodemo/web/PostController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP/images
Created SRC_MAIN_WEBAPP/images/banner-graphic.png
Created SRC_MAIN_WEBAPP/images/springsource-logo.png
Created SRC_MAIN_WEBAPP/images/list.png
Created SRC_MAIN_WEBAPP/images/show.png
Created SRC_MAIN_WEBAPP/images/create.png
Created SRC_MAIN_WEBAPP/images/update.png
Created SRC_MAIN_WEBAPP/images/delete.png
Created SRC_MAIN_WEBAPP/styles
Created SRC_MAIN_WEBAPP/styles/roo.css
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/header.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/footer.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/includes.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/dataAccessFailure.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/uncaughtException.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/list.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/show.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/create.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/post/update.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/menu.jsp
Managed SRC_MAIN_WEBAPP/WEB-INF/jsp/menu.jsp
Created SRC_MAIN_JAVA/roodemo/domain/CommentEditor_Roo_Editor.aj
roo> new controller automatic -formBackingObject ~.domain.Comment -name ~.web.CommentController
Created SRC_MAIN_JAVA/roodemo/web/CommentController.java
Created SRC_MAIN_JAVA/roodemo/domain/PostEditor.java
Created SRC_MAIN_JAVA/roodemo/web/CommentController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/list.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/show.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/create.jsp
Created SRC_MAIN_WEBAPP/WEB-INF/jsp/comment/update.jsp
Managed SRC_MAIN_WEBAPP/WEB-INF/jsp/menu.jsp
Created SRC_MAIN_JAVA/roodemo/domain/PostEditor_Roo_Editor.aj
5. 运行程序
退出roo shell,在项目根目录中运行 mvn tomcat:run ,以嵌入式方式运行 tomcat。
浏览器打开 http://localhost:8080/ 。
接下的一些博文会关注如何添加一些其它功能,如安全,邮件等。
发表评论
-
Spring 动态设置数据源
2011-12-24 16:27 1466Spring 动态设置数据源 Spring数据结构Hiber ... -
用Spring+Hibernate链接时,在增删改时会报错: Write operations are not allowed in read-only mod
2011-09-11 19:53 836用Spring+Hibernate链接时,在增删改时会报错: ... -
Spring中Transactional配置
2011-09-06 13:47 8730Spring中Transactional配置 (2011-05 ... -
用Http Invoker实现RCP客户端与后台的交互
2011-06-28 20:24 926用Http Invoker实现RCP客户 ... -
AndroMDA开发环境搭建
2011-04-18 17:42 1136AndroMDA开发环境搭建 翻译者:Jason S.H.C ... -
Spring中配置数据源的几种方法
2011-04-07 20:27 870Spring中配置数据源的几种方法 方法一(属性文件配置): ... -
详解spring事务属性
2011-03-31 15:39 766http://www.iteye.com/topic/7867 ... -
全面分析 Spring 的编程式事务管理及声明式事务管理(1)
2011-03-31 15:38 762开始之前 关于本教程 本教程将深入讲解 Spring 简 ... -
spring事务配置总结
2011-03-31 15:37 848事务代理标准写法 <!--DAO层接口实现 -- ... -
spring 事务传播
2011-03-31 15:36 846基本的六种事务传播: 1. PROPAGATION_REQU ... -
spring通过classpath加载配置文件
2011-03-31 15:35 1032在应用Spring的工程中, ... -
Spring事务配置
2011-03-31 15:34 840http://www.iteye.com/topic/6154 ... -
Spring事务管理
2011-03-31 15:33 843Spring提供了一流的事务管理。在Spring中可以支持声明 ...
相关推荐
spring roo 官方文档。很权威的东西。最新版本1.1.5的。
Manning Spring Roo in Action 完整版。
在使用 Spring ROO的时候 除了要在eclipse中安装Spring ROO 插件以外 还在要在电脑上配置 Spring ROO环境 (和jdk的环境配置一样)
spring roo是快速开发java的框架,支持spring mvc/security/tiles/webflow/test,也可以自己修改。
NULL 博文链接:https://ximeng1234.iteye.com/blog/2205872
spring的新技术,使开发变的更简单,更明了。在spring的基础上,推出了roo。
NULL 博文链接:https://moonshinewoo.iteye.com/blog/1835032
spring-roo-2.0.0.RC1.zip
SpringRoo 官方文档-版本2.0.0.RC1
spring roo的eclipse工程。可象普通java工程一样调试,跟Felix无关。注意其中的.lanches文件需要copy到你的eclipse workspace的.metadata\.plugins\org.eclipse.debug.core下
spring-roo-1.0.0.A2 Spring Roo 是SpringSource新的开放源码技术,该技术主要面向企业中的Java开发者,...无论你是一个新的Java开发人员或经验丰富的架构师,Spring Roo 都可以在短短几分钟内构建一个全面的工作应用。
spring-roo里面有打包,还有需要的东西,这是release版本
spring roo actionspring roo actionspring roo actionspring roo actionspring roo actionspring roo actionspring roo action
springroo快速学习
具体可以查看我的博客 http://blog.csdn.net/qiumeng_1314/article/details/77711867
Spring Roo - Reference Documentation
共三个部分 第 1 部分: 从源代码构建 第 2 部分: 使用 Spring Roo 开发应用程序 第 3 部分: 开发 Spring Roo 的附加组件
spring-roo的官方使用文档,汉语的文档
vaadin,spring-roo,war包和源码
Spring Roo Document Welcome! If you’re reading this, then you’ve undoubtedly heard about Spring Roo from a friend or colleague, or perhaps you read about it online or saw a presentation about it. ...