你的J2EE项目是否耗费了你太多的时间?它们是否难以调试?它们是否效率不彰?也许你还在使用传统的J2EE方案,然而这种主案太过复杂,而且并非真正面向对象。这里的很多问题都与EJB有关:EJB是一种复杂的技术,但它没有兑现自己曾经的承诺。
1. 站长评价
这是一本很古老的书,同时也是一本介绍Spring框架设计理念、出现缘由的书,也是一本介绍软件设计的书!
在Java开发领域,Spring框架应该说是久负盛名,而且是Java Web开发必备武器。但是,随着Spring的发展壮大, Spring涵盖的东西也越来越多:Spring Boot、Spring Cloud等等以Spring框架(Spring Framework)为基础的Spring生态系统。
所以,对于初学Spring的人而言,可能不知道从何入手。所以,推荐先阅读这本书,本书的作者也是Spring框架的发起者。他在本书中详细介绍了Spring框架的出现原因、Spring框架如何解决一系列企业级问题,如控制反转(IoC)、事务控制、远程调用等等。同时,他还详细阐述了Spring框架架构设计理念和技术抉择,对比当时流行的企业级框架EJB的种种缺陷,一一介绍了Spring框架如何采用轻量级的方式来解决企业级J2EE问题。总之,是一本深入了解Spring框架的经典著作。不论你是初学Spring,还是对Spring已经了如指掌,都可以从本书中学到很多东西。
本书的前5章都在讲述EJB相关的内容,如果不想了解EJB可以直接从第六章开始阅读。 |
-
丰富指数:☆☆☆☆
-
难度指数:☆☆☆☆
-
推荐指数:☆☆☆☆
迫不及待想要阅读它了?点此立即下载本书的PDF版本(仅供可以学习研究使用,切勿用于商业用途)!
2. 内容简介

在这本实战手册中,你将看到另一种截然不同的方案:没有EJB,却可以创建质量更高的应用程序,所需的时间和成本则更低。你将学会如何充分利用各种实用的技巧和工具,包括时下流行的Spring框架和Hibernate两个开源工具。你将看到如何高效地解决企业级应用的核心问题,例如事务管理、持久化、远程调用和web设计。你将了解这种新的方案给可测试性、性能和可伸缩性带来怎样的影响,并亲身体验轻量级架构如何大幅降低项目开发所需的时间和工作量。 自从servlet、EJB、JSP等J2EE技术发布之初,本书作者Rod Johnson就一直在使用这些技术,他对于这些技术的优劣利弊了如指掌。现在,通过这本书,你将可以面对面地分享他的专家经验。
你将从本书学到……
如何针对自己的应用程序找到 简单、 易维护的架构;在不使用EJB的情况下有效地管理事务;如何利用AOP和loC解决企业级软件开发中的常见问题;web层设计,以web层在设计良好的J2EE应用中的地位;J2EE应用中的数据访问技术,包括BC、Hibernate和O;如何利用开源产品提升生产率、减少编码量;如何从设计层面上改善性能和可伸缩性。 “传统的J2EE设计思路尤其是EJB日益让架构师和开发者们灰心丧气,我这本书正是为这些人而写的。本书将告诉读者,如何从现在开始用更清晰、更高效的方案去替代EJB,并开始迈向web应用的新时代。”
3. 作者简介
Rod Johnson,Spring框架的创始人,同时也是SpringSource的联合创始人。Spring是面向切面编程(AOP)和控制反转(IoC)的容器框架。Rod的畅销书Expert One-on-One J2EE Design and Development(2002年出版)是迄今为止J2EE领域最具影响力的书之一。
4. 目录
- 第1章 为什么要“j2ee without ejb”
-
-
聚光灯下的ejb
-
j2ee还剩什么?
-
站在十字路口的j2ee
-
前行的路
-
主旋律
-
轻量级框架和容器
-
我们还应该使用ejb吗?
-
小结
-
- 第2章 目标
-
-
生产率
-
问题
-
传统j2ee方案解决生产率问题的办法
-
提升生产率更好的办法
-
oo
-
业务需求的重要性
-
经验过程的重要性
-
小结
-
- 第3章 各种架构
-
-
架构性构件
-
.业务服务层
-
向外部暴露业务对象
-
数据访问层,或eis层
-
j2ee架构
-
两种ejb架构
-
两种非ejb架构
-
j2ee架构实例
-
“经典的”j2ee远程ejb架构
-
本地ejb架构
-
特制的非ejb架构
-
“轻量级容器架构”:示例应用系统
-
确定是否采用应用服务器
-
小结
-
- 第4章 简单性的红利
-
-
复杂性的代价
-
在j2ee应用系统中,导致复杂性产生的原因
-
导致复杂性的架构性原因
-
导致复杂性的文化性原因:一个依靠复杂性为生的产业
-
复杂到什么地步就是过度了?
-
简单还是幼稚?
-
刚刚够好就行吗?
-
变化的趋势
-
总结
-
- 第5章 ejb,五年间
-
-
炒作和经验
-
ejb和j2ee行业
-
实践中的ejb
-
一个过时的组件模型
-
java语言的进步
-
.net的挑战
-
web service
-
敏捷方法学的兴起
-
关于ejb目标的混淆
-
从未出现的组件市场
-
方兴未艾的新范式:aop
-
ejb, 我们真正需要什么?为什么无状态session bean如此流行?
-
声明性事务管理
-
远程调用
-
集群
-
线程管理
-
ejb实例池
-
资源池
-
安全
-
业务对象管理
-
总结:ejb的服务
-
ejb,我们不想要什么?
-
容器的锁定
-
丑陋的结构,泛滥的类
-
部署描述文件的地狱
-
类加载器的地狱
-
测试
-
ejb的滥用
-
复杂的编程模型
-
简单的事情会变得困难
-
“让开发人员忽略企业应用的复杂性”,这个目标现实吗?
-
生产率的损失
-
可移植性的问题
-
ejb能浴火重生吗?
-
工具支持
-
ejb 3.0
-
神话与谬论
-
jee == ejb
-
使用ejb的可疑论据
-
继续前进
-
moving forward
-
选择是否使用ejb
-
传统的知识
-
今天的选择
-
后ejb时代的舆论
-
标准,创新,和开源
-
小结
-
- 第6章 轻量级容器与控制反转
-
-
轻量级容器
-
什么是轻量级容器?
-
我们到底为什么需要容器?
-
轻量级容器 vs. ejb容器
-
ejb的好处
-
管理业务对象
-
接口与实现的分离
-
ejb:不完善的解决方案
-
控制反转
-
ioc实现策略
-
ioc容器
-
ioc容器间的移植
-
对代码风格、测试以及开发过程的影响
-
代码风格
-
可测试性
-
开发过程
-
使用企业级服务
-
小结
-
- 第7章 spring框架简介
-
-
来历与动机
-
一个分层的应用框架
-
基础构建模块
-
j2ee之上的spring
-
web应用中的spring
-
核心bean工厂
-
基础接口
-
通过xml组装bean
-
非xml格式的bean声明
-
组装应用对象
-
自动装配和依赖检查
-
构造子决议
-
生命周期回调
-
复杂的属性值
-
资源设置
-
典型的java/j2ee资源访问
-
bean容器中的资源声明
-
工厂bean
-
spring应用上下文
-
生命周期回调
-
信息源
-
文件资源
-
bean factory 后处理
-
小结
-
- 第8章 基于aop概念的声明性中间件
-
-
aop 101
-
动机
-
j2ee中的aop
-
定义
-
历史
-
作为aop子集的ejb
-
aop实现策略
-
动态代理
-
动态字节码生成
-
java代码生成
-
使用定制的类加载器
-
语言扩展
-
aop实现
-
aspectj
-
aspectwerkz
-
jboss4
-
spring
-
nanning
-
aop联盟
-
aop设计问题
-
aop的危险性
-
aop设计的建议
-
随意点菜的j2ee
-
spring中的aop实践
-
使用proxyfactorybean
-
便利的factorybean
-
自动代理
-
编程用法
-
使用源码级元数据提供aop之上的抽象
-
.net范例
-
概念级元数据 vs. 实现级元数据
-
编程访问上下文信息
-
spring范例
-
ejb 3.0
-
编程风格的暗含意味
-
前后一致的命名规范
-
避免依赖aop基础设施
-
受控异常和增强
-
参考资料
-
书籍
-
论文
-
文章和在线资源
-
小结
-
- 第9章 事务管理
-
-
上层(high-level)事务管理
-
传统的j2ee事务管理
-
j2ee容器作为事务协调器
-
人见人爱的cmt
-
直接使用jta
-
插曲:远程事务传播
-
轻量级事务基础设施
-
spring framework的事务管理
-
事务声明
-
编程式事务处理
-
声明式事务管理
-
事务管理策略
-
选择j2ee服务器的提示
-
小结
-
- 第10章 持久化
-
-
常见持久化策略
-
持久化模式概览
-
流行的j2ee数据访问解决方案
-
选择一种持久化策略
-
透明持久化和领域对象的行为
-
java持久化技术简史
-
java o/r映射解决方案的缓慢成长
-
entity bean的败笔
-
实践中的数据访问技术
-
资源管理
-
jdbc
-
ibatis sql映射
-
jdo
-
hibernate
-
数据访问对象(dao)模式
-
业务对象与数据访问对象
-
dao和透明持久化
-
数据访问对象的种类
-
dao设计中的问题
-
dao基础设施的问题
-
使用spring框架进行数据访问
-
通用的数据访问异常
-
再论业务对象与数据访问对象的关系
-
jdbc
-
ibatis sql映射
-
jdo
-
hibernate
-
小结
-
- 第11章 远程调用
-
-
经典的j2se远程方案:rmi
-
访问和暴露rmi服务
-
用rmi调用器实现透明远程调用
-
经典的j2ee远程机制:ejb
-
通信协议
-
状态管理
-
访问远程ejb
-
部署远程ejb
-
基于wsdl的web services:jax-rpc
-
访问web services
-
servlet和ejb端点
-
轻量级远程方案:hessian和burlap
-
访问和暴露hessian和burlap服务
-
小结
-
- 第12章 替换其它的ejb服务
-
-
线程管理
-
线程神话
-
ejb线程模型
-
ejb实例池
-
何时需要实例池?
-
何时不需要实例池
-
ejb线程机制和缓冲池的替代方案
-
线程模型
-
实例池概述
-
声明性安全
-
ejb安全模型
-
ejb模型的缺陷
-
借助aop的声明式安全
-
jms和消息驱动bean
-
小结
-
- 第13章 web层设计
-
-
目标和体系结构的讨论
-
web层设计目标
-
用servlet和jsp定制的mvc
-
融入整体架构
-
请求驱动的web mvc框架
-
struts 1.1
-
webwork2
-
spring的web mvc框架
-
适宜的视图技术
-
web mvc的其它实现方式
-
portals和portlets
-
事件驱动的web mvc框架
-
小论asp.net
-
总结
-
- 第14章 单元测试与可测试性
-
-
为何测试很重要?
-
单元测试的目标
-
确保可测试性
-
编程风格
-
如何让你的代码难于测试
-
来自标准库的难题
-
提高可测试性的技巧
-
依赖倒置
-
aop
-
单元测试技巧
-
替换
-
模仿对象
-
编写有效测试
-
测试驱动开发(tdd)
-
好处
-
对tdd的反对意见
-
tdd实践
-
学习tdd
-
案例研究:spring的经验
-
测试spring应用程序
-
对pojo进行测试
-
spring的抽象带来的好处
-
何时需要依赖spring api
-
使用替换配置进行测试
-
覆盖率分析和其他测试工具
-
测试生成器
-
覆盖分析工具
-
突变测试工具
-
资源
-
小结
-
- 第15章 性能与可伸缩性
-
-
定义
-
设置清晰的目标
-
体系结构的选择:影响性能和可伸缩性的关键因素
-
对象分布、集群和农场
-
数据访问
-
其他体系结构方面的问题
-
不同实现的选择
-
摆脱ejb服务设施对性能的影响
-
结果总结
-
摆脱ejb服务设施对性能的影响
-
缓存的代码优化
-
调优和部署
-
jvm
-
应用服务器
-
框架配置
-
数据库配置
-
一种循证的性能策略
-
基准测试
-
采样(profiling)
-
诊断
-
资源
-
小结
-
- 第16章 示例应用系统
-
-
pet store(宠物店)业务需求
-
ibatis jpetstore 3.1
-
中间层
-
远程调用机制
-
可改进的空间
-
spring jpetstore
-
中间层
-
数据访问层
-
web层
-
远程机制
-
编译和部署
-
war部署中的一些问题
-
部署spring jpetstore
-
小结
-
- 第17章 结语
-
-
回顾
-
前行
-
为你的应用选择最佳架构
-
轻量级容器架构
-
标准关键词
-
指导方针
-
编程风格
-
控制反转(ioc)和依赖注入
-
aop
-
测试
-
写在最后
-
索引
-
5. 下载地址
链接: https://pan.baidu.com/s/1u1rf0ZGmchycFLUb8Qheyg 密码: w9cf
扫码关注公众号,回复“书籍”关键字,查看更多推荐书籍!

-
本站所有下载资源均来自互联网,由站长搜集整理,版本归原作者所有,如有侵权请联系站长删除。
-
本站所有下载资源仅供个人学习和研究使用,请勿用于商业用途,请在下载后24小时内删除。