Spring高级程序设计

时间:2023-01-20 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

Spring是一个完整的J2EE框架和解决方案,完整并且模块化,你可以用的他的全部也可以只用他的一部分特性,Spring 包含 IoC, AOP, 事务处达调等理,ORM, 当然也包括一个简单的MVC框架。作为最强大、应用最广泛的企业级Java开风三如比识眼声发框架,Spr来自ing因其强大的适应性和可扩展性而适用于各种企业级系统。

  • 中文名 Spring高级程序设计
  • 出版社 Apress
  • 作者 Jan Machacek, Jessica Ditt, Aleksa Vukotic, Anirvan Chakraborty
  • 出版时间 2009-09-07
  • 原版名称 Pro Spring 2.5

摘要

  本书对Spring开发框架的核心概念及关键模块进行了深入剖析,并结合示例展示了它们的具体应用。本书共分 4部分。第一来自部分介绍 Spring框架的基础知识,重点阐述了 调举征AOP和 IOC的基本概念;第二部分介绍 Spring对数据持久化的支持,从基础的 JDBC开始,讲解了 Spring对应用最广泛的 O设化司示复RM框架 iBATIS和 Hi十视声有能务bernate的支持360百科;第三部分阐述了 Spring企业级组件,介绍了任务调度、Mail服务、动态语言等企业级组件相关的知识;第四部分阐述如何使用 Spring进行 Java EE 5开发,从远程调用和事务管理开始,接着介绍了 Spring MVC、Web工作流、AJAX、JMX、单元测试以及性能调优等 Java EE相关开发知识。

  本书由 Spring框架核心开发人员撰写,适合各层次 Java开发人员,特别是企业级 Java开发人员阅读参考。

目录

  第一部分 Spring入门

  第1章 Spring简介 2

  1.1 Spring是府否思笑正罪什么 2

  1.1妈送独巴防领光采艺记金.1 依赖注入之外的特性 4

  1.1.2 使用Spring进行面向方面编程 4

  1.1.3 数据访问 5

  1.1.4 简化与整合Java EE 5

  1.1.5 基于Spring的任务调度 6

  1.1.6 Spring对邮件的支持 6

 还曲度员言学什 1.1.7 动态语言 6

  1.1.8 远程访问 6

  1.1.9 事务管理 7

  1.1.10 Spring MVC框架 7

  1.1.11 Spring Web Flow 7

曾改与动失找数半政治外  1.1.12 A磁格停衡且JAX技术 7

  1.1.13 国际化 8

  1.1.14 简化异值生进训混为均各低谁免常处理 8

  1.2 Spring项目 8

  1.2.1 Spring的升变院王断长随曲比料起源 8

  1.2.2 Spring .NET 8

  1.2.3 Spring IDE 9

  1.2.4 Spring安苏针总布居断滑脚全系统(原Acegi) 9

  1.2.5 Spring的替代方案 9

  1.3 示例代引弱师坐进服呀工常脚参码 10

  1.4 小结 10

  第2章 Spring入门 11

  2.1 获取Spr露状况强坚ing框架 11

  2.1.1 从CVS上签出Spring 11

  2.1.2 从源码构建Spring 12

  2.1.3 检查Spring发布包 13

  2.1.4 Spring发布包 13

  2.1.5 Spring依赖的包 14

  2.1.6 示例应用 16

  2.1.7 配置Spring和IDE 18

  2.2 HelloWorld示例 20

  2.3 Spring版本的"Hello, World"示例 23

  2.3.1 依赖注入 24

  2.3.2 Spring的侵入性 26

  2.4 小结 26

  第3章 控制反转 27

  3.1 控制反转和依赖注入 27

  3.2 控制反转的类型 27

  3.2.1 上下文依赖查找 29

  3.2.2 构造方法依赖注入 30

  3.2.3 设置方法依赖注入 31

  3.2.4 依赖注入与依赖查找 32

  3.2.5 设置方法注入与构造方法注入 33

  3.3 Spring中的控制反转 34

  3.4 基于Spring的依赖注入 34

  3.4.1 bean和BeanFactory 34

  3.4.2 BeanFactory实现 35

  3.4.3 XML bean定义 36

  3.4.4 构造方法注入 37

  3.4.5 注入参数 40

  3.4.6 理解bean的命名 50

  3.4.7 bean的实例化模式 52

  3.4.8 解析依赖 55

  3.4.9 bean的自动装配 57

  3.4.10 依赖检查 61

  3.4.11 bean的继承 62

  3.5 小结 64

  第4章 进阶 66

  4.1 Spring对应用程序可移植性的影响 67

  4.2 管理bean的生命周期 67

  4.2.1 嵌入bean的创建 68

  4.2.2 嵌入bean的销毁 74

  4.3 让bean可被Spring感知 79

  4.3.1 使用BeanNameAware接口 80

  4.3.2 使用BeanFactoryAware接口 81

  4.4 使用方法注入(method injection) 83

  4.4.1 查找方法注入 83

  4.4.2 方法替换 88

  4.5 使用FactoryBean接口 91

  4.5.1 MessageDigestFactoryBean类 91

  4.5.2 直接访问FactoryBean 94

  4.6 BeanFactoryPostProcessor类 94

  4.7 JavaBean的属性修改器 101

  4.7.1 内建的PropertyEditor 101

  4.7.2 创建自定义PropertyEditor 104

  4.8 BeanPostProcessor类 108

  4.8.1 实现一个BeanPostProcessor 110

  4.8.2 使用BeanPostProcessor类的实机选择 114

  4.9 Spring ApplicationContext 115

  4.9.1 ApplicationContext的实现类 115

  4.9.2 使用ApplicationContext-Aware 116

  4.9.3 控制bean的初始化 117

  4.9.4 使用基于注解的配置 118

  4.9.5 使用MessageSource进行国际化 123

  4.9.6 在独立应用中使用MessageSource 130

  4.9.7 MessageSourceResolvable接口 130

  4.9.8 使用应用程序事件 130

  4.9.9 对于事件用法的考虑 132

  4.9.10 访问资源 133

  4.10 小结 134

  第5章 Spring AOP基础 135

  5.1 AOP概念 136

  5.2 AOP的类型 136

  5.2.1 静态AOP 137

  5.2.2 动态AOP 137

  5.2.3 选择一种AOP类型 137

  5.3 Spring中的AOP 137

  5.3.1 AOP联盟 138

  5.3.2 AOP的Hello World 138

  5.3.3 Spring AOP架构 140

  5.3.4 ProxyFactory类 140

  5.3.5 在Spring中创建通知 141

  5.4 Spring里的通知者和切入点 155

  5.4.1 切入点接口 156

  5.4.2 使用ComposablePointcut 172

  5.4.3 切入点总结 175

  5.5 代理详解 176

  5.5.1 理解代理 176

  5.5.2 使用JDK动态代理 176

  5.5.3 使用CGLIB代理 177

  5.5.4 两者的性能比较 177

  5.5.5 选用代理 180

  5.6 小结 180

  第6章 AOP进阶 182

  6.1 @AspectJ注解 182

  6.2 @AspectJ方面详解 186

  6.2.1 切入点 186

  6.2.2 切入点表达式 189

  6.2.3 探讨切入点表达式 191

  6.2.4 在XML中使用@Pointcuts 194

  6.2.5 通知的类型 194

  6.2.6 参数绑定 201

  6.2.7 引入 202

  6.2.8 方面的生命周期 208

  6.3 AOP的框架服务 209

  6.3.1 使用AOP命名空间创建第一个方面 209

  6.3.2 AOP命名空间中的切入点 211

  6.3.3 使用AOP命名空间创建通知 212

  6.3.4 AOP命名空间中的引入 217

  6.4 风格选择 219

  6.5 使用Spring AOP代理 220

  6.6 AspectJ集成 225

  6.6.1 创建第一个AspectJ方面 225

  6.6.2 编译示例程序 227

  6.6.3 AspectJ方面的作用域 229

  6.7 加载时织入 230

  6.7.1 第一个加载时织入示例 230

  6.7.2 LoadTimeWeaver的查找策略 232

  6.8 AOP实践 232

  6.9 小结 235

  第7章 Spring schema与命名空间 236

  7.1 新配置的缘由 236

  7.2 Spring 2.5包含的schema 238

  7.2.1 beans schema 238

  7.2.2 上下文schema 239

  7.2.3 util schema 239

  7.2.4 tx schema 242

  7.2.5 aop schema 242

  7.2.6 jee schema 242

  7.2.7 lang schema 243

  7.3 schema背后 244

  7.4 自定义schema 246

  7.5 IDE配置 249

  7.6 小结 252

  第8章 Spring模式 253

  8.1 目录结构 253

  8.1.1 简单应用 253

  8.1.2 复杂应用 255

  8.1.3 打包和命名 255

  8.2 设计模式简介 255

  8.2.1 面向接口编程 256

  8.2.2 创建模式 256

  8.2.3 结构模式 260

  8.2.4 行为模式 262

  8.3 Spring应用模式 264

  8.3.1 分层设计 265

  8.3.2 高性能分页 266

  8.3.3 多错误报告 268

  8.3.4 用户界面事务 271

  8.3.5 后台进程 274

  8.3.6 邮件通知 278

  8.3.7 错误收集和日志 280

  8.4 小结 283

  第二部分 数据访问

  第9章 Spring对JDBC的支持 286

  9.1 JDBC的主要概念 286

  9.1.1 使用DriverManager和Connection 288

  9.1.2 使用PreparedStatement 289

  9.1.3 使用CallableStatement类 292

  9.1.4 其他JDBC概念 293

  9.2 Spring对数据访问支持的概念 293

  9.3 Spring对JDBC数据访问的支持 294

  9.4 使用JdbcTemplate类 294

  9.4.1 JdbcTemplate类的execute方法 296

  9.4.2 JdbcTemplate类的query方法和该方法的扩展 299

  9.4.3 JdbcTemplat类的update方法 303

  9.4.4 JdbcTemplate类的batchUpdate方法 304

  9.5 RdbmsOperation子类 305

  9.5.1 SqlUpdate子类 306

  9.5.2 BatchSqlUpdate子类 311

  9.5.3 SqlCall类和StoredProcedure子类 312

  9.5.4 SqlQuery类和它的子类 314

  9.5.5 JdbcTemplate类和RdbmsOperation类的比较 321

  9.6 大二进制对象 321

  9.7 JdbcDaoSupport类 324

  9.8 简单的Spring JDBC 326

  9.8.1 SimpleJdbcTemplate类 326

  9.8.2 SimpleJdbcCall类 329

  9.8.3 SimpleJdbcInsert类 331

  9.8.4 SimpleJdbcDaoSupport类 332

  9.9 小结 333

  第10章 集成iBATIS 334

  10.1 iBATIS简述 334

  10.1.1 iBATIS版本 334

  10.1.2 基础架构和配置 335

  10.2 映射文件 335

  10.2.1 sqlMap文件 337

  10.2.2 配置iBATIS和Spring 339

  10.3 查询数据 341

  10.3.1 简单查询操作 341

  10.3.2 一对一查询操作 344

  10.3.3 一对多查询操作 348

  10.3.4 多对多查询操作 350

  10.4 更新数据 350

  10.5 删除数据 353

  10.6 插入数据 354

  10.7 iBATIS缺少的特性 356

  10.8 整体性能 357

  10.9 小结 358

  第11章 Spring对Hibernate的支持 359

  11.1 Hibernate入门 359

  11.2 Hibernate打包 360

  11.3 Hibernate支持的介绍 361

  11.3.1 使用Hibernate Session 363

  11.3.2 使用HibernateDaoSupport类 366

  11.3.3 HibernateTemplate和Session间的选择 368

  11.4 在企业级应用程序中使用Hibernate 372

  11.4.1 阻止更新脏数据 372

  11.4.2 对象等价性 375

  11.4.3 事务支持 378

  11.4.4 延迟加载 382

  11.5 处理大数据集 392

  11.6 处理大对象 394

  11.7 使用Hibernate处理其他DAO代码 397

  11.8 小结 398

  第三部分 企业级应用组件

  第12章 基于Spring的任务调度 400

  12.1 使用JDK Timer调度任务 401

  12.1.1 Timer触发器类型 401

  12.1.2 创建一个简单任务 401

  12.1.3 Spring对JDK Timer调度的支持 404

  12.2 使用OpenSymphony Quartz来调度任务 409

  12.2.1 Quartz简介 410

  12.2.2 Spring对Quartz的支持 418

  12.3 任务调度时需考虑的因素 423

  12.3.1 选择一个调度器 423

  12.3.2 剥离Job类中的任务逻辑 424

  12.3.3 任务执行和线程池 424

  12.4 小结 428

  第13章 Spring的邮件支持 429

  13.1 Spring Mail API结构 430

  13.2 发送简单的电子邮件 430

  13.2.1 编程式构造和发送电子邮件 431

  13.2.2 声明式构造电子邮件 433

  13.3 构造并发送MIME消息 436

  13.3.1 发送基本的HTML消息 438

  13.3.2 发送带有内嵌图片的HTML消息 439

  13.3.3 发送带有附件的消息 441

  13.3.4 发送带有可替换纯文本的HTML消息 442

  13.3.5 发送复杂MIME消息 445

  13.4 深入了解企业级电子邮件处理 449

  13.5 小结 458

  第14章 动态语言 459

  14.1 支持的动态语言概览 459

  14.1.1 BeanShell 459

  14.1.2 Groovy 461

  14.1.3 JRuby 462

  14.2 使用动态语言定义Spring bean 463

  14.2.1 动态语言支持的幕后 465

  14.2.2 代理动态语言bean 466

  14.2.3 性能 466

  14.3 可刷新bean(refreshable bean) 468

  14.4 基于BeanShell的bean 470

  14.5 基于JRuby的bean 472

  14.6 基于Groovy的bean 473

  14.7 动态语言在Spring程序中的典型应用 473

  14.8 小结 477

  第四部分 Java EE 5应用开发

  第15章 Spring远程访问 480

  15.1 Spring Remoting架构 481

  15.2 远程方法调用 482

  15.2.1 开放任意的服务 482

  15.2.2 通过代理访问RMI服务 484

  15.2.3 开放CORBA服务 486

  15.2.4 访问CORBA服务 488

  15.3 使用JAX-RPC实现Web服务 490

  15.3.1 Apache Axis简介 490

  15.3.2 使用ServletEndpoint- Support创建Web服务 490

  15.3.3 使用代理访问RPC风格的Web服务 494

  15.3.4 与Axis服务的JavaBean交互 497

  15.4 使用JAX-WS Web服务 500

  15.4.1 通过SimpleJaxWsService-Exporter公开Web服务 501

  15.4.2 使用XFire公开Web服务 501

  15.4.3 访问JAX-WS Web服务 503

  15.4.4 从其他客户端访问Java Web服务 504

  15.5 使用HTTP Invoker创建Web服务 507

  15.5.1 开发简单服务 508

  15.5.2 通过代理访问HTTP Invoker服务 510

  15.5.3 在HTTP Invoker服务中使用任意对象 511

  15.5.4 使用HTTP基本认证 513

  15.6 远程架构的选择 516

  15.7 小结 517

  第16章 事务管理 518

  16.1 Spring事务抽象层简介 518

  16.2 分析事务属性 519

  16.2.1 探索TransactionDefinition接口 519

  16.2.2 使用TransactionStatus接口 520

  16.2.3 PlatformTransactionManager的实现 521

  16.3 对一个事务管理示例的探索 521

  16.4 编程式事务管理 529

  16.4.1 使用TransactionTemplate类 531

  16.4.2 编程式事务管理小结 532

  16.5 声明性事务管理 532

  16.5.1 使用TransactionProxy-FactoryBean 532

  16.5.2 在事务管理中使用代理的含义 534

  16.6 AOP事务管理 535

  16.6.1 使用基于注解的AOP事务管理 535

  16.6.2 使用XML AOP事务管理 537

  16.6.3 tx:advice标签简介 538

  16.6.4 XML AOP小结 539

  16.7 在多个事务性资源上使用事务 540

  16.8 实现你自己的事务同步 541

  16.9 小结 548

  第17章 基于Spring MVC的Web应用开发 549

  17.1 MVC架构 549

  17.2 Spring MVC介绍 550

  17.3 使用处理器映射 551

  17.4 Spring控制器 553

  17.4.1 AbstractController类 554

  17.4.2 ParameterizableView-Controller类 555

  17.4.3 MultiActionController类 555

  17.5 拦截器 558

  17.6 视图、本地化和主题 559

  17.6.1 以编程的方式使用视图 559

  17.6.2 使用视图解析器 561

  17.6.3 使用本地化消息 565

  17.6.4 使用Locale 565

  17.6.5 使用主题 565

  17.7 命令控制器 567

  17.7.1 使用表单控制器 568

  17.7.2 探索AbstractWizardForm- Controller 类 574

  17.7.3 文件上传 578

  17.8 处理异常 581

  17.9 Spring与其他Web技术 583

  17.9.1 使用JSP 583

  17.9.2 使用Velocity 600

  17.9.3 FreeMarker 604

  17.9.4 使用XSLT视图 608

  17.9.5 使用PDF视图 609

  17.9.6 实现PDF视图 610

  17.9.7 使用Excel视图 611

  17.9.8 使用Tiles 613

  17.9.9 JasperReports报表引擎 623

  17.10 Spring的约定优于配置 627

  17.10.1 控制器约定 628

  17.10.2 MultiActionController约定 628

  17.10.3 模型约定 629

  17.10.4 视图约定 630

  17.11 使用注解配置控制器 631

  17.11.1 @Controller注解 631

  17.11.2 @RequestMapping注解 632

  17.11.3 @RequestParam注解 633

  17.11.4 @ModelAttribute注解 633

  17.11.5 使用注解配置命令控制器 634

  17.12 小结 635

  第18章 Spring Web Flow 636

  18.1 Spring Web Flow简介 637

  18.1.1 核心概念 637

  18.1.2 获取Spring Web Flow 640

  18.1.3 Spring Web Flow依赖 642

  18.2 Hello, Web Flow! 642

  18.3 探索状态 646

  18.3.1 view状态 647

  18.3.2 decision状态 647

  18.3.3 end状态 648

  18.4 处理转换 648

  18.5 高级概念 650

  18.5.1 表达式语言和范围 650

  18.5.2 实现action 653

  18.5.3 模型数据绑定 654

  18.5.4 局部视图刷新 658

  18.5.5 映射流的输入与输出参数 658

  18.5.6 使用子流 659

  18.6 幕后的Spring Web Flow 660

  18.6.1 流执行架构 660

  18.6.2 流执行者 662

  18.6.3 流定义注册表 662

  18.6.4 流执行仓库 665

  18.7 集成Spring MVC 666

  18.7.1 流处理 666

  18.7.2 视图解析 667

  18.8 使用Spring Security构建安全的流 668

  18.8.1 第一步:添加SecurityFlow- ExecutionListener 668

  18.8.2 第二步:处理基本的认证和授权 668

  18.8.3 第三步:在流定义中定义安全规则 670

  18.9 问题解决 672

  18.9.1 带状态的导航控制 672

  18.9.2 浏览器导航栏支持和双提交(double submit) 672

  18.10 测试流定义 673

  18.11 小结 674

  第19章 Spring与AJAX 675

  19.1 DWR 675

  19.2 安装DWR 676

  19.3 针对DWR的Spring配置 676

  19.4 关于完整示例 677

  19.5 测试DWR配置 682

  19.6 运行完整示例 682

  19.7 DWR脚本基础 683

  19.7.1 使用简单的回调函数 683

  19.7.2 调用元数据对象 684

  19.8 engine.js文件 684

  19.8.1 调用批处理 684

  19.8.2 调用顺序 684

  19.8.3 错误和警告处理 684

  19.9 util.js脚本 685

  19.10 DWR的安全性 685

  19.11 DWR的优缺点 686

  19.12 小结 687

  第20章 使用Spring JMX 688

  20.1 JMX进阶 688

  20.2 开放Java Bean 689

  20.2.1 MBeanExporter类 689

  20.2.2 MBeanServer FactoryBean类 691

  20.2.3 在已有的MBean服务器上开放Bean 692

  20.2.4 Bean注册行为 692

  20.3 控制对象名 693

  20.4 控制管理接口 693

  20.4.1 MBeanInfoAssembler接口 693

  20.4.2 MethodNameBasedMBean-InfoAssembler接口 694

  20.4.3 用Java接口来控制管理接口 696

  20.4.4 使用源码级元数据 698

  20.5 远程使用Spring JMX 701

  20.5.1 开放远程MBean 701

  20.5.2 访问远程MBean 702

  20.5.3 代理MBean 702

  20.6 Spring JMX通知 703

  20.6.1 通知监听器 703

  20.6.2 发布通知 704

  20.7 小结 708

  第21章 使用Spring进行测试 709

  21.1 进行单元测试 709

  21.2 单元测试 711

  21.3 集成测试 715

  21.3.1 使用AbstractSpring- ContextTests 722

  21.3.2 使用AbstractDependency- InjectionSpringContext-Tests类 723

  21.3.3 使用AbstractTransac-tionalSpringContextTest 726

  21.3.4 使用AbstractAnnotation-AwareTransactionalTest 728

  21.3.5 JNDI 731

  21.4 Spring TestContext Framework 733

  21.4.1 应用上下文及使用TestContext Framework进行依赖注入 733

  21.4.2 使用TestContext Framework进行依赖注入 735

  21.4.3 TestContext Framework中的事务 736

  21.4.4 支持类 738

  21.5 测试覆盖 740

  21.6 小结 740

  第22章 Spring性能调优 741

  22.1 性能与响应 741

  22.2 探索企业应用的性能问题 741

  22.3 测量Java EE应用的性能 742

  22.3.1 测量目标 742

  22.3.2 确定必要的数据集 747

  22.3.3 改善数据访问层 748

  22.3.4 提高事务管理 757

  22.3.5 控制远程调用的性能 758

  22.3.6 了解视图性能 758

  22.4 使用缓存 759

  22.5 性能测试 760

  22.6 监控应用程序的状态和性能 762

  22.7 更多的性能调优资源 764

  22.8 小结 764

序言

  我最终入站支酸护举混决定不参加编写本书时,心情万分沉重。在这里我要感谢Jan,是他挺身来自而出,组织编写了本书。在过去三年中,Pro Spring已成为我生活的重要组成部分,最后放弃绝不是挥一挥衣袖那么轻松。由于我和Juergen还在为Spring框架2.0努力,我知道我没有时间参与本书的写作,毕360百科竟软件开发与写作不能同时进行。幸运的是,Jan帮我完成了这个心愿。

  当Jan感万几控底尔六光费终象和Apress出版社还计划着发布Pro Spring 2.0时,我和Juergen已经对Spring框架进行了很多的变更,无意中导致他们很难跟上Spring的变化。我至信或今清楚地记得,在更新所有的JSP表单标签时我有些难为情,我知道我给Jan增加了多少工作量。

  Spr菜孔重的杀反整吸握ing 2.5刚发布,Jan就做出了一个明智的选择,放弃Spring 2.0而采用Spring 2.5。Spring框架2.5体现了Spring框架和引欢药愿随因张再孔写身企业级Java框架的最新进展。对所有勤勉认真的Java开发人员来说,这本关于这个重要工具的专业指南应该是必读的。

  我至今仍记得,在Cake解决方案起始,我们决定再聘请一个开发人员。总的来说我们缺乏招聘的经验,招程序员更是难上加难。当时我们只是想招到个大学毕业生就不错了,但是没有想到就此找来的Jan是这么能干。

  在开始解菜战哪步皮工作的第一个星期,他从头编写了一个桌面邮件程序包,顺利地投入使用。在过去的5年中,Jan一直都是大部分Cake子项目的核心人物,其中多为基于Spring框架的大型Java产品。山范两激责干他的Spring知识来自于极其丰富的实践经验:自Spring 1.0版本以来,Jan一直在实际的项目中使用Spring并构建了成功的系统。

  令我赞赏的是,Jan意识到编写本书的工作量很大,仅靠他一个人不能完成,所以他组织了Cake解决方案组的其他成员来协助他。我感到格外兴奋,有这样一群真正的程序员、一群真正体会到宣报给效几Spring精髓的人来与大家分享知识,毫无疑问,很多人都会发现本书是不可缺少的参考书。

  因此,尽管无法参与本书的编写有些遗憾,但是体厚我仍很高兴,Jan出色地完成了许多人一直都在期盼的Pro Spring的更新版本特算

  希望大家尽情享受阅读的乐趣!

前言

  最近,Java业界发生了巨变,从如EJB(Enterprise JavaBean)的"重量级"架构体系向如Sp困零置教ring的轻量级框架迁移。Hibernate和AOP(面向情蛋冲方面编程)等更简单的实现机制代替了复杂并且依赖容器的服务(如CMP)和事务管理系统。Spring核心层提供了一个完善的基于控制反转(IoC)的轻量级容器,用户可以使用它建立自己的应用程序。在容器上,Spring提供了大量实用的服务,将很多高质量开源项目集成到统一的框架上。

  Spring框架的品质已经显现,它在很多应用中已经取代了传统的Java EE架构。因此,越来越多的开发者认识到需要对Spring技术有一个全面的了解。尽管Spring有着相当丰富的文档文拿资源和案例,但我们还是发现,仍然有许多开发者为了解如何使用Spring,特别是如何有效调小量历经叶把垂地运用Spring而苦苦探究。因此,我们决定为Pro Spring写一个新版本。

  起初,我们以为只需要在原有基础上更新几章即可推出Pro Spring 2.5。然而,我们很快就意识到,Spring 2.5带来了许多新的功能和改进,虽然我们一直保持着Pro Spring的名字,但这却是一本全新的书。

  通过本书,你将学习如何使用Spring来建立离规促余更好的Web应用和单机应用,如何在框架中进行恰当的选择。我们的目标是为你提供全面的知识,帮助你在自己的应用程序中有效地使用Spring,同时让你更深入了解Spring的机制。

  例如,你可跑袁除停钟触句多体以:

  在AOP上下文饭严五料倒现故中了解控制反转的相关基础知识;

  通过查看简单易懂的应用实例,了解Spring的强大功能和无缝集成能力;

  学习如何使用包括基于AOP的Spring声明式事务管理框架在内的Spring特性替换常用的EJB特性;

  使用Spring内置的JMX引擎高效管理Spring组件和应用;

  了解如何使用Quartz在Spring应用中实现任务调度。

  阅读完本书后,你将获得使用Spring及其相关开源项目构建高效应用的所有知识。

致谢

  任何书籍的编写都需要进行大量的幕后工作,在作者身后,是一支由编辑、校对和技术审稿人组成的杰出团队。本书也不例外,我们要感谢所有为本书付出心血的人。我们要感谢Rick,本书的技术审稿人,他尽心尽力的工作保证了本书的质量。感谢Apress出类拔萃的编辑团队,特别是SofiaMarchant、Tom Welsh编辑、Heather Lang、Kelly Winquist等人。如果没有他们的帮助,我们无法完成本书。同时,我们还要感谢Rob Harrop为本书作序。最后,我衷心地感谢Cake解决方案的总经理GuyRemond,是他让我们的团队可以占用一些工作时间撰写本书!

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关推荐

医患对话

.d7in4608,.cq80cika{display:none!important;} .vua04150j1i,.j4dw18t{display:inline-block;width:.1px;height:.1px;overflow:hidden;visibility:hidden;} 医患对话是田

后台-系统-系统设置-扩展变量-(内容页告位3-手机版)