Spring

  • 简化开发

  • IoC

  • AOP

事务处理

  • 框架整合

  • MyBatis

  • MyBatis-plus

  • Struts

  • Struts2

  • Hibernate

  • ...


Spring官网:Spring | Home

  • Spring Framework

  • Spring Boot

  • Spring Cloud


Spring Framework系统架构

Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基

  • Data Access : 数据访问

  • Data Integration : 数据集成

  • Web : Web开发

  • AOP : 面向切面编程

  • Aspects : AOP思想实现

  • Core Container : 核心容器

  • Test :单元测试与集成测试

Spring Framework学习线路

第一部分:核心容器

  • 核心概念(IoC/DI)

  • 容器基本操作

第二部分:整合

整合数据层技术MyBatis

第三部分:AOP

  • 核心概念

  • AOP基础操作

  • AOP实用开发

第四部分:事务

事务实用开发

第五部分:家族

  • SpringMVC

  • SpringBoot

  • SpringCloud


**核心概念
  • 由于代码耦合度偏高

  • 为了解决该问题,使用对象时,在程序中不主动使用new产生对象,转换为由外部提供对象

  • IoC(Inversion of Control)控制反转

对象的创建控制权由程序转移到外部,这种思想称为控制反转

使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转

  • Spring技术对IoC思想进行了实现

  • Spring提供了一个容器,称为IoC容器,用来充当IoC思想中的“外部”

  • IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对像在IoC容器中统称为Bean

  • DI(Dependency Injection)依赖注入

在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入

  • 目标:充分解耦

  • 使用IoC容器管理bean(IoC)

  • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)

  • 最终效果

使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系


IoC入门案例

①导入Spring坐标

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.10.RELEASE</version>
</dependency>

②定义Spring管理的类(接口)

public interface BookService{
    public void save();
}
public class BookServiceImpl implements BookService{
    public BookDao bookDao = new BookDaoImpl();
    public void save(){
        bookDao.save();
    }
}

③创建Spring配置文件,配置对应类作为Spring管理的bean

④初始化IoC容器,通过容器获取bean

public class App2 {
    public static void main(String[] args) {
        //3.获取IoC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //4.获取bean(根据bean配置id获取)
//        BookDao bookDao = (BookDao) ctx.getBean("bookDao");
//        bookDao.save();

        BookService bookService = (BookService) ctx.getBean("bookService");
        bookService.save();

    }
}

DI入门案例

在上面的基础上进一步解耦

①删除使用 new的形式创建对象的代码

②提供依赖对象对应的setter方法

③配置service与dao之间的关系

bean别名配置

, ; 空格

bean作用范围

  • 默认 单例

  • 适合交给容器进行管理的bean

  • 表现层对象

  • 业务层对象

  • 数据层对象

  • 工具对象

  • 不适合交给容器进行管理的bean

封装实体的域对象


bean实例化

bean本质上就是对象,创建bean使用构造方法完成

实例化bean的方法

    • 方法一 提供可访问的构造方法

配置

    • 方法二 使用静态工厂实例化

一般为了兼容之前的项目

    • 方法三 使用实例工厂实例化bean(了解)
***方式三的改良***——FactoryBean

Spring-09-bean实例化-实例工厂与FactoryBean_哔哩哔哩_bilibili

bean的生命周期

Spring-10-bean的生命周期_哔哩哔哩_bilibili

bean销毁时机

Spring报错:从下往上


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值