出版时间:2013-6 出版社:人民邮电出版社 作者:沃尔斯 译者:耿渊,张卫滨
Tag标签:无
前言
当写下这些文字的时候,恰好是2012年的最后一天。我们顺利度过了所谓的“世界末日”,此时的大连,外面漫天飞雪,似乎在迎接即将到来的新年,正如那句诗所言:冬天到了,Spring还会远吗,是的,希望这本书能够帮你更好地学习和使用Spring框架。在过去的一年中,技术圈内发生了许多的事情,技术如同这不断翻过的日历,时刻都在更新进步。既然末日的说法不靠谱,为了赶上不断发展的技术,我们就要保持不断学习的态度。记得2007年的春天,我在天津大学图书馆第一次见到《Spring In Action》中文版第一版,当时并不知道这个框架是做什么的,但还是鬼使神差地把这本书借了出来。尽管当时忙于毕业的事情没有把这本书读完,但里面圣杯骑士的例子给我留下了深刻的印象。毕业后,因为工作上要用到Spring框架,所以就自己买了一本,至今这本书还放在我的书柜之中。这本书对于我学习掌握Spring框架发挥了重要的作用。当时的译者也很尽心尽力和专业,让我们这些后来人感到颇为惶恐。几年间,Spring框架的发展超出了很多人的想象,它成为了事实上的Java EE开发标准,得到了广泛的使用,并直接或间接影响了众多JSR规范的制定。Spring的特性不仅覆盖了传统的Java EE开发,还发展到移动开发、大数据、应用集成等领域,成为VMware云战略的重要组成部分。尽管这两年Spring的发展经历了很多的变化,包括母公司被VMware收购、创始人Rod Johnson离任,以及最近爆出的VMware计划将其交给母公司EMC组建新的公司。正如我在前面所言,技术总是在不断发展,业界的趋势也是如此,但可以预料的是,在未来几年间Spring还将持续发挥影响力,值得我们去学习和了解。首先感谢陈雄华向人民邮电出版社引荐我翻译本书,之后还推荐了卫滨与我一起翻译。特别感谢家人一直以来对我的的支持和鼓励,尤其是在周末的时候无法陪伴妻子和女儿。在此张卫滨要感谢他的父母,正是他们的辛勤付出和栽培,才能让一个农村孩子见识到了更为广阔的天地。感谢妻子孙红梅,在翻译此书期间,她非常辛苦地承担了带孩子和做家务的工作。尤其要感谢可爱的儿子奔奔,小朋友总会在翻译期间不时跑过来在键盘上乱敲一通。最后还要特别感谢万能的互联网,本书的编辑位于北京,两位译者分别位于厦门和大连,正是互联网让我们之间能够很好的协作和交流,希望我们以后可以更为便捷地使用它。在本书的翻译过程中,我们怀着诚惶诚恐的心态,尽可能将其翻译好,并且在很多细节上与原作者进行了沟通和交流,但是限于译者的水平,难免会有错误或不当之处,欢迎读者不吝指正。译者2012年12月31日
内容概要
《Spring实战(第3版)》从核心的Spring、Spring应用程序的核心组件、Spring集成3个方面,由浅入深、由易到难地对Spring展开了系统的讲解,包括Spring之旅、装配Bean、最小化Spring XML配置、面向切面的Spring、征服数据库、事务管理、使用Spring MVC构建Web应用程序、使用Spring Web Flow、保护Spring应用、使用远程服务、为Spring添加REST功能、Spring消息、使用JMX管理Spring Bean以及其他Spring技巧等内容。《Spring实战(第3版)》不仅仅介绍了使用Spring框架进行开发必须掌握的核心概念,还在此基础上深入介绍了Spring应用程序的常用组件,并为读者展现了Spring如何与其他的应用、服务进行企业级集成。《Spring实战(第3版)》并不没有为读者详细地列出SpringAPI,而是通过提供丰富又实用的代码示例,来真正展示Spring框架的强大──它能够使企业级应用程序的开发更简单。
作者简介
作者:(美国)Craig Walls 译者:耿渊 张卫滨Craig Walls,SpringSource的软件开发人员。他也是一位畅销书作者,经常在用户组和各种会议中进行演讲。他目前居住在美国德克萨斯州的普莱诺。
书籍目录
第一部分Spring的核心 第1章Spring之旅2 1.1简化Java开发3 1.1.1激发POJO的潜能4 1.1.2依赖注入5 1.1.3应用切面9 1.1.4使用模板消除样板式代码13 1.2容纳你的Bean15 1.2.1与应用上下文共事16 1.2.2Bean的生命周期17 1.3俯瞰Spring风景线19 1.3.1Spring模块19 1.3.2SpringPortfolio22 1.4Spring新功能25 1.4.1Spring2.5新特性26 1.4.2Spring3.0新特性26 1.4.3SpringPortfollo新特性27 1.5小结28 第2章装配Bean29 2.1声明Bean30 2.1.1创建Spring配置30 2.1.2声明一个简单Bean31 2.1.3通过构造器注入33 2.1.4Bean的作用域37 2.1.5初始化和销毁Bean38 2.2注入Bean属性40 2.2.1注入简单值41 2.2.2引用其他Bean42 2.2.3使用Spring的命名空间p装配属性45 2.2.4装配集合46 2.2.5装配空值50 2.3使用表达式装配51 2.3.1SpEL的基本原理51 2.3.2在SpEL值上执行操作54 2.3.3在SpEL中筛选集合58 2.4小结62 第3章最小化Spring XML配置63 3.1自动装配Bean属性64 3.1.14种类型的自动装配64 3.1.2默认自动装配68 3.1.3混合使用自动装配和显式装配68 3.2使用注解装配69 3.2.1使用@Autowired70 3.2.2借助@Inject实现基于标准的自动装配74 3.2.3在注解注入中使用表达式76 3.3自动检测Bean77 3.3.1为自动检测标注Bean78 3.3.2过滤组件扫描79 3.4使用Spring基于Java的配置80 3.4.1创建基于Java的配置80 3.4.2定义一个配置类81 3.4.3声明一个简单的Bean81 3.4.4使用Spring的基于Java的配置进行注入82 3.5小结83 第4章面向切面的Spring84 4.1什么是面向切面编程85 4.1.1定义AOP术语86 4.1.2Spring对AOP的支持88 4.2使用切点选择连接点90 4.2.1编写切点91 4.2.2使用Spring的bean()指示器92 4.3在XML中声明切面93 4.3.1声明前置和后置通知94 4.3.2声明环绕通知96 4.3.3为通知传递参数98 4.3.4通过切面引入新功能100 4.4注解切面102 4.4.1注解环绕通知104 4.4.2传递参数给所标注的通知105 4.4.3标注引入105 4.5注入AspectJ切面107 4.6小结109 第二部分Spring应用程序的核心组件 第5章征服数据库112 5.1Spring的数据访问哲学113 5.1.1了解Spring的数据访问异常体系114 5.1.2数据访问模板化116 5.1.3使用DAO支持类118 5.2配置数据源119 5.2.1使用JNDI数据源119 5.2.2使用数据源连接池120 5.2.3基于JDBC驱动的数据源121 5.3在Spring中使用JDBC122 5.3.1应对失控的JDBC代码122 5.3.2使用JDBC模板125 5.4在Spring中集成Hibernate130 5.4.1Hibernate概览131 5.4.2声明Hibernate的Session工厂132 5.4.3构建不依赖于Spring的Hibernate代码134 5.5Spring与Java持久化API136 5.5.1配置实体管理器工厂136 5.5.2编写基于JPA的DAO140 5.6小结142 第6章事务管理144 6.1理解事务145 6.1.1用4个词来表示事务146 6.1.2理解Spring对事务管理的支持147 6.2选择事务管理器147 6.2.1JDBC事务149 6.2.2Hibernate事务149 6.2.3Java持久化API事务150 6.2.4JTA(Java Transaction API)事务151 6.3在Spring中的编码事务151 6.4声明式事务153 6.4.1定义事务属性154 6.4.2在XML中定义事务157 6.4.3定义注解驱动的事务159 6.5小结160 第7章使用Spring MVC构建Web应用程序162 7.1Spring MVC起步163 7.1.1跟踪Spring MVC的请求163 7.1.2搭建Spring MVC165 7.2编写基本的控制器166 7.2.1配置注解驱动的SpringMVC167 7.2.2定义首页的控制器168 7.2.3解析视图171 7.2.4定义首页的视图175 7.2.5完成Spring应用上下文177 7.3处理控制器的输入178 7.3.1编写处理输入的控制器179 7.3.2渲染视图181 7.4处理表单183 7.4.1展现注册表单183 7.4.2处理表单输入185 7.4.3校验输入187 7.5处理文件上传191 7.5.1在表单上添加文件上传域191 7.5.2接收上传的文件192 7.5.3配置Spring支持文件上传195 7.6小结196 第8章使用Spring Web Flow197 8.1安装Spring Web Flow198 8.1.1在Spring中使用Web Flow198 8.2流程的组件201 8.2.1状态201 8.2.2转移204 8.2.3流程数据205 8.3组合起来:披萨流程207 8.3.1定义基本流程207 8.3.2收集顾客信息211 8.3.3构建订单216 8.3.4支付219 8.4保护Web流程211 8.5小结221 第9章保护Spring应用223 9.1Spring Security介绍224 9.1.1Spring Security起步224 9.1.2使用Spring Security配置命名空间225 9.2保护Web请求226 9.2.1代理Servlet过滤器226 9.2.2配置最小化的Web安全性227 9.2.3拦截请求231 9.3保护视图级别的元素234 9.3.1访问认证信息的细节234 9.3.2根据权限渲染235 9.4认证用户237 9.4.1配置内存用户存储库238 9.4.2基于数据库进行认证239 9.4.3基于LDAP进行认证240 9.4.4启用remember—me功能244 9.5保护方法调用245 9.5.1使用@Secured注解保护方法调用245 9.5.2使用JSR—250的@Roles Allowed注解246 9.5.3使用SpEL实现调用前后的安全性246 9.5.4声明方法级别的安全性切点250 9.6小结251 第三部分Spring集成 第10章使用远程服务254 10.1Spring远程调用概览255 10.2使用RMI257 10.2.1发布一个RMI服务257 10.2.2装配RMI服务260 10.3使用Hessian和Burlap发布远程服务262 10.3.1使用Hessian和Burlap发布Bean的功能263 10.3.2访问Hessian/Burlap服务266 10.4使用Spring的HttpInvoker267 10.4.1将把Bean发布为HTTP服务267 10.4.2通过HTTP访问服务269 10.5发布和使用Web服务270 10.5.1创建JAX—WS端点271 10.5.2在客户端代理JAX—WS服务275 10.6小结276 第11章为Spring添加REST功能277 11.1了解REST278 11.1.1REST的基本原理278 11.1.2Spring是如何支持REST的279 11.2编写面向资源的控制器279 11.2.1剖析RESTless的控制器280 11.2.2处理RESTfulURL281 11.2.3执行REST动作284 11.3表述资源287 11.3.1协商资源表述287 11.3.2使用HTTP信息转换器290 11.4编写REST客户端293 11.4.1了解RestTemplate的操作295 11.4.2GET资源296 11.4.3PUT资源298 11.4.4DELETE资源300 11.4.5POST资源数据301 11.4.6交换资源303 11.5提交RESTful表单305 11.5.1在JSP中渲染隐藏的方法域306 11.5.2发布真正的请求307 11.6小结308 第12章Spring消息310 12.1JMS简介311 12.1.1构建JMS312 12.1.2评估JMS的优点314 12.2在Spring中搭建消息代理316 12.2.1创建连接工厂316 12.2.2声明ActiveMQ消息目的地317 12.3使用Spring的JMS模板318 12.3.1处理失控的JMS代码318 12.3.2使用JMS模板319 12.4创建消息驱动的POJO324 12.4.1创建消息监听器325 12.4.2配置消息监听器326 12.5使用基于消息的RPC327 12.5.1使用Spring基于消息的RPC328 12.5.2使用Lingo实现异步RPC330 12.6小结332 第13章使用JMX管理SpringBean333 13.1将SpringBean导出为MBean334 13.1.1通过名称发布方法337 13.1.2使用接口定义MBean的操作和属性339 13.1.3使用注解驱动的MBean340 13.1.4处理MBean冲突342 13.2远程MBean343 13.2.1发布远程MBean343 13.2.2访问远程MBean344 13.2.3代理MBean346 13.3处理通知347 13.3.1监听通知348 13.4小结349 第14章其他Spring技巧350 14.1外部化配置351 14.1.1替换属性占位符351 14.1.2重写属性354 14.1.3加密外部属性355 14.2装配JNDI对象357 14.2.1JNDI的传统用法357 14.2.2装配JNDI对象359 14.2.3将EJB装配到Spring中362 14.3发送邮件363 14.3.1配置邮件发送器363 14.3.2构建邮件365 14.4调度和后台任务370 14.4.1声明调度方法371 14.4.2声明异步方法372 14.5小结373 14.6结束语374
章节摘录
版权页: 插图: Spring Mobile 移动应用是另一个引人瞩目的软件开发领域。智能手机和平板设备已成为许多用户首选的客户端。Spring Mobile是Spring新的扩展模块用于支持移动Web应用开发。 与Spring Mobile相关的是Spring Android项目。这个新项目旨在通过Spring框架为开发基于Android设备的本地应用提供某些简单的支持。最初,这个项目提供了Spring的RestTemplate版本(请查看第11章了解RestTemplete)可以用于Android应用。 Spring Dynamic Modules Spring Dynamic Module整合了Spring的声明式依赖注入和OSGi的动态组件模型。使用Spring—DM,你可以采用模块化的方式构建应用,这些模块是清晰的、高内聚、低耦合的,并在OSGi框架内以声明的方式发布和消费服务。 Spring—DM作为声明式的OSGi服务,已经正式纳入OSGiBlueprint Container规范,这已经深刻影响了OSGi世界。此外,SpringSource已经把Spring—DM捐献给Eclipse并作为OSGi的Gemini成员项目,现在被称为Gemini Blueprint。 Spring LDAP 除了依赖注入和AOP,另一个贯穿Spring框架的常用技术就是创建基于模板的抽象层来封装多余的复杂操作,例如JDBC查询或JMS消息处理。Spring LDAP为我们带来了Spring风格的基于模板的LDAP访问,消除了因使用LDAP而产生的样板式代码。 Spring Rich Client 基于Web的应用似乎成功地将开发者的焦点从传统的桌面应用上吸引过来。但是如果你是为数不多的还在使用Swing开发应用程序中的一员,那么你可能会希望下载Spring Rich Client,它是一个富应用工具箱,为Swing赋予了Spring的魔力。 Spring.NET 如果使用.NET开发应用,你不必放弃依赖注入和AOP。Spring.NET提供了相同的松耦合和面向切面的Spring特性,但它是面向.NET平台的。 除了核心的DI和AOP特性,Spring.NET还自带了简化.NET开发的多个模块,包括ADO.NET、NHibernate、ASP.NET和MSMQ等。
媒体关注与评论
你将学会如何使用Spring编写更简单且易于维护的代码,从而让你只关注于真正重要的事情——你的关键业务需求。——Springframework.org包罗万象,超凡的易读性。5颗星!——JavaLobby.org结构编排严谨、文笔优美。——Internet Bookwatch易于阅读……极具趣味性。——Books-On-Line一本不可多得的好书。——Computing Reviews
编辑推荐
《Spring实战(第3版)》编辑推荐:In Action系列中最畅销的Spring图书,有近10万读者选择《Spring实战(第3版)》来学习Spring,也是国内读者最熟悉的Spring经典图书之一!Spring框架已经成为Java开发人员的必备知识,而且Spring 3引入了强大的新特性,例如SpEL、Spring表达式语言、IoC容器的新注解以及用户急需的对REST的支持。无论你是刚刚接触Spring还是被Spring 3.0的新特性所吸引,《Spring实战(第3版)》都是掌握Spring的最佳选择。《Spring实战(第3版)》继承了前两个畅销版本面向实战、实用的写作风格,介绍了Spring 3.0最重要的几个方面,包括REST、远程服务、消息、安全、MVC、Web Flow等。作者Craig Walls将读者真正需要的技术通过丰富且非常有趣的示例予以呈现,精彩纷呈,一定让你大呼过瘾。
名人推荐
事实上的Spring参考指南。——Dan Dobrin,加拿大帝国商业银行(CIBC)唯一一本我不会借给他人的书——因为我太频繁翻阅它了。——Josh Devins,Nokia公司涵盖了Spring的技术基础与各种应用。——Chad Davis,《Struts 2 in Action》作者杰出的老师所传授的精彩内容。——Robert Hanson,《GWT in Action》作者幽默与技术智慧的完美结合。——Valentin Crettaz,Goomzee公司这是一本非常棒的书。写得太好了!示例非常简洁,而且易于理解。——Sunil Parikh,DZone给予5颗星……一本非常有指导意义的书。——Nicola Pedot,Java User Group Trento是对Spring最好的全面介绍。——Taruvail Subramaniam,亚马逊读者真正推动了Spring的流行。——Partrick Steger,Zühlke Engineering广泛的关注性与极具趣味性……聚焦于开发人员真正需要了解的事情。——Doug Warren,Java Web Services
图书封面
图书标签Tags
无
评论、评分、阅读与下载