Java项目教学第一学期SSM框架讲义1Spring的基本应用

Java项目教学第一学期SSM框架讲义1Spring的基本应用
Java项目教学第一学期SSM框架讲义1Spring的基本应用

1 Spring的基本应用

1.1 Spring概述

1.1.1 什么是Spring?

1)Spring是开源的轻量级框架

2)Spring核心主要两部分:

Aop:面向切面编程,扩展功能不是修改源代码实现

IoC:控制反转,比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,需要用new创建类的对象,再使用对象调用方法。控制反转把对象的创建不是通过new方式实现,而是交给Spring配置,创建类对象。

3)Spring是一站式框架

Spring在JavaEE三层结构中,每一层都提供不同的解决技术

Web层:SpringMVC

Service层:Spring的IOC

dao层:spring的JDBCTemplate、与ORM框架的整合

4)spring版本

Spring4.x

1.1.2 Spring的目录结构

docs文件夹中包含API文档和开发规范

libs文件夹中包含JAR包和源码

Schema文件夹中包含开发所需要的schema(约束)文件

核心jar包:

spring-core-4.3.6.RELEASE.jar

spring-beans-4.3.6.RELEASE.jar

spring-context-4.3.6.RELEASE.jar

spring-expression-4.3.6.RELEASE.jar

第三方依赖包:commons.logging的JAR包

1.2 spring的核心容器

1.2.1 BeanFactory

基础类型的IOC容器,主要负责初始化各种Bean,并调用他们的生命周期方法。

创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理,如:applicationContext.xml

1.2.2 ApplicationContext

BeanFactory的子接口,不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。

通过ClassPathXmlApplicationContext创建

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation);

configLocation参数用于指定spring配置文件的名称和位置。如果其值为“applicationContext.xml”,则spring 会去类路径(classPath)中查找名称为applicationContext.xml的位置文件

在web项目中,ApplicationContext容器的实例化工作会交给web服务器来完成,通常会使用基于ContextLoaderListener实现的方式,只需要在web.xml中添加如下代码,后面讲3大框架整合时将采用此种方式:

创建spring容器后,就可以获取spring容器中的Bean,方法有2种:

1)Object getBean(String name);

根据容器中Bean的id或name来获取指定的Bean,获取之后需要进行强制类型转换。

2) T getBean(Class requiredType);

根据类的类型来获取Bean的实例。由于此方法为泛型方法,因此在获取Bean之后不需要进行强制类型转换。

1.3 spring入门程序

步骤:

第一步:导入jar包,用spring最基本的功能时,只需要最基本的核心类即可

第二步:创建类,在类里面创建方法

第三步:创建spring配置文件,配置创建类

配置文件中的约束信息不需要自己动手去编写,在spring的帮助文档中可以找到:

打开spring解压文件夹中的docs目录,在spring-framework-reference文件夹下打开html文件夹,找到index.html文件打开,在Overview of Spring Framework下的7.2.1小节Configuration metadata中即可找到。

在复制后的xsd信息中加入spring的版本号信息即可,如:

第四步:测试类的创建

创建测试类TestIoC,并在类中编写main()方法。在main()方法中,需要初始化Spring容器,并加载配置文

件,然后通过Spring容器获取userDao实例(即Java对象),最后调用实例中的say()方法。

1.4 依赖注入

1.4.1 依赖注入的含义

全称:Dependency Injection,它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。

IoC:在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring 容器,控制权发生了反转,这就是控制反转。

DI:从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。

1.4.2 使用setter方法实现依赖注入

步骤:

1)在com.itheima.ioc包中,创建接口UserService,在接口中编写一个say()方法。

2)在com.itheima.ioc包中,创建UserService接口的实现类UserServiceImpl,在类中声明userDao属性,并添加属性的setter方法。

3)在配置文件applicationContext.xml中,创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将userDao的实例注入到userService中。

4)在com.itheima.ioc包中,创建测试类TestDI,来对程序进行测试。

相关主题
相关文档
最新文档