1、企业级JAVA II,软件工程系:聂常红cred_,内容回顾:,使用Hibernate查询的方式有哪三种 “from Person order by id”中的Person是什么? Query接口的作用及其常用方法 常用HQL语句 Criteria查询及Criteria接口 Restrictions类 Order类,第14讲 Spring入门,14.1 Spring概述 14.2 Spring的配置文件 14.3 ApplicationContext 14.4 Spring框架的应用 14.5 Spring Bean的作用域 14.6 配置文件的加载,14.1 Spring概述,Spring是
2、一个开源的以控制反转(Inverse of Control,IoC)和面向切面(Aspect Oriented Programming,AOP)为核心的容器框架,用于简化企业级开发。 控制反转:应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责,控制权就由应用转移到外部容器,控制权的转移就称为控制反转。此时,可通过依赖注入的方式将对象注入到应用的组件中传统方式 依赖注入方式,为什么要使用Spring?,可以降低组件之间的耦合程序,实现软件各层之间的解耦。 Spring为我们提供了众多服务,如事务管理等 容器提供了单例模式支持 Spring提供了AOP技术,利用它可以很容易
3、实现权限拦截等功能 Spring为我们提供了众多的辅助类,如HibernateTemplate等类 Spring提供了对主流的应用框架(如Hibernate、Struts等)的集成支持,Spring程序运行环境的搭建:,从http:/www.springsource.org下载 Spring并解压文件 将distspring.jar和libjakarta-commonscommons-logging.jar两个jar文件构建到项目路径中(注意:这是针对Spring2.5来说的,对不同版本的Spring,所需的类包可能不同),14.2 Spring的配置文件,Spring配置文件定义了应用程序所
4、用到的各种bean,描述了bean与bean之间的依赖关系 配置文件使用标签来定义每个bean,必须设置以下两个属性: id:bean的标识符,其它bean通过该标识符来引用bean,在整个容器中必须唯一。 class:指定bean的实现类 配置文件的名字可以任意,并可保存在任何目录下,为便于移植,一般放在类路径下。 一个spring项目中,可以包含多个配置文件,配置文件模板:,14.3 ApplicationContext,BeanFactory(IoC容器):是Spring框架最核心的接口,是框架的基础结构,面向Spring本身。它提供了高级IoC的配置机制,使管理不同类型的Java对象成
5、为可能。 ApplicationContext(应用上下文,spring容器):建立在BeanFactory基础之上,提供了更多面向应用的功能,更易于创建实际应用。面向使用Spring框架的开发者。,ApplicationContext,ClassPathXmlApplication,FileSystemXmlApplication,BeanFactory,初始化Spring容器:,方式一:在类路径下寻代配置文件来实始化容器方式二:在文件系统路径下寻代配置文件来实始化容器,建议使用第一种方式,使用多个配置文件时需要使用字符串数组,默认情况下,ApplicationContext初始化时会实例化
6、容器中所有的Bean 此后,用户就可以通过应用上下文实例获取指定的Bean,在配置文件中定义bean,获取指定bean,14.4 Spring框架的应用,搭建Spring开发环境 配置Spring配置文件 初始化Spring容器 获取Bean实例 访问Bean业务方法,示例:,创建一个java项目 搭建Spring程序运行环境 创建一个接口及其实现类 创建一个业务类 配置Spring配置文件 创建测试类,创建业务类:,创建测试类:,14.5 配置文件的加载,在实际开发中,从表现层的Action到持久层的DataSource之间的所有对象都被Spring作为Bean来管理。如果这些Bean都配置
7、在同一个xml文件中,将不利于阅读和维护。 在Spring中,一般是将一个大的配置文件分成功能相近的多个小的配置文件来管理,在运行时再将这些配置文件加载汇总成一个配置文件。,配置文件的加载方式:,使用ApplicationContext加载多个配置文件 在XML配置文件中导入其它XML配置文件 Web应用启动时加载多个配置文件,使用ApplicationContext加载配置文件,在XML配置文件中导入其它XML配置文件,在配置文件中使用标签导入其它配置文件,每个配置文件使用一个来导入。,Web应用启动时加载多个配置文件,在企业级的Web应用开发中,ApplicationContext.xml
8、是在web.xml中配置的,此时可以通过实现ContextLoader接口声明式地创建ApplicationContext,而不用在代码中手动实例化ApplicationContext。 ContextLoader接口的实现类: ContextLoaderListener ContextLoaderServlet,适用Servlet2.3及以上,加载配置:在web.xml的之间添加以下配置:,14.6 Bean的作用域,singleton(默认作用域)在Spring 容器中一个bean类只有一个对象实例。默认情况下,会在Spring容器启动时实例化bean prototype每次从容器中获取bean都将产生新的对象,在Web应用中的控制器通常配置成此作用域。 request session gloabl session,示例:,创建一个java项目 将Spring中的distspring.jar和libjakarta-commonscommons-logging.jar两个jar文件构建到项目路径中 创建Bean类 在src目录下新建一个Spring的配置文件 创建测试类,创建测试类:,