当前位置:首页 > 工业技术
精通Spring-Java轻量级架构开发实践
精通Spring-Java轻量级架构开发实践

精通Spring-Java轻量级架构开发实践PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:孟劼编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2006
  • ISBN:711515029X
  • 页数:593 页
图书介绍:本书介绍了开源应用框架Spring的开发实践和思想。
《精通Spring-Java轻量级架构开发实践》目录

第1章 Spring基础知识 1

1.1 Spring的来历和目标 1

1.2 Spring概览 2

1.3 Spring的应用场景 3

1.4 Spring和J2EE 5

1.4.1 经典J2EE体系架构 5

1.4.2 轻量级容器 6

1.4.3 Spring和J2EE的关系 6

1.5 小结 6

第2章 开始Spring之旅 7

2.1 获取Spring 7

2.1.1 两大开源网站简介 7

2.1.2 获取Spring发布包和源代码 7

2.2 Spring的标准发布包和相关软件包 9

2.2.1 Spring标准发布包 9

2.2.2 Spring相关软件包 10

2.2.3 Spring自带范例 12

2.3 部署Spring 13

2.4 Spring应用初体验 14

2.4.1 Hello World遇到的问题 14

2.4.2 使用Spring对Hello World进行重构 20

2.4.3 实现依赖注射(DI) 22

2.4.4 重构总结 24

2.4.5 简单的Web应用程序Hello World 24

2.5 小结 26

第3章 贯穿Spring应用的核心理念 27

3.1 轻量级容器再探 27

3.1.1 容器和轻量级容器 27

3.1.2 需要容器的理由 28

3.1.3 轻量级容器的优势 28

3.2 控制反转(IoC) 28

3.2.1 一个简单的例子 29

3.2.2 引入问题 31

3.2.3 使用控制反转(Inversion of Control)模式 32

3.2.4 总结 33

3.3 依赖注射 34

3.3.1 依赖注射的几种形式 35

3.3.2 使用Spring进行设值方法和构造函数注射 35

3.3.3 设值方法注射和构造函数注射的使用场合 36

3.4 面向方面编程(Aspect Oriented Programming) 37

3.4.1 AOP的历史来源 37

3.4.2 为什么需要AOP 38

3.4.3 AOP的重要概念 39

3.4.4 理解“横切” 41

3.4.5 AOP的实现策略 43

3.4.6 认识AspectJ 44

3.4.7 安装AspectJ的运行环境 44

3.4.8 用J2SE动态代理实现AOP 47

3.4.9 用AspectJ实现AOP 51

3.4.10 深入理解AspectJ 54

3.5 单元测试(Unit Test) 58

3.5.1 单元测试和JUnit框架 59

3.5.2 JUnit框架的3个核心概念 60

3.5.3 准备测试 60

3.5.4 添加测试代码并进行测试 62

3.5.5 取得更有意义的出错信息 63

3.5.6 捕捉错误信息 64

3.5.7 单元测试技巧 65

3.6 测试驱动开发(Test Driven Development) 67

3.6.1 传统测试的问题 67

3.6.2 测试驱动开发的应对策略 68

3.6.3 一个简单的示例 68

3.6.4 总结测试驱动开发的优势 73

3.7 小结 74

第4章 模式:Spring前行的路标 75

4.1 模式(Pattern)入门 75

4.1.1 什么是模式 75

4.1.2 不用模式产生的问题 76

4.1.3 通过实例理解模式本质 79

4.1.4 小结 81

4.2 工厂模式(Design Pattern:Factory Method)的精髓 81

4.2.1 引入问题 82

4.2.2 解决方法 83

4.2.3 工厂模式和依赖倒置的关系 85

4.3 单例模式(Design Pattern:Singleton) 88

4.3.1 单例模式的实现 88

4.3.2 单例注册表 89

4.4 模板模式和策略模式(Design Pattern:Template Method And Strategy) 91

4.4.1 模板模式 92

4.4.2 策略模式 95

4.5 代理模式(Design Pattern:Proxy) 100

4.5.1 第一个代理模式的例子 100

4.5.2 虚拟代理(Virtual Proxy) 103

4.6 数据访问对象模式(J2EE Pattern:Data Access Object) 105

4.7 模型视图控制器模式(Architecture/Framework Pattern:Model View Controller) 113

4.7.1 Model 1和Model 2简介 114

4.7.2 一个Model 2框架示例 115

4.8 框架与模式的关系 120

4.9 Spring和工厂模式 121

4.9.1 Spring工厂体系的另类视图 121

4.9.2 Spring工厂核心原理 122

4.10 Spring和单例模式 123

4.11 Spring的模板以及策略模式 125

4.11.1 Spring模板模式 125

4.11.2 Spring策略模式 126

4.12 Spring和代理模式 128

4.13 Spring和数据访问对象模式 129

4.14 Spring和MVC模式 131

第5章 Spring核心Bean工厂装配指南 133

5.1 核心Bean工厂 133

5.1.1 初识Bean工厂 133

5.1.2 拥有一份Bean的基础定义 135

5.1.3 使用构造函数创建Bean 136

5.1.4 使用静态工厂方法创建Bean 136

5.1.5 使用实例工厂方法创建Bean 137

5.1.6 Bean的标识符 139

5.1.7 是否使用Singleton 139

5.2 装配各种应用协作对象:Bean 141

5.2.1 设置Bean的属性和协作者 141

5.2.2 Bean的依赖决议 146

5.2.3 构造子参数决议 147

5.2.4 自动装配(Autowiring) 150

5.2.5 依赖检查 152

5.3 Bean属性和构造函数参数的细节 153

5.3.1 使用value元素设定属性 153

5.3.2 使用null元素设定空值 154

5.3.3 使用collection(集合)元素定义集合 154

5.3.4 通过嵌套Bean元素来定义内部Bean(innerBean) 157

5.3.5 使用idref元素预检错误 158

5.3.6 使用ref元素设定依赖 158

5.3.7 value与ref的简写式 161

5.3.8 使用depends-on属性强制依赖 162

5.4 方法也可以被注射 162

5.4.1 使用Lookup方法注射 162

5.4.2 替换任意方法 164

5.5 定制Bean的一些原生属性 165

5.5.1 生命周期接口 165

5.5.2 让Bean“知道”自己的身份 167

5.5.3 什么是FactoryBean 169

5.6 父和子Bean的定义 170

5.7 使用后处理器(Post-Processor) 173

5.7.1 使用BeanPostProcessor定制Bean 173

5.7.2 使用BeanFactoryPostProcessor定制Bean工厂 175

5.7.3 使用自定义的PropertyEditor 177

第6章 ApplicationContext和更多特性 178

6.1 ApplicationContext简介 178

6.2 ApplicationContext的扩展功能 178

6.2.1 资源国际化 178

6.2.2 事件传播 181

6.2.3 底层资源和ApplicationContext 184

6.3 在ApplicationContext中客制Bean的属性和行为 188

6.4 使用自定义的PropertyEditors 189

6.5 创建Web应用上下文 192

6.6 更多的轻松装配方式 193

6.6.1 从属性表达式来设置Bean的属性或者构造函数参数 193

6.6.2 从一个字段值来设置Bean的属性或者构造函数参数 195

6.6.3 调用另外一个方法并且使用其返回值(也可以没有返回值) 195

6.6.4 引入其他Bean的定义文件 196

6.7 Bean包装器(Wrapper)和属性编辑器(PropertyEditor) 197

6.7.1 BeanWrapper简介 197

6.7.2 JavaBean属性的设置、获取及嵌套 197

6.7.3 属性编辑器 200

6.8 Spring验证机制初探 202

6.9 小结 203

第7章 Spring面向方面编程基础 204

7.1 Spring AOP基础概念 204

7.1.1 AOP联盟简介 204

7.1.2 SpringAOP功能简介 205

7.1.3 Spring AOP概念重整 206

7.2 Spring AOP编程起步 207

7.2.1 陈旧案例重现 207

7.2.2 抽离关注点 208

7.2.3 划分切入点 210

7.2.4 结合Spring AOP和IoC:声明配置 212

7.3 Spring AOP代理和代理工厂 213

7.3.1 Spring代理工厂简介 214

7.3.2 使用ProxyFactory 214

7.3.3 使用ProxyFactoryBean 215

7.3.4 使用ProxyFactoryBean暴露的属性 215

7.3.5 选择合适的AOP代理 218

7.4 Spring AOP建议(Advice) 219

7.4.1 前置建议(Before Advice) 219

7.4.2 返回后(后置)建议(After Returning Advice) 224

7.4.3 环绕拦截建议(Interception Around Advice) 230

7.4.4 抛出建议(Throws Advice) 234

7.4.5 引介建议(Introduction Advice) 237

7.5 Spring AOP切入点(Pointcut)和顾问(Advisor) 237

7.5.1 未使用切入点存在的问题 237

7.5.2 引入切入点和顾问 237

7.5.3 初识切入点背后的ClassFilter和MethodMatcher接口 239

7.5.4 透过MethodMatcher接口了解静态和动态切入点 239

7.5.5 静态切入点和顾问DefaultPointcutAdvisor 242

7.5.6 静态切入点和顾问StaticMethodMatcherPointcut 242

7.5.7 静态切入点和顾问NameMatchMethodPointcut 245

7.5.8 使用正则表达式切入点 246

7.5.9 使用便利的切入点顾问(PointcutAdvisor) 247

7.5.10 使用动态切入点(Dynamic Pointcut)和自定义顾问(Advisor) 249

第8章 面向方面编程(AOP)高级应用 254

8.1 Spring AOP引介(Introduction)概述 254

8.2 使用混入(Mixin)实现引介(Introduction)建议 256

8.2.1 引入目标对象和待织入功能接口 256

8.2.2 给予关键引介建议 257

8.2.3 声明配置引介建议并测试 259

8.3 使用自动代理(Auto Proxy) 262

8.4 Spring AOP企业级服务 264

8.4.1 Spring AOP企业级服务菜单 264

8.4.2 使用TransactionProxyFactoryBean提供声明式事务管理 265

8.4.3 更为强大灵活的事务管理声明方式 270

8.4.4 使用EJB代理 272

8.5 小结 272

第9章 J2EE的持久化数据访问方案 273

9.1 传统高效的JDBC方案 273

9.2 基于SQL语句映射的Ibatis框架 275

9.2.1 IBatis简介 275

9.2.2 IBatis和高级ORM工具的比较 275

9.2.3 IBatis的应用场合 276

9.2.4 IBatis示例快照 276

9.3 流行的ORM利器Hibernate 278

9.3.1 Hibernate简介 278

9.3.2 Hibernate示例快照 279

9.4 再探数据访问对象(DAO) 282

9.4.1 传统的JDBC和DAO 282

9.4.2 IBatis和DAO 282

9.4.3 Hibernate和DAO 286

9.5 ORM方案的应用场合 286

9.6 宠物店背后的IBatis:SQL Map基本概念 286

9.7 宠物店背后的IBatis:XML配置文件 287

9.7.1 SQL Map的XML配置文件 287

9.7.2 使用〈properties〉元素引入属性文件 288

9.7.3 使用〈setting〉元素配置SqlMap 289

9.7.4 使用〈typeAlias〉元素指定别名 289

9.7.5 使用〈transactionManager〉元素配置事务策略 289

9.7.6 使用〈datasource〉元素配置数据源 290

9.7.7 使用〈sqlMap〉元素引入SQL Map映射文件 292

9.7.8 先行准备主控测试和子测试套件 293

9.8 宠物店背后的IBatis:XML映射文件 294

9.8.1 SQL Map的XML映射文件 294

9.8.2 通过Mapped Statement使用SQL 296

9.8.3 使用〈Statements〉元素指定SQL语句 296

9.8.4 SQL语句特殊规则 297

9.8.5 内联参数(Inline Parameter)简介 298

9.8.6 使用parameterClass指定参数类 300

9.8.7 基本类型输入参数 300

9.8.8 使用resultClass指定结果类 301

9.8.9 使用resultMap配置映射 302

9.8.10 IBatis事务处理 303

9.8.11 小结 304

9.9 宠物店背后的IBatis:XML映射文件高级特性 305

9.9.1 IBatis自动生成的主键 305

9.9.2 简单的动态SQL元素 306

9.9.3 缓存Mapped Statement结果集 307

9.9.4 缓存类型 308

9.9.5 动态Mapped Statement 310

9.9.6 运行自动测试 312

9.10 用Hibernate创建Spring宠物店的简易进货系统 313

9.10.1 Spring宠物店持久层渗入 313

9.10.2 实现Hibernate进货DAO:实体持久对象 314

9.10.3 实现Hibernate进货DAO:映射和基本配置 315

9.10.4 实现Hibernate进货DAO:工具类和DAO实现 317

9.10.5 实现Hibernate进货DAO:测试验收 318

9.11 小结 320

第10章 Spring和J2EE持久化数据访问 321

10.1 Spring对数据访问对象(DAO)的支持 321

10.1.1 通用的数据访问异常 321

10.1.2 通用的DAO抽象支持类 321

10.1.3 向业务对象注射DAO 322

10.2 Speing对JDBC的支持 324

10.2.1 JdbcTenplate和数据源概述 324

10.2.2 使用JdbcTemplate和数据源 325

10.2.3 对象化RDBMS操作概述 327

10.2.4 对象化RDBMS操作:使用MappingSqlQuery 328

10.2.5 对象化RDBMS操作:使用SqlUpdate 331

10.3 Spring对IBatis的支持 332

10.3.1 标准JavaBean实体和映射 332

10.3.2 衔接IBatis配置和DAO实现 333

10.3.3 关键整合点:Spring配置文件 334

10.3.4 添加声明式事务管理 335

10.4 Spring对Hibernate的支持 336

10.4.1 在Spring上下文中配置SessionFactory 336

10.4.2 重建Hibernate进货DAO伪实现 338

10.4.3 TDD实现规划测试案例 339

10.4.4 TDD实现完善基础设施 341

10.4.5 添加HibernateTemplate和HibernateCallback实现 341

10.4.6 声明式管理Hibernate本地事务 343

10.4.7 声明式管理Hibernate分布式事务 345

第11章 传统的企业JavaBean(EJB) 347

11.1 什么是EJB 347

11.2 什么是会话Bean(Session Bean) 348

11.2.1 无状态会话Bean 349

11.2.2 有状态会话Bean 349

11.2.3 何时使用会话Bean 349

11.3 实体Bean(Entity Bean) 350

11.3.1 EntityBean和Session Bean的异同 350

11.3.2 容器管理的持久性(CMP) 351

11.3.3 何时需要Entity Bean 352

11.4 消息驱动Bean 352

11.4.1 Message-DrivenBean和Session以及Entity Bean的异同 353

11.4.2 何时使用Message-DrivenBean 353

11.5 定义客户端访问接口 353

11.5.1 远程客户端(Remote Clients) 354

11.5.2 本地客户端(Local Clients) 354

11.5.3 Local接口和CMR(Container-Managed RelationShips) 355

11.5.4 远程还是本地访问的选用 355

11.5.5 方法参数和访问方式 355

11.6 企业Bean的内容和命名约定 356

11.7 EJB和JBoss开发实践 357

11.7.1 JBoss的安装与启动 357

11.7.2 在JBoss下开发部署第一个HelloWorld EJB 360

11.7.3 无状态会话Bean(Stateless Session Bean):开发和部署 364

11.7.4 无状态会话Bean:效果和生命周期 369

11.7.5 有状态会话Bean(Stateful Session Bean):开发和部署 370

11.7.6 有状态会话Bean(Stateful Session Bean):效果和生命周期 376

11.8 小结 377

第12章 Spring和EJB 378

12.1 概述 378

12.2 Spring对EJB提供的支持 378

12.3 Spring的EJB抽象访问层 379

12.3.1 深入BeanFactoryLocator接口 380

12.3.2 BeanFactoryLocator背后资源消耗的考量 382

12.4 使用Spring构建本地无状态会话Bean 383

12.4.1 提供业务契约:公共服务接口 384

12.4.2 提供本地和本地Home接口 384

12.4.3 提供可测试的业务委托:POJO实现类 385

12.4.4 提供Spring介入的企业Bean实现主类 385

12.4.5 给出EJB组件部署描述符 386

12.4.6 给出Spring和特定EJB容器配置,发布EJB 387

12.4.7 创建Web客户端,配置Web应用 388

12.4.8 解析Spring配置:SLSB代理工厂Bean 389

12.4.9 创建Servlet测试SLSB,发布Web客户包 390

12.5 使用Spring构建本地有状态会话Bean 391

12.5.1 SFSB解决方案 391

12.5.2 提供业务契约:公共服务接口 392

12.5.3 提供本地和本地Home接口 392

12.5.4 提供可测试的业务委托:POJO实现类 393

12.5.5 提供Spring介入的企业Bean实现主类 394

12.5.6 提供定制的EJB异常 396

12.5.7 给出部署表述符和Spring配置文件 396

12.5.8 创建Web客户端并配置Web应用 397

12.5.9 解析Spring配置:使用JndiObjectFactoryBean自动查找JNDI 398

12.5.10 创建Servlet测试SFSB并发布Web客户包 399

12.6 Spring眼中的EJB 400

12.6.1 EJB的缺点 400

12.6.2 Spring提倡的J2EE轻量架构理念:IoC/DI、AOP、装配和粘合 400

第13章 Spring和邮件服务 402

13.1 Spring邮件抽象层 402

13.2 使用Spring邮件抽象发送简单文本邮件 404

13.2.1 定义抽象父类模板 404

13.2.2 实现邮件发送子类 405

13.2.3 更灵活的实现 406

13.2.4 特定功能的子类实现 409

13.3 发送HTML MIME邮件的设计实现 409

13.3.1 分析设计和初步实现 410

13.3.2 定义MailMessage实体 411

13.3.3 功能实现和配置 413

13.4 发送HTML/纯文本MIME邮件,使用接口回调 415

13.4.1 回调的契机 415

13.4.2 功能实现和配置 415

13.5 小结 418

第14章 Spring和排程(scheduling)技术 419

14.1 排程(Scheduling)原理 419

14.2 什么是Timer 419

14.2.1 执行一次 420

14.2.2 周期执行 421

14.3 Spring对Timer的支持 422

14.3.1 用Spring来控制Timer 422

14.3.2 使用MethodInvokingTimerTaskFactoryBean工厂类 424

14.4 什么是Quartz 426

14.4.1 Quartz的核心概念 426

14.4.2 使用SimpleTrigger排程 426

14.4.3 使用CronTrigger排程 430

14.5 Spring对Quartz的支持 433

14.5.1 使用Spring支持Quartz SimpleTrigger排程 433

14.5.2 使用Spring支持Quartz CronTrigger排程 435

14.6 Quartz的持久化 438

14.6.1 Quartz持久机制的核心概念 438

14.6.2 使用Spring做一个JDBC有状态Quartz Job 438

14.6.3 JDBC持久的有状态和无状态job示例运行效果解析 441

14.7 小结 442

第15章 J2EE中流行的Web MVC框架 443

15.1 请求驱动的Web MVC框架简介 443

15.2 请求驱动的Web MVC框架在Struts中的实现 444

15.2.1 Struts的简介和基本Web配置 444

15.2.2 Struts的Action和ActionForm 445

15.2.3 Struts的核心原理 447

15.3 请求驱动的Web MVC框架在WebWork 2中的实现 449

15.3.1 WebWork 2简介 449

15.3.2 WebWork 2实现Web登录的页面流程 450

15.3.3 WebWork 2开发实践:配置Web应用 451

15.3.4 WebWork 2开发实践:配置验证、实现Action并绑定验证 452

15.3.5 WebWork 2开发实践:实现视图 454

15.4 事件驱动的Web MVC框架 455

15.4.1 简介 455

15.4.2 Tapestry概述 455

15.4.3 搭建Tapestry示例运行环境 456

15.4.4 Tapestry开发实践:配置Web应用 457

15.4.5 Tapestry开发实践:创建HTML视图模板 458

15.4.6 Tapestry开发实践:创建HTML组件规范文件 460

15.4.7 Tapestry开发实践:创建页面类 461

15.4.8 无需组件规范的HTML视图模板 462

15.5 小结 464

第16章 请求驱动的Spring Web MVC框架 465

16.1 Spring Web MVC框架简介 465

16.2 分发器 466

16.3 处理器映射 467

16.4 处理器拦截器 468

16.5 控制器简介 470

16.5.1 简单控制器 470

16.5.2 控制器抽象基类 471

16.5.3 命令控制器抽象基类 472

16.5.4 表单控制器简介 473

16.6 普通表单控制器 473

16.6.1 普通表单控制器:视图流转 473

16.6.2 普通表单控制器:基本配置 475

16.6.3 普通表单控制器:控制器和处理流程 476

16.6.4 普通表单控制器:表单、领域模型和视图 479

16.6.5 普通表单控制器:验证器和错误采集 482

16.7 向导式表单控制器 482

16.7.1 向导式表单控制器:视图流转 482

16.7.2 向导式表单控制器:基本配置 485

16.7.3 向导式表单控制器:控制器、验证器和处理流程 486

16.7.4 向导式表单控制器:表单、领域模型 489

16.8 模型、视图和视图解析(View Resovling) 490

16.8.1 返回视图名称 490

16.8.2 保存模型属性 490

16.8.3 视图解析器和视图抽象 491

16.9 小结 492

第17章 Spring和视图技术及Web框架的集成 493

17.1 Spring集成JSP和JSTL 493

17.1.1 JSP和JSTL简介 493

17.1.2 视图解析器 493

17.1.3 Spring的专有标签 497

17.2 Spring集成XSLT 499

17.2.1 XSLT简介 499

17.2.2 示例开发:需求和部署配置 499

17.2.3 示例开发:配置We应用 500

17.2.4 示例开发:把模型数据转换成XML文档 500

17.2.5 示例开发:使用XSLT进行文档转换 503

17.3 Spring集成PDF/Excel 504

17.3.1 简介 504

17.3.2 示例开发:部署、配置Web应用和模型数据采集 504

17.3.3 示例开发:把模型数据转换成PDF和Excel视图 505

17.4 Spring集成Struts 508

17.4.1 集成概述和手法 508

17.4.2 Spring应用上下文装载的两种方式 509

17.4.3 使用Spring的ActionSupport类整合Struts 510

17.4.4 使用Spring的DelegatingRequestProcessor覆写Struts的RequestProcessor 512

17.4.5 使用Spring代理委托管理StrutsAction 514

17.4.6 使用Spring拦截Struts Action,替换宠物店的安全策略 515

17.5 Spring集成WebWork2 519

17.6 Spring集成Tapestry4 522

17.6.1 Tapestry4背后的IoC容器:HiveMind 522

17.6.2 部署环境和逻辑分层 522

17.6.3 分层重构:引入表现层的业务注射,转移业务逻辑 523

17.6.4 分层重构:引入业务层,实现业务逻辑 524

17.6.5 分层重构:引入工具层,向Tapestry应用注射Spring上下文 524

17.6.6 集成配置:Web应用配置、修改组件规范文件 525

17.6.7 集成配置:通过HiveMind和工具类,衔接Spring 526

17.7 小结 528

第18章 Spring和单元测试 529

18.1 模仿对象 529

18.2 Spring Mock简介 529

18.2.1 Spring Mock Web简介 530

18.2.2 扩展IUnit框架的测试基类 530

18.3 Spring Mock快速指南 531

18.3.1 Web组件的单元测试:搭建测试环境 531

18.3.2 Web组件的单元测试:视图转发 533

18.3.3 Web组件的单元测试:会话状态 533

18.3.4 Web组件的单元测试:简单逻辑 534

18.3.5 事务性单元测试:使用Spring Mock事务基类搭建测试环境 535

18.4 EasyMock快速指南 538

18.4.1 EasyMock简介 538

18.4.2 组件单元测试:搭建测试环境 539

18.4.3 组件单元测试:模拟业务接口和领域对象的交互 540

18.4.4 组件单元测试:模拟具体类和DAO的交互 541

18.5 结合使用Spring Mock和EasyMock 541

18.5.1 Web组件单元测试:模拟控制器和业务接口、领域对象的交互 542

18.5.2 Web组件单元测试:重定向测试 545

第19章 Spring和JMX技术 547

19.1 JMX概述 547

19.2 JMX的体系分层架构 547

19.2.1 核心组件 548

19.2.2 设备层(Instrumentation Level) 549

19.2.3 代理层(Agent Level) 550

19.2.4 分布服务层(Distributed Service Level) 552

19.2.5 附加管理协议API 552

19.3 JMX编程实践 553

19.3.1 标准MBean编程:MBearn接口和实现类 553

19.3.2 标准MBean编程:JMX Agent 554

19.3.3 标准MBean编程:手工和可视化注册MBean 555

19.3.4 通知模型编程 557

19.3.5 动态MBean和辅助元数据类编程 561

19.3.6 JMX连接器(Connectors)编程:基本流程 562

19.3.7 JMX Connectors编程:准备MBean套件和监听器 563

19.3.8 JMX Connectors编程:创建服务器 565

19.3.9 JMX Connectors编程:创建客户端 567

19.4 Spring对JMX的集成支持 568

19.4.1 Spring集成JMX概述 568

19.4.2 视Spring Bean为JMX MBean:简单的JavaBean配置 569

19.4.3 视Spring Bean为JMX MBean:客户代码 571

19.4.4 视Spring Bean为JMX MBean:自动侦测并且注册MBean 572

19.4.5 视Spring Bean为JMX MBean:ObjectName命名策略 574

19.4.6 Spring的JSR-160 Connector支持:服务器端配置和代码 576

19.4.7 Spring的JSR-160 Connector支持:客户端配置和代码 578

19.4.8 Sping集成JMX技术展望 579

第20章 从Spring宠物店看企业应用架构模式 580

20.1 企业应用架构模式(POEAA)简介 580

20.1.1 什么是企业应用架构模式 580

20.1.2 架构和分层 580

20.1.3 企业应用 580

20.2 宠物店和分层 581

20.3 宠物店和领域逻辑 582

20.3.1 如何组织领域逻辑 582

20.3.2 事务脚本 583

20.3.3 领域模型的基本概念 585

20.3.4 领域模型的持久 588

20.3.5 服务层 589

20.4 宠物店和数据源架构模式 591

20.5 宠物店和Web表现模式 592

20.5.1 模板视图 592

20.5.2 转换视图 592

20.5.3 两步视图 592

返回顶部