[Spring 01] Spring IOC入门

Spring的基本概述

这篇Blog将简单介绍Spring及其特性,并简单介绍Spring的IOC开发入门。

什么是Spring?

  • spring是一个开源的轻量级J2SE/EE开发的一站式框架。所谓一站式是指Spring在J2EE开发的每一层都有相应的解决方案,例如针对Web层,提供SpringMVC;针对Service层,提供Spring的Bean管理、Spring声明式事务;针对DAO层,提供Spring的JDBC模板ORM模块等等。

为什么学习Spring?

  • Spring框架通过提供IOC避免程序过度耦合,简化开发;
  • Spring提供AOP功能,方便进行面向方面的编程;
  • Spring提供声明式事务的支持,通过声明式方式灵活地进行事务管理,提高开发效率和质量;
  • 方便程序的测试;
  • Spring框架方便继承各种优秀的框架;
  • Spring降低了Java EE API的使用难度,对许多难用的J2EE API进行简单封装,降低使用难度。

Spring开发包

  • 官网:http://spring.io/
  • 开发包说明:
    • dist 为Spring框架
    • docs 为说明文档
    • schema 为Spring框架约束
    • dependencies 为框架依赖库
  • 解压Spring框架
    • docs :Spring的开发规范和API
    • libs :Spring的开发的jar和源码
    • schema :Spring的配置文件的约束

Spring IOC开发入门

IOC(Inversion of Control)控制反转。将对象的创建权反转给Spring。

创建Spring项目

  • 引入Spring的jar包

    Spring的核心容器为Beans、Core、Context以及SpEL,对应的从解压后的Spring框架中将对应的jar包复制到项目lib目录下,并为其创建路径:
  • Spring IOC的底层实现
    相较于传统的程序设计,Spring的底层由工厂类、反射机制以及位置文件来实现,具体如下图所示:
  • 将接口和实现类交给Spring管理
    • 在项目src目录下新建xml文件:applicationContext.xml
    • 在Spring的解压路径下 E:\Framwork\Spring\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\htmlxsd-configuration.html 这个说明文档网页的最下方 “Beans Schema” 部分复制配置文件信息,并添加配置将Dao的实现类加入配置:
  • 编写Spring方式测试类

IOC和DI

  • IOC:控制反转,将对象的创建权交给Spring管理
    • DI:依赖注入,前提必须是在IOC环境下,Spring管理这个类的创建时将类的依赖属性注入进来
  • 面向对象的关系
    • 依赖
      class A{ ... } class B{ public void xxx(A a){ ... } }
    • 继承(is a)
      class A{ ... } class B extends A{ ... }
    • 聚合(has a)

Spring的工厂类

  • Spring工厂类结构图

从图中可以看出ApplocationContext继承了BeanFactory

  • ApplicationContext(新版本工厂类)
    • 在加载配置文件时就会将Spring所管理的类都实例化;
    • ClassPathXmlApplicationContext : 加载类路径下(src)的配置文件
    • FileSystemXmlApplicationContext :加载文件系统下的配置文件
  • BeanFactory(老版本工厂类)
    • 在调用getBean()方法时才会对类实例化

你可能感兴趣的:(JavaEE,框架学习,Spring,IOC入门,DI)