- 浏览: 273718 次
- 性别:
- 来自: 新乡
-
文章分类
- 全部博客 (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 1513Spring 动态设置数据源 Spring数据结构Hiber ... -
用Spring+Hibernate链接时,在增删改时会报错: Write operations are not allowed in read-only mod
2011-09-11 19:53 906用Spring+Hibernate链接时,在增删改时会报错: ... -
Spring中Transactional配置
2011-09-06 13:47 8871Spring中Transactional配置 (2011-05 ... -
用Http Invoker实现RCP客户端与后台的交互
2011-06-28 20:24 968用Http Invoker实现RCP客户 ... -
AndroMDA开发环境搭建
2011-04-18 17:42 1194AndroMDA开发环境搭建 翻译者:Jason S.H.C ... -
Spring中配置数据源的几种方法
2011-04-07 20:27 909Spring中配置数据源的几种方法 方法一(属性文件配置): ... -
详解spring事务属性
2011-03-31 15:39 821http://www.iteye.com/topic/7867 ... -
全面分析 Spring 的编程式事务管理及声明式事务管理(1)
2011-03-31 15:38 814开始之前 关于本教程 本教程将深入讲解 Spring 简 ... -
spring事务配置总结
2011-03-31 15:37 909事务代理标准写法 <!--DAO层接口实现 -- ... -
spring 事务传播
2011-03-31 15:36 899基本的六种事务传播: 1. PROPAGATION_REQU ... -
spring通过classpath加载配置文件
2011-03-31 15:35 1095在应用Spring的工程中, ... -
Spring事务配置
2011-03-31 15:34 887http://www.iteye.com/topic/6154 ... -
Spring事务管理
2011-03-31 15:33 879Spring提供了一流的事务管理。在Spring中可以支持声明 ...
相关推荐
该教程旨在教授开发者如何使用SpringRoo从零开始构建一个完整的Web应用,并涵盖以下几个方面: - 项目初始化与配置 - 实体类与字段的创建 - 集成测试 - Web层的构建 - 应用程序的安全性 - 用户界面的定制 - 自动化...
Roo 提供了一个使用方便、上下文感知、由标签完成的 shell 构建应用程序。此外,Spring Roo 可扩展且支持插件,进一步增强了其功能。 Spring Roo 的主要目标是从根本上可持续地改善 Java 开发者的生产力,同时不...
#### 1.4 教程与实践:从零开始的项目构建之旅 Spring Roo提供的不仅仅是自动化工具,还包括了一整套详尽的教程,指导开发者从项目创建、实体设计、集成测试到Web层构建的全过程。通过跟随官方教程,即使是新手也能...
4. **示例应用**:提供一个或多个实际的开发案例,演示如何从零开始构建一个简单的Web应用,以便读者能够跟随操作。 5. **最佳实践**:分享使用Spring Roo进行开发的最佳实践和技巧,以优化开发流程。 6. **集成与...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
模型权重文件介绍 1. 基于开源数据集训练,训练集包含15000+图片,训练100 epochs 2. 基于YOLO11x模型进行的训练 3. 模型识别类别有2类:helmet、no-helmet
ARM仿真器快速使用资料+绿色版软件 附视频-20210701.zip
内容概要:本文详细介绍了QY20B型汽车起重机液压系统的设计过程,涵盖其背景、发展史、主要运动机构及其液压回路设计。文章首先概述了汽车起重机的分类和发展历程,强调了液压技术在现代起重机中的重要性。接着,文章深入分析了QY20B型汽车起重机的五大主要运动机构(支腿、回转、伸缩、变幅、起升)的工作原理及相应的液压回路设计。每个回路的设计均考虑了性能要求、功能实现及工作原理,确保系统稳定可靠。此外,文章还详细计算了支腿油缸的受力、液压元件的选择及液压系统的性能验算,确保设计的可行性和安全性。 适合人群:从事工程机械设计、液压系统设计及相关领域的工程师和技术人员,以及对起重机技术感兴趣的高等院校学生和研究人员。 使用场景及目标:①为从事汽车起重机液压系统设计的工程师提供详细的参考案例;②帮助技术人员理解和掌握液压系统设计的关键技术和计算方法;③为高等院校学生提供学习和研究起重机液压系统设计的实用资料。 其他说明:本文不仅提供了详细的液压系统设计过程,还结合了实际工程应用,确保设计的实用性和可靠性。文中引用了大量参考文献,确保设计依据的科学性和权威性。阅读本文有助于读者深入了解汽车起重机液压系统的设计原理和实现方法,为实际工程应用提供有力支持。
Unity Beautify 3 - Advanced Post Processing 23.0版本
基于数据包络分析的中国旅游业发展效率特征
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于蓝牙技术的多通道键盘 ## 项目简介 在多设备工作环境中,用户常常需要在家庭电脑、工作笔记本或平板电脑之间频繁切换键盘输入,这不仅占用了大量桌面空间,而且操作不便。本项目旨在通过蓝牙技术,设计一款能够同时连接多个设备并实现一键切换的多通道键盘,从而简化用户的操作流程,提高工作效率。 ## 项目的主要特性和功能 1. 多设备连接键盘可以同时连接多达三个不同的设备。 2. 一键切换通过按键即可快速切换输入目标设备。 3. 高性能微控制器采用ATMega32u4微控制器,提供足够的GPIO引脚,支持Arduino编程环境,便于固件开发和升级。 4. 蓝牙模块使用RN42蓝牙模块,确保稳定的设备连接和数据传输。 5. 电压调节器使用MIC4680电压调节器,确保系统稳定供电。 ## 安装使用步骤 1. 硬件准备 获取ATMega32u4微控制器、RN42蓝牙模块、MIC4680电压调节器等硬件组件。 2. 电路设计
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
基于Vue.js和SpringBoot的研究生调研管理系统.zip
地理信息文件,许昌市各县区政区图,shp格式,可编辑
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Scratch放飞气球 2024年9月电子学会scratch三级考试真题源代码 综合考查角色添加、背景添加、初始位置、移动步数、方向旋转、造型切换、左右翻转、碰到边缘反弹、无限循环、条件判断、鼠标控制、碰撞检测等积木的使用;难点在于: 如何实现蝙蝠不断移动 如何实现蝙蝠边移动边挥翅膀 如何实现Ripley跟随鼠标移动 如何实现蝙蝠碰到Ripley移到随机位置 充分掌握重复执行和碰撞检测积木的使用 详细解题思路和步骤可以查看博客: https://scratch.blog.csdn.net/article/details/142934767 小兔子编程给小朋友们分享各种少儿编程(Scratch编程、python编程、C++编程等)学习、考级和比赛相关资料;更多少儿编程相关的学习资料,可以访问博主博客 https://blog.csdn.net/frank2102 期待小朋友们相互交流学习,有什么问题,建议或者意见可以直接给博主留言,或者私下,博主看到后会第一时间给到您相应的回复
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
前端分析-2023071100789s102102