注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计其他编程语言/工具SprIng框架高级编程

SprIng框架高级编程

SprIng框架高级编程

定 价:¥59.00

作 者: (美)约翰逊;蒋培译
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

ISBN: 9787111186380 出版时间: 2006-04-01 包装: 平装
开本: 16开 页数: 471 字数:  

内容简介

  Spring框架是主要的开源应用程序开发框架,它使得Java/J2EE开发更容易、效率更高。本书不仅向读者展示了Spring能做什么?而且揭示了Spring完成这些功能的原理,解释其功能和动机,以帮助读者使用该框架的所有部分来开发成功的应用程序。本书涵盖Spring的所有特性,并且演示了如何将其构成一个连贯的整体,帮助读者理解Spring方法的基本原理、何时使用Sping以及如何效仿最佳实践。所有这些都以完整的样本应用程序来举例说明。读完本书,读者将能够有效地在各种应用中(从简单的web应用程序到复杂的企业级应用程序)使用Spring。本书旨在指导读者何使用Spring框架来实现各种有效应用程序的开发(从简单的Web应用到复杂的企业级应用)。通过一个完整的样本应用程序贯穿全书,举例说明Spring如何提供一个清晰的、分层的体系结构的基础;以及如何适当地使用Spring来实现好的OO设计和体系结构设计,以及如何应用最佳实践。本书面向欲深人学习Spring框架的Java/J2EE体系结构设计人员和开发人员,使他们能够把spring框架有效地用于从简单的Web应用到复杂的企业级应用;也非常适合Spring框架新手作为常备参考书。

作者简介

  Rod Johnsn是Spring框架的创始人,并且是Java和J2EE领域的著名专家。Rod获悉民大学博士学位。他具有C/C++开发背景,从Java和J2EE发布以来就作为开发者、休系结构设计者和顾问涉足了Java和J2EE领域。他撰写了两本最普及并最有影响力的J2EE书籍:《Expert One-on-one J2EE Design and Deuelo Pment》(Wrox,2002),和《J2EE without EJB》(Wrox,2004.与Juergen Hoelle合著)。这两本书在“敏捷J2EE的兴起和心变过度复杂的传统J2EE体系结构方面都起了得要作用。Rod是Spring框架的共同领导之一。他的发言很受欢迎,并且经常出现在美国、欧洲和亚洲举行的Java重要活动中。了是一些JSR的专家组的成员,为Java社区发展计划(Java Community Process,JCP)EBTL。他还具有在银行和金融、保险、软件、媒体等领域从事顾问的广泛经验。他是Interface21(www.inter-face21.com)的CEO,Interface21是一家致力于提供专家级J2EE和Spring框架服务的咨询公司。他各极参与客户项目和Spring开发。

图书目录

Professional Java Development with the Spring Framework    I
关于作者    II
致谢    X
目录    XI
引言    错误!未定义书签。
本书是写给谁的    III
本书的目标    III
本书讨论的范围    III
预备知识    IV
推荐的阅读    IV
使用本书需要什么    V
样本应用程序    V
约定    VI
源代码    VI
勘误    VI
p2p.wrox.com    VII
第1章    Spring框架概述    1
1.1    为什么要Spring?    1
1.1.1    J2EE传统方式的问题    1
1.1.2    轻量级框架    3
1.1.3    进入Spring    4
1.2    Spring的价值    5
1.3    上下文中的Spring    6
1.3.1    技术    7
1.3.2    面向方面的编程    9
1.3.3    一致性抽象    12
1.3.4    与其他框架的关系    16
1.4    使用Spring构造应用程序    18
1.4.1    关系图    18
1.4.2    持久性和集成    20
1.4.3    业务服务对象    23
1.4.4    表示    24
1.5    前景    25
1.5.1    发布日程    25
1.5.2    Java和J2EE的进展    26
1.5.3    技术趋势    27
1.5.4    标准与源码公开    27
1.6    Spring项目和社区    28
1.6.1    历史    28
1.6.2    模块摘要    29
1.6.3    支持的环境    32
1.7    小结    32
第2章    Bean工厂与应用程序上下文    34
2.1    控制反转和依赖注入    34
2.1.1    不同形式的依赖注入    36
2.1.2    在设置器注入和构造函数注入之间决定    37
2.2    容器    38
2.2.1    Bean工厂    39
2.2.2    应用程序上下文    40
2.2.3    启动容器    41
2.2.4    使用来自工厂的Bean    42
2.2.5    XML Bean配置    43
2.2.6    基本的Bean定义    43
2.2.7    管理Bean生命周期    52
2.2.8    对服务和资源访问的抽象    54
2.2.9    重用Bean定义    57
2.2.10    使用后置处理器处理定制的Bean和容器    59
2.3    小结    63
第3章    高级容器概念    64
3.1    低层资源的抽象    64
3.1.1    应用程序上下文作为ResourceLoader    64
3.1.2    应用程序上下文作为消息源    66
3.2    应用程序事件    68
3.3    管理容器    69
3.3.1    ApplicationContext构造函数中的资源位置路径    69
3.3.2    应用程序上下文的声明性用法    71
3.3.3    将容器定义划分到多个文件    72
3.3.4    处理组件的策略    73
3.3.5    用于访问容器的单态    75
3.4    一些方便的工厂Bean    75
3.4.1    PropertyPathFactoryBean    76
3.4.2    FieldRetrievingFactoryBean    76
3.4.3    MethodInvokingFactoryBean    77
3.5    Spring提供的属性编辑器    77
3.6    测试策略    78
3.6.1    单元测试    78
3.6.2    使用Spring容器的测试    80
3.7    XML的替代品    81
3.7.1    来自Properties文件的定义    82
3.7.2    编程化的Bean定义    82
3.7.3    其他格式    83
3.7.4    参考文献    83
3.8    小结    83
第4章    Spring与AOP    84
4.1    目标    84
4.2    假设    85
4.3    例子    85
4.4    Spring的AOP框架    86
4.4.1    拦截器链    87
4.4.2    赞成与反对    87
4.4.3    通知    88
4.4.4    切点    92
4.4.5    通知器(Advisor)    96
4.4.6    与Spring IoC容器的集成    97
4.4.7    在运行时间检验并处理代理状态    107
4.4.8    编程化的代理创建    107
4.5    使用Spring的AOP框架的高级特性    108
4.5.1    TargetSources    108
4.5.2    及早终止拦截器链    112
4.5.3    使用介绍    112
4.5.4    暴露当前的代理    114
4.5.5    暴露当前的MethodInvocation    115
4.5.6    理解代理类型    115
4.5.7    调试与测试    117
4.5.8    其他    118
4.6    与其他AOP框架集成    120
4.6.1    目标    120
4.6.2    AspectJ集成    121
4.6.3    AspectWerkz    125
4.7    参考文献    125
4.8    小结    126
第5章    DAO支持与JDBC框架    127
5.1    数据访问对象模式    127
5.2    Spring的JDBC框架概述    128
5.2.1    起因:直接使用JDBC的问题    128
5.2.2    Spring可以如何帮助    130
5.2.3    简单的例子    130
5.3    建立样本应用程序的数据访问层    131
5.3.1    样本应用程序的数据模型    131
5.3.2    DataSource    132
5.3.3    异常转译    133
5.4    使用JdbcTemplate的操作    134
5.4.1    回调方法的使用    134
5.4.2    JdbcTemplate的方便方法    135
5.4.3    使用JdbcTemplate的基本查询    136
5.4.4    使用JdbcTemplate的基本更新    137
5.4.5    JdbcTemplate的高级用法    137
5.4.6    对RowSet的支持    138
5.5    使用RDBMS操作类    139
5.5.1    SqlQuery和MappingSqlQuery    139
5.5.2    使用SqlUpdate插入和更新    140
5.5.3    使用UpdatableSqlQuery更新ResultSet    141
5.5.4    生成主键    141
5.5.5    检索数据库生成的键    142
5.5.6    调用存储过程    143
5.6    高级概念    144
5.6.1    在应用程序服务器中的运行Spring JDBC    144
5.6.2    使用定制的异常转译    145
5.6.3    读写LOB数据    147
5.6.4    批量更新    149
5.6.5    存储过程的高级用法    150
5.7    其他的考虑事项    152
5.7.1    性能    152
5.7.2    何时使用JDBC和O/R映射    152
5.7.3    JDBC版本和J2EE版本    153
5.8    小结    153
第6章    事务和资源管理    154
6.1    背景    154
6.1.1    什么是事务?    154
6.1.2    ACID属性    154
6.1.3    并发控制    156
6.2    事务与J2EE    156
6.2.1    局部事务    157
6.2.2    全局/分布式事务    157
6.2.3    事务传播    157
6.2.4    事务划分    157
6.3    Spring事务支持的例子    158
6.4    Spring的事务抽象介绍    159
6.4.1    事务控制选择的概述    159
6.4.2    事务划分策略    162
6.4.3    事务管理策略    167
6.5    DataSource声明    171
6.5.1    本地非缓冲    171
6.5.2    本地缓冲    172
6.5.3    JNDI    172
6.5.4    在本地DataSource和JNDI DataSource之间选择    173
6.6    小结    173
第7章    对象/关系映射    175
7.1    背景知识    175
7.1.1    基本的O/R映射    176
7.1.2    对象查询语言    176
7.1.3    透明持久性    177
7.1.4    何时选择O/R映射    177
7.2    Spring中的O/R映射支持    178
7.2.1    数据访问对象    178
7.2.2    事务管理    179
7.3    iBATIS SQL Maps    179
7.3.1    映射文件    180
7.3.2    DAO实现    181
7.3.3    在Spring上下文中设置    182
7.3.4    事务管理    182
7.3.5    iBATIS概要    183
7.4    Hibernate    184
7.4.1    映射文件    184
7.4.2    DAO实现    185
7.4.3    Spring上下文中的设置    186
7.4.4    设置为JCA连接器    187
7.4.5    事务管理    188
7.4.6    Open Session in View    192
7.4.7    BLOB/CLOB处理    194
7.4.8    Hibernate:小结    195
7.5    JDO    196
7.5.1    持久性对象的生命周期    197
7.5.2    DAO实现    197
7.5.3    在Spring上下文中设置    199
7.5.4    事务管理    200
7.5.5    PersistenceManager的生命周期    200
7.5.6    Open PersistenceManager in View    201
7.5.7    JDO方言    203
7.5.8    JDO:小结    203
7.6    其他O/R映射工具    205
7.6.1    Apache OJB    205
7.6.2    TopLink    206
7.6.3    Cayenne    207
7.6.4    JSR-220持久性    207
7.7    小结    207
第8章    轻量级远程处理    209
8.1    概念和范围    209
8.2    公共的配置风格    211
8.3    Hessian和Burlap    212
8.3.1    访问一个服务    213
8.3.2    导出一个服务    214
8.4    HTTP调用器    215
8.4.1    访问一个服务    216
8.4.2    导出一个服务    216
8.4.3    定制化选项    217
8.5    RMI    218
8.5.1    访问一个服务    219
8.5.2    Stub查询策略    220
8.5.3    导出一个服务    221
8.5.4    定制化选项    222
8.5.5    RMI-IIOP    222
8.6    通过JAX-RPC的Web服务    223
8.6.1    访问一个服务    224
8.6.2    导出一个服务    225
8.6.3    定制的类型映射    226
8.7    小结    227
第9章    支持性服务    229
9.1    JMS    229
9.1.1    引言    229
9.1.2    Spring的JMS支持的起因    230
9.1.3    通过模板的JMS访问    230
9.1.4    异常处理    232
9.1.5    ConnectionFactory管理    232
9.1.6    消息转换器    233
9.1.7    目的管理    233
9.1.8    事务管理    234
9.1.9    JmsGatewaySupport    235
9.1.10    前景    236
9.2    使用Spring的调度    236
9.2.1    Timer与Quartz    236
9.2.2    Timer    237
9.2.3    Quartz    238
9.3    使用Spring发送电子邮件    241
9.3.1    入门指南    242
9.3.2    重用现有的邮件会话    242
9.3.3    使用COS的邮寄发送    242
9.3.4    通用的邮件管理器    243
9.4    脚本    245
9.4.1    一致性模型    245
9.4.2    其他脚本语言    248
9.5    小结    248
第10章    Spring的Acegi Security系统    249
10.1    企业应用程序的安全选择    249
10.1.1    典型的需求    249
10.1.2    Acegi Security简介    250
10.1.3    Java身份验证和授权服务    252
10.1.4    Servlet规范    254
10.2    Acegi Security的基础    255
10.2.1    身份验证    255
10.2.2    存储身份验证对象    257
10.2.3    授权    258
10.2.4    域对象实例的安全    259
10.3    范例代码    262
10.3.1    范例介绍    262
10.3.2    安全不知道的实现    262
10.3.3    安全方法    263
10.3.4    身份验证    263
10.3.5    授权    264
10.4    小结    265
第11章    Spring与EJB    267
11.1    对EJB的需要做出决断    267
11.2    访问EJB    268
11.2.1    样板方法    268
11.2.2    Spring的方法    269
11.3    用Spring实现EJB    273
11.3.1    无状态会话Bean    273
11.3.2    有状态会话Bean    275
11.3.3    消息驱动的Bean    276
11.3.4    XDoclet    276
11.4    单态容器访问,好还是坏?    277
11.4.1    ContextSingletonBeanFactoryLocator和SingletonBeanFactoryLocator    278
11.4.2    共享的上下文作为Web应用程序的应用程序上下文的双亲    280
11.4.3    使用来自EJB的共享的上下文    280
11.5    测试关注点    281
11.5.1    在POJO委托中实现业务功能    281
11.5.2    使用模仿的EJB容器    282
11.5.3    应用程序服务器内部的集成测试    282
11.6    小结    283
第12章    Web MVC框架    284
12.1    简单的例子    284
12.2    一般的体系结构    285
12.2.1    Web MVC概念    285
12.2.2    使用分发器和控制器的通用Web MVC    286
12.2.3    好的Web MVC框架的需求    286
12.2.4    Spring的Web MVC的等价物    287
12.3    基础设施组件    289
12.3.1    DispatcherServlet    289
12.3.2    WebApplicationContext    291
12.4    处理请求有关的工作流    293
12.5    Spring MVC Web应用程序的一般布局    294
12.6    HandlerMapping    295
12.6.1    BeanNameUrlHandlerMapping    296
12.6.2    SimpleUrlHandlerMapping    296
12.6.3    CommonsPathMapUrlHandlerMapping    297
12.6.4    多个HandlerMapping    298
12.7    HandlerExecutionChain和拦截器    298
12.7.1    WebContentInterceptor    299
12.7.2    UserRoleAuthorizationInterceptor    300
12.7.3    Spring MVC提供的其他处理器拦截器    300
12.8    处理器及其适配器    300
12.9    ModelAndView和ViewResolvers    301
12.9.1    UrlBasedViewResolver    301
12.9.2    BeanNameViewResolver和XmlViewResolver    302
12.9.3    ResourceBundleViewResolver    302
12.9.4    视图解析器成链    303
12.10    地区值的改变和解析    304
12.11    HandlerExceptionResolvers    305
12.12    控制器    307
12.12.1    WebContentGenerator    307
12.12.2    AbstractController    308
12.12.3    UrlFilenameViewController    308
12.12.4    ParameterizableViewController    309
12.12.5    MultiActionController    309
12.13    数据绑定    310
12.13.1    使用数据绑定时的方便功能    310
12.14    使用控制器的实际例子    311
12.15    使用AbstractController查看演出列表    311
12.15.1    预订    313
12.16    向导功能    318
12.16.1    基本配置    318
12.16.2    模板方法    318
12.16.3    向导流程    319
12.16.4    页面改变、编号和其他动作    319
12.17    扩展Spring处理器的基础设施    320
12.18    上传文件    321
12.18.1    配置多部分解析器    321
12.18.2    创建表单来上传文件    321
12.18.3    处理上传的数据    322
12.19    测试控制器    322
12.19.1    无需应用程序上下文的测试    323
12.19.2    使用模仿对象的更广泛测试    323
12.19.3    使用完全的应用程序上下文测试    323
12.19.4    测试Web应用程序的其他方法    324
12.19.5    小结    324
第13章    Web视图技术    326
13.1    一个例子    326
13.1.1    通用配置    327
13.1.2    JSP    327
13.1.3    FreeMarker    327
13.1.4    使用iText生成PDF    328
13.2    选择技术时的注意事项    328
13.3    视图对象和模型    329
13.4    AbstractView提供的特性    330
13.4.1    使用RedirectView发布新的请求    330
13.4.2    使用视图前缀发布转向或者重定向    331
13.5    JSP    332
13.5.1    配置应用程序以使用JSP    332
13.5.2    使用定制标记创建表单    333
13.5.3    使用标记文件创建可重用的元素    337
13.6    Velocity和FreeMarker    338
13.6.1    配置视图解析器    338
13.6.2    使用表单简化宏    340
13.7    Tiles    342
13.8    基于XML和XSLT的视图    344
13.9    Excel和基于其他文档的视图    345
13.9.1    从表演列表生成Excel文件    345
13.9.2    以模板作为Excel文件的基础    346
13.9.3    基于其他文档的视图    346
13.9.4    使用HandlerInterceptor区分HTML和Excel    346
13.10    实现定制视图    347
13.10.1    View和AbstractView    347
13.10.2    实现从数据对象生成XML的视图    348
13.10.3    实现定制视图时的注意事项    348
13.11    小结    349
第14章    与其他Web框架集成    350
14.1    选择MVC框架时的注意事项    350
14.1.1    比较传统的Web MVC框架    350
14.2    与Spring集成:核心概念    359
14.3    WebWork 集成    361
14.3.1    设置ObjectFactory    361
14.4    Struts集成    361
14.4.1    使用ActionSupport    362
14.4.2    使用DelegationRequestProcessor和DelegationActionProxy    362
14.4.3    使用自动装配的基本动作    364
14.5    Tapestry集成    365
14.5.1    为Tapestry准备Bean    365
14.5.2    页面类    365
14.5.3    页面定义    366
14.5.4    页面模板    366
14.5.5    Tapestry集成的最终思考    366
14.6    JSF集成    367
14.7    小结    368
第15章    样本应用程序    369
15.1    服务器技术的选择    369
15.2    应用层    370
15.3    持久性层    370
15.3.1    数据模型    370
15.3.2    域对象模型    371
15.3.3    对象/关系映射    371
15.3.4    DAO实现    373
15.3.5    数据访问上下文    374
15.4    业务服务层    374
15.4.1    服务    374
15.4.2    应用程序上下文    375
15.5    Web层    375
15.5.1    应用程序流程    376
15.5.2    通过web.xml配置应用程序    376
15.5.3    Web控制器    377
15.5.4    视图技术    377
15.6    与J2EE设计和开发实现的比较    378
15.6.1    更简单的技术    378
15.6.2    数据库变化    378
15.7    服务器配置    378
15.7.1    MySQL    379
15.7.2    Tomcat    379
15.8    组建和部署    379
15.8.1    创建和载入数据库表    380
15.8.2    组建应用程序并部署到Tomcat服务器    380
15.9    小结    380
第16章    结论    381
16.1    Spring解决的问题    381
16.2    Spring解决方案    381
16.3    Spring开发的指导方针    383
16.3.1    技术选择    383
16.3.2    层与层    385
16.3.3    构造应用程序    389
16.3.4    测试应用程序    392
16.4    相关项目    394
16.4.1    Spring的Acegi Security    394
16.5    其他项目    395
16.6    非J2EE环境中的Spring    395
16.7    发现更多    396
16.7.1    书籍和文章    396
16.7.2    在线资源    397
16.7.3    样本应用程序    397
16.8    前景    398
附录A    样本应用程序的需求    399
A.1    概述    399
A.2    用户群体    399
A.2.1    公众Internet用户    399
A.2.2    售票处用户    400
A.2.3    系统管理员    400
A.3    假设    400
A.4    范围限制    401
A.5    交付时间表    401
A.6    Internet用户界面    401
A.6.1    基本工作流    402
A.6.2    错误处理    402
A.6.3    应用程序屏幕    402
A.7    非功能性需求    409
A.8    硬件和软件环境    410

本目录推荐