JRuby实战
图书信息书名: JRuby实战
书号: 978-7-115-18375-0/TP
原书名: Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java
原出版社: Apress
丛书名: 图灵程序设计丛书 作者: Ola Bini
译者: 丁雪丰
出版日期: 2008-07-10
语种: 简体中文
开本: 16开
页数: 284
摘要本书通过4 个由浅入深的项目,结合Rails 向读者全面介绍了JRuby 。内容包括:如何在Ruby 中调用Java 代码,如何使用Java 库,如何实现并访问EJB,如何操作JMS,如何在Java 中调用由Ruby 实现的Java 类和接口等。同时,书中给出的代码都很有实用价值,只需稍做加工就能放进真正的项目中发挥
作用。
本书适合Web 开发人员阅读和参考。
目录第1章引言1
1.1背景2
1.1.1Ruby简史2
1.1.2Rails简史3
1.1.3JRuby简史3
1.2为什么选择JRuby on Rails4
1.3全书概述5
1.4小结7
第2章准备工作8
2.1安装JRuby8
2.1.1Java8
2.1.2二进制JRuby9
2.1.3从源代码安装9
2.1.4测试安装10
2.2RubyGems11
2.2.1Rake12
2.2.2Rails13
2.2.3AR-JDBC13
2.2.4BlueCloth和RedCloth13
2.2.5Facets14
2.2.6Mongrel14
2.2.7Mongrel JCluster14
2.3安装数据库14
2.4小结16
项目1商店(Shoplet)
第3章Rails入门18
3.1Rails应用程序的结构18
3.1.1模型19
3.1.2控制器20
3.1.3视图21
3.2Rails的其他部分24
3.2.1ActiveSupport24
3.2.2ActionMailer24
3.2.3ActionWebService24
3.2.4ActiveResource25
3.3Rails辅助脚本25
3.3.1about25
3.3.2breakpointer25
3.3.3console25
3.3.4destroy26
3.3.5generate26
3.3.6plugin26
3.3.7runner26
3.3.8server26
3.4测试28
3.5插件30
3.5.1Act As Taggable30
3.5.2CAS过滤器30
3.5.3全球化插件31
3.5.4Rails引擎31
3.6小结31
第4章商店管理32
4.1创建一个新的Rails应用程序32
4.2运行Mongrel35
4.3第一个模型35
4.3.1ProductType35
4.3.2Product37
4.3.3ProductCategory38
4.3.4运行迁移40
4.3.5验证40
4.4产品单元测试41
4.5为产品建立scaffold44
4.5.1Ajax48
4.5.2让界面更漂亮50
4.6更多模型52
4.6.1用户管理55
4.6.2订单处理56
4.7添加身份验证59
4.8功能测试61
4.9小结64
第5章数据库驱动的商店65
5.1浏览产品65
5.2添加购物车69
5.2.1查看购物车70
5.2.2结账71
5.3验证与测试73
5.4ActiveRecord和JDBC77
5.4.1支持的数据库78
5.4.2如何支持新的数据库81
5.5小结82
项目2内容管理系统(CoMpoSe)
第6章Java集成84
6.1使用Java资源84
6.1.1类85
6.1.2基本类型88
6.1.3数组88
6.2扩展Java89
6.2.1接口90
6.2.2类91
6.3Java集合类92
6.4陷阱94
6.5在Java中使用Ruby94
6.5.1JRuby运行时95
6.5.2BSF96
6.5.3JSR223——Java Scripting97
6.6小结97
第7章一个Rails的CMS98
7.1数据库98
7.2模型102
7.3布局103
7.4管理界面106
7.4.1用户106
7.4.2路径107
7.4.3样式109
7.4.4布局111
7.4.5文章115
7.5安全118
7.6小结119
第8章内容呈现120
8.1XML内容呈现120
8.1.1Ruby XML121
8.1.2Java DOM解析123
8.1.3Java SAX解析124
8.1.4Java DOM和XSLT126
8.1.5其他Java API127
8.2其他呈现内容的途径127
8.2.1RedCloth(Textile)127
8.2.2BlueCloth(Markdown)129
8.2.3ERb130
8.2.4YAML130
8.2.5其他解决方案132
8.3完成CoMpoSe132
8.3.1呈现引擎132
8.3.2内容136
8.3.3预览137
8.4小结139
项目3管理系统(BigBrother)
第9章JRuby与EJB142
9.1序列数据库143
9.2JRuby序列引擎145
9.3JRuby bean封装器149
9.4小结153
第10章基于EJB的Rails应用程序155
10.1重温EJB客户端156
10.2创建应用程序157
10.3创建一个小的序列支持库161
10.4序列控制器及相关视图162
10.5服务器端JMX165
10.6管理Rails的简单JMX166
10.7小结168
第11章部署170
11.1部署Ruby on Rails170
11.1.1WEBrick171
11.1.2CGI171
11.1.3FastCGI171
11.1.4Mongrel172
11.1.5Mongrel集群172
11.2部署JRuby on Rails172
11.2.1WEBrick173
11.2.2CGI173
11.2.3Mongrel173
11.2.4GoldSpike(Rails Integration)173
11.2.5Grizzly173
11.2.6Rails-asyncweb174
11.2.7Retty174
11.3部署JRuby on Rails的最佳实践174
11.3.1JVM Mongrel集群174
11.3.2用Java制作WAR177
11.4小结182
项目4图书馆系统(LibLib)
第12章JRuby与Web服务184
12.1LibLib系统184
12.2Amazon Web Services185
12.3SOAP4R186
12.3.1动态生成186
12.3.2使用桩代码187
12.4Java中的SOAP188
12.4.1动态生成189
12.4.2使用桩代码190
12.5创建小型图书支持库191
12.6小结194
第13章JRuby与面向消息系统195
13.1什么是MOM195
13.2遗留系统197
13.2.1添加图书馆197
13.2.2移除图书馆198
13.2.3获取图书馆名称198
13.2.4添加图书介绍198
13.2.5移除图书介绍198
13.2.6获取图书介绍198
13.2.7添加图书实例199
13.2.8移除图书实例199
13.2.9出借图书实例199
13.2.10归还图书实例199
13.2.11检索199
13.3ActiveMessaging200
13.4JRuby和MDB201
13.5与遗留系统交互的库202
13.6Rails间的通信211
13.7小结215
第14章LibLib Rails应用程序217
14.1数据库217
14.2部署多个Rails实例219
14.3创建模型221
14.4视图和控制器221
14.4.1布局222
14.4.2检索图书信息225
14.4.3身份验证229
14.4.4借阅者和图书管理员233
14.4.5从Amazon导入数据238
14.5小结239
第15章尾声:下一步该做什么241
15.1JRuby-extras241
15.1.1为JRuby-extras做贡献241
15.1.2当前的项目241
15.2为JRuby做贡献244
15.3潜在项目244
15.3.1使用Lucene进行数据库索引244
15.3.2用Hibernate替换ActiveRecord245
15.3.3创建新的ActiveRecord-JDBC适配器245
15.4小结247
附录AJava程序员眼中的Ruby249
A.1核心Ruby249
A1.1命名249
A.1.2核心类型250
A.2类和模块254
A.2.1定义方法255
A.2.2包含和扩展256
A.2.3单例类257
A.3块257
A.4元编程259
A.4.1自省259
A.4.2send260
A.4.3method_missing、const_missing260
A.4.4define_method261
A.4.5Class.new和Module.new261
A.4.6eval及相关内容261
A.5to_proc的技巧262
附录BJRuby参考263
B.1 类和接口263
B.1.1 引用一个Java类或接口263
B.1.2 使用类264
B.1.3 扩展和实现264
B.2 基本类型数组265
B.3 对Java类的扩展266
B.3.1 java.lang.Runnable266
B.3.2 java.util.Map266
B.3.3 java.lang.Comparable266
B.3.4 java.util.Collection266
B.3.5 java.util.List267
B.4 JRuby模块267
B.4.1 runtime267
B.4.2 parse267
B.4.3 compile267
B.4.4 reference268
B.5 require268
附录C资源269
C.1 Ruby和Rails269
C.1.1 Ruby程序设计语言269
C.1.2 Ruby-talk邮件列表269
C.1.3 Ruby-core邮件列表269
C.1.4 Ruby on Rails269
C.1.5 Rails-talk邮件列表270
C.1.6 Rails-core邮件列表270
C.1.7 松本行弘“Matz”的博客270
C.1.8 O’Reilly Ruby270
C.1.9 RubyInside270
C.1.10 On Ruby270
C.1.11 Loud Thinking270
C.1.12 Riding Rails270
C.1.13 Eigenclass270
C.1.14 Polishing Ruby271
C.1.15 Programming Ruby, Second Edition271
C.1.16 The Ruby Way, Second Edition271
C.1.17 Agile Web Development with Rails, Second Edition271
C.2 JRuby271
C.2.1 JRuby主页271
C.2.2 JRuby Dev邮件列表271
C.2.3 JRuby User邮件列表271
C.2.4 #jruby IRC频道272
C.2.5 JRuby-extras项目272
C.2.6 JRuby JIRA272
C.2.7 JRubyInside272
C.2.8 Headius272
C.2.9 Tom’s Ruminations272
C.2.10 Ola Bini272
C.2.11 Nick Sieger272
C.3 其他273
C.3.1 MySQL273
C.3.2 ActiveMessaging273
C.3.3 Hitta273
C.3.4 Ferret273
C.3.5 GlassFish273