移动商务应用软件开发第11章_第1页
移动商务应用软件开发第11章_第2页
移动商务应用软件开发第11章_第3页
移动商务应用软件开发第11章_第4页
移动商务应用软件开发第11章_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移动商务应用软件开发 JavaEE 课程目标 掌握JavaEE概念及开发环境的设置熟练使用Jsp和Servlet完成简单的网站建设掌握Struts和Struts2的原理及应用熟练使用Hibernate完成数据持久化理解并掌握JPA的产生和作用掌握Spring框架的使用 熟练完成SSH框架的整合掌握EJB概念及使用 第11章Spring框架简介 本章目标 明白Spring的作用和定位 理解控制翻转和依赖注入的功能原理 掌握通过MyEclipse实现简单的Spring应用 理解和掌握Spring的七层结构 了解Spring各部分JAR文件的功能 Spring框架 Spring是一个开源框架 它的目的是为了简化企业级系统开发而诞生的Spring从小里说 是个容器 往大里说 就是个框架Spring是轻量级的 它的Jar包只有1M多一点 而且 它是非侵入式的 你一般不需要在你的类里import它的包 Spring框架 Spring是一个轻量级的控制反转和面向切面的容器类框架面向切面编程 就是分离业务逻辑与系统级服务进行内聚性的开发 既应用对象的功能具有很强的针对性 Spring框架 Spring的特色及优点占用的资源较少Spring的控制反转机制面向切面的编程Spring也可以看成一个容器 Spring结构 AOP模块SpringAOP和AspectJ WebFramework模块SpringStrutsWebWorkJSF O R映射模块Hibernate JDO Web模块和工具模块 DAOJDBC模块 ApplicationContext模块 CoreContainer 核心容器 IOC容器 Spring结构 IOC核心容器 为Spring提供了基础功能 这个模块中BeanFactory这个类 是所有基于Spring框架系统的核心JDBC和DAO模块 编写持久层代码的时候 总要写一些模板代码 Spring将这些样板代码抽象出来AOP模块 用来为Spring应用系统开发切面的基础 Spring的AOP大部分都是基于AOPAlliance的API开发的 Spring结构 ApplicationContext 上下文 模块 这个模块对BeanFactory进行了扩展 添加了I18N 系统生命周期事件以及验证等 另外还提供了许多企业级服务ORM映射集成模块 它的作用是在关系型数据库和对象之间作一个映射MVC模块为构建Web应用提供了一个功能全面的MVC框架 Spring常用JAR文件 Spring简单应用 Spring的JAR文件导入可以直接导入spring jar 其包括了Spring所具有的所有功能还可以根据所需要的功能导入相应的JAR文件创建实体类一般要求该类应该实现Serializable接口要有无参的构造函数类中的属性一定要有标准的getXXX 和setXXX 方法创建相关的DAO类完成配置相应的XML文件 Spring配置文件 张三 Spring的容器 容器是Spring的核心 Spring有两种不同的容器Bean工厂 org springframework beans factory BeanFactory 是最简单的容器 是Spring基本的IOC容器 提供了基础的依赖注入支持应用上下文 org springframework context ApplicationContext 建立在Bean工厂基础之上 提供了系统构架服务 BeanFactory BeanFactory Bean工厂 是Spring基本的IOC容器Bean工厂采用了工厂设计模式 这个类负责创建和分发Bean Bean工厂是一个通用工厂 可以创建和分发各种BeanBean工厂还要参与到Bean的生命周期中 调用用户定义的初始化和销毁方法 BeanFactory Bean是被延迟加载到工厂中的 也就是Bean工厂会立即把Bean定义信息载入近来 但是Bean只有在被需要的时候才被实例化使用getBean方法获得BeanXXXBeanbean XXXBean factory getBean xxxBean BeanFactory实例获取方式 Resourceresource newFileSystemResource applicationContext xml BeanFactoryfactory newXmlBeanFactory resource 或者ClassPathResourceresource newClassPathResource applicationContext xml BeanFactoryfactory newXmlBeanFactory resource 或者ApplicationContextcontext newClassPathXmlApplicationContext newString applicationContext xml applicationContext part2 xml BeanFactoryfactory BeanFactory context BeanFactory的主要方法 booleancontainsBean String 如果BeanFactory包含给定名称的bean定义 或bean实例 则返回trueObjectgetBean String 返回以给定名字注册的bean实例ObjectgetBean String Class 返回以给定名称注册的bean实例 并转换为给定class类型的实例ClassgetType Stringname 返回给定名称的bean的ClassbooleanisSingleton String 判断给定名称的bean定义 或bean实例 是否为singleton模式 高级容器 应用上下文 ApplicationContext接口是context包的核心 它由BeanFactory接口派生而来ApplicationContext提供了更多功能 文本信息解析工具 国际化应用资源访问事件传播载入多个上下文文件 上下文实例的获取方式 ApplicationContext实例的三种常用获取方式ClassPathXmlApplicationContextFileSystemXmlApplicationContextXmlWebApplicationContextApplicationContextcontext newClasspathXmlApplicationContext newString beans xml applicationContext xml classPathXmlApplicationContext beans xml FileSystemXmlApplicationContext d SpringTest applicationContext xml Spring内置事件 Spring中Bean生命周期 容器寻找Bean的定义信息并将其实例化使用依赖注入如果Bean实现了BeanNameAware接口 工厂调用Bean的setBeanName 方法如果Bean实现了BeanFactoryAware接口 工厂调用setBeanFactory 方法如果有BeanPostProcessor和Bean关联 那么它们的postProcessBeforeInitialzation 方法被调用 Spring中Bean生命周期 如果Bean指定了init method方法 他将被调用如果有BeanPostProcessor和Bean关联 那么它们的postProcessorAfterInitialization 方法被调用Bean已经实例化出来了 可以被应用使用了如果Bean实现了DisposableBean接口 destroy 方法被调用如果指定了定制的销毁方法 就调用这个方法 SpringIOC Spring提供了管理业务对象的一致方法 并且鼓励面向切面编程的良好习惯优点 在调用类中不直接实例化实现类 同时借助动态多态性实现对实现类中的方法调用 因此 纵然实现类发生变化 调用代码仍然可以不需要修改 这样给系统的维护与功能的扩展带来便利 降低对象之间的耦合度或子系统之间的耦合度利用spirng的IOC可以将接口和实现分离 具有更强的适用性 Spring依赖注入 依赖注入DI DependencyInjection 可以作为IOC的另一种描述依赖注入的目标并非为软件系统带来更多的功能 而是为了提升 组件重用 的概率 同时也为系统搭建一个灵活 可扩展的平台DI的使用提高了组件的可移植性和可重用度 减轻了组件之间的依赖关系 这也是J2EE平台倡导 松藕合 的系统开发要求 Spring依赖方式 Spring提供的三种不同的依赖注入的方式Constructor 构造器 注入 是指把对象依赖的实体作为对象构造器的参数传入完成对象的实例化Setter 属性值 注入 将对象的依赖通过JavaBean的setter方法传给对象 建立对象之间的关联关系interface 接口 注入 通过接口注入方式 开发人员可以将方法直接注入给一个类 Setter 属性值 注入 用Setter方式为Person类注入具体数值张三北京市25 Construtor 构造器 注入方式 SpringAOP技术 AOP AspectOrientedProgramming 既面向切面编程的技术AOP基于IOC基础 是对面向对象编程的有益补充 IOC容器并不依赖于AOP 而AOP进一步完善了Spring的IOC容器AOP将应用系统分为两部分 核心业务逻辑 Corebusinessconcerns 及横向的通用逻辑 也就是所谓的切面 Crosscuttingenterpriseconcerns AOP主要概念 切面 Aspect 一个关注点的模块化 这个关注点实现可能另外横切多个对象 事务管理是J2EE应用中一个很好的横切关注点例子 方面用Spring的Advisor或拦截器实现连接点 Joinpoint 程序执行过程中明确的点 如方法的调用或特定的异常被抛出通知 Advice 在特定的连接点 AOP框架执行的动作 各种类型的通知包括 around before 和 throws 通知 通知类型将在下面讨论 许多AOP框架包括Spring都是以拦截器做通知模型 维护一个 围绕 连接点的拦截器链切入点 Pointcut 指定一个通知将被引发的一系列连接点的集合 AOP框架必须允许开发者指定切入点 例如 使用正则表达式 AOP主要概念 引入 Introduction

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论