Spring框架学习笔记(1)

时间:2022-05-20 16:15:50

Spring 框架学习笔记(1)

一、简介

  • Rod Johnson(spring之父)

  • Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架,以IoC(Inversion of Controll,控制反转,解耦)和AOP(Aspect oriented programming,面向切面编程,底层是动态代理)为内核。

  • 提供:能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

    • 表示层Spring MVC

    • 持久层Spring JDBCTemplate,Spring Data JPA

    • 业务层事务管理等等

二、Spring的优势

  1. 方便解耦,简化开发

  2. AOP编程的支持

  3. 声明式事务的支持

  4. 方便程序的测试

  5. 方便集成各种优秀框架

  6. 降低JavaEE API的使用难度

  7. Java源码是经典学习范例

三、Spring的体系结构

  Spring框架学习笔记(1)

四、控制反转 IOC

  • IoC:Inversion of Control,控制反转。是指 把创建对象的控制权交给框架:要想得到一个对象,由原来的主动创建对象,变成自己被动接收 框架创建的对象。

  • IoC是Spring的核心思想之一

  • 作用:用于降低程序间的耦合性

  • IoC设计模式:工厂设计模式

  (1)XML的IoC

注册bean:

  • 配置示例:<bean id=" " class=" " scope=" " init-method=" " dedtroy-method=" ">

  • id属性:bean对象的唯一标识

  • class属性:bean的全限定类名

  • scope属性:bean的作用范围(singleton:默认值,单例的;prototype:多例的)

  • init-method属性:指定一个初始化方法

  • dedtroy-method:指定一个销毁方法

bean 实例化的三种方式:

  1. 无参构造方法实例化,默认的:让Spring调用bean的无参构造,生成bean实例对象给我们。

  2. 工厂静态方法实例化:让Spring调用一个工厂类的静态方法,得到一个bean实例对象。

  3. 工厂非静态方法实例化(实例化方法):让Spring调用一个工厂对象的非静态方法,得到一个bean实例对象。

依赖注入:下面讲

  (2)注解的IoC

  (3)纯注解的IoC

五、依赖注入DI

  (1)依赖注入:Dependency Injection,是Spring的Ioc核心的具体实现。(也叫 自动装配)

    • 类里依赖什么,由Spring注入(提供)什么

  (2)三种常见注入方式:

    • set方法注入

    • 构造方法注入

    • p名称空间注入

(3)注入集合数据:

    比如:给数组、List、Set、Map等注入数据

    所有单列结构的数据集合,标签可以互换使用。例如:List、Set、数组等

    所有键值对结构的数据集合,标签可以互换使用。例如:Map、Properties等