《专题资料(2021-2022年)Java项目教学第一学期SSM框架讲义1Spring的基本应用.docx》由会员分享,可在线阅读,更多相关《专题资料(2021-2022年)Java项目教学第一学期SSM框架讲义1Spring的基本应用.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Spring+SpringMVC+MyBatis 讲义 1Spring 的基本应用1 Spring 的基本应用的基本应用1.1 Spring 概述概述1.1.1 什么是什么是 Spring?1)Spring 是开源的轻量级框架2)Spring 核心主要两部分:Aop:面向切面编程,扩展功能不是修改源代码实现IoC:控制反转,比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,需要用 new 创建类的对象,再使用对象调用方法。控制反转把对象的创建不是通过 new 方式实现,而是交给 Spring 配置,创建类对象。3)Spring 是一站式框架Spring 在 JavaEE 三层结
2、构中,每一层都提供不同的解决技术Web 层:SpringMVCService 层:Spring 的 IOCdao 层:spring 的 JDBCTemplate、与 ORM 框架的整合4)spring 版本Spring4.x1.1.2 Spring 的目录结构的目录结构docs 文件夹中包含 API 文档和开发规范Spring+SpringMVC+MyBatis 讲义 1Spring 的基本应用libs 文件夹中包含 JAR 包和源码Schema 文件夹中包含开发所需要的 schema(约束)文件核心 jar 包:spring-core-4.3.6.RELEASE.jarspring-bean
3、s-4.3.6.RELEASE.jarspring-context-4.3.6.RELEASE.jarspring-expression-4.3.6.RELEASE.jar第三方依赖包:commons.logging 的 JAR 包1.2 spring 的核心容器的核心容器1.2.1 BeanFactory基础类型的 IOC 容器,主要负责初始化各种 Bean,并调用他们的生命周期方法。创建 BeanFactory 实例时,需要提供 Spring 所管理容器的详细配置信息,这些信息通常采用 XML 文件形式来管理,如:applicationContext.xml1.2.2 Applicatio
4、nContextBeanFactory 的子接口,不仅包含了 BeanFactory 的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。通过 ClassPathXmlApplicationContext 创建ApplicationContext applicationContext=new ClassPathXmlApplicationContext(String configLocation);configLocation 参数用于指定 spring 配置文件的名称和位置。如果其值为“applicationContext.xml”,则 spring会去类路径(classPath)
5、中查找名称为 applicationContext.xml 的位置文件在 web 项目中,ApplicationContext 容器的实例化工作会交给 web 服务器来完成,通常会使用基于ContextLoaderListener 实现的方式,只需要在 web.xml 中添加如下代码,后面讲 3 大框架整合时将采用此种Spring+SpringMVC+MyBatis 讲义 1Spring 的基本应用方式:contextConfigLocationclasspath:spring/applicationContext.xmlorg.springframework.web.context.Cont
6、extLoaderListener创建 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 最基本的功能时,只需要最基本的核心类即可第二步:创建类
7、,在类里面创建方法/*在 src 目录下,创建一个 com.itheima.ioc 包,并在包中创建接口 UserDao,然后在接口中定义一个 say()方法。*/package com.itheima.ioc;public interface UserDao public void say();/*创建 UserDao 接口的实现类 UserDaoImpl,该类需要实现接口中的 say()方法,并在方法中编写一条输出语句。*/package com.itheima.ioc;public class UserDaoImpl implements UserDao public void say(
8、)System.out.println(userDao say hello World!);Spring+SpringMVC+MyBatis 讲义 1Spring 的基本应用第三步:创建 spring 配置文件,配置创建类配置文件中的约束信息不需要自己动手去编写,在 spring 的帮助文档中可以找到:打开 spring 解压文件夹中的 docs 目录,在 spring-framework-reference 文件夹下打开 html 文件夹,找到index.html 文件打开,在 Overview of Spring Framework 下的 7.2.1 小节 Configuration me
9、tadata 中即可找到。在复制后的 xsd 信息中加入 spring 的版本号信息即可,如:http:/www.springframework.org/schema/beans/spring-beans-4.3.xsd第四步:测试类的创建创建测试类 TestIoC,并在类中编写 main()方法。在 main()方法中,需要初始化 Spring 容器,并加载配置文件,然后通过 Spring 容器获取 userDao 实例(即 Java 对象),最后调用实例中的 say()方法。package com.itheima.ioc;import org.springframework.context
10、.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestIoC public static void main(String args)ApplicationContext applicationContext=new ClassPathXmlApplicationContext(applicationContext.xml);UserDao userDao=(UserDao)applicationContext.getBean(
11、userDao);userDao.say();1.4 依赖注入依赖注入1.4.1 依赖注入的含义依赖注入的含义全称:Dependency Injection,它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。IoC:在使用 Spring 框架之后,对象的实例不再由调用者来创建,而是由 Spring 容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了 Spring容器,控制权发生了反转,这就是控制反转。DI:从 Spring 容器的角度来看,Spring 容器负责将被依赖对象赋值给调用者的成员变量
12、,这相当于为调用者注入了它依赖的实例,这就是 Spring 的依赖注入。Spring+SpringMVC+MyBatis 讲义 1Spring 的基本应用1.4.2 使用使用 setter 方法实现依赖注入方法实现依赖注入步骤:1)在 com.itheima.ioc 包中,创建接口 UserService,在接口中编写一个 say()方法。package com.itheima.ioc;public interface UserService public void say();2)在 com.itheima.ioc 包中,创建 UserService 接口的实现类 UserServiceIm
13、pl,在类中声明 userDao 属性,并添加属性的 setter 方法。package com.itheima.ioc;public class UserServiceImpl implements UserService private UserDao userDao;public void setUserDao(UserDao userDao)this.userDao=userDao;public void say()this.userDao.say();System.out.println(userService say hello World!);3)在配置文件 applicatio
14、nContext.xml 中,创建一个 id 为 userService 的 Bean,该 Bean 用于实例化UserServiceImpl 类的信息,并将 userDao 的实例注入到 userService 中。4)在 com.itheima.ioc 包中,创建测试类 TestDI,来对程序进行测试。package com.itheima.ioc;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestDI public static void main(String args)ApplicationContext applicationContext=new ClassPathXmlApplicationContext(applicationContext.xml);UserService userService=(UserService)applicationContext.getBean(userService);userService.say();