Spring之IOC

简介: Spring之IOC

理解IOC

控制:  对象创建,属性赋值, 对象声明周期管理

反转:把开发人员管理对象的权限转移给了代码之外的容器实现。 由容器完成对象的管理。

正转:开发人员在代码中, 使用 new 构造方法创建对象。 开发人员掌握了对象的创建,属性赋值,对象从开始到销毁的全部过程。 开发人员有对 对象 全部控制。

总结: 通过容器,可以使用容器中的对象(容器已经创建了对象, 对象属性赋值了, 对象也组装好了)。

            Spring就是一个容器,可以管理对象,创建对象,给属性赋值

IOC的技术实现

(依赖注入)DI(Dependency Injection ):缩写是DI ,是IoC的一种技术实现。 程序只需要提供要使用的对象的名称就可以了, 对象如何创建, 如何从容器中查找,获取都由容器内部自己实现。

依赖:  比如说ClassA类使用了ClassB的属性或者方法,叫做ClassA依赖ClassB.

public class ClassB{
    
    public void createOrder(){}
}
 
public class ClassA{
    //属性
    private ClassB  b = new ClassB();
    
    public void buy(){
        b.createOrder();
    }
}
 
执行ClassA的buy()
ClassA a  = new ClassA();
a.buy();

       Spring 容器是一个超级大工厂,负责创建、管理所有的 Java 对象,这些 Java 对象被称为 Bean。Spring 容器管理着容器中 Bean 之间的依赖关系, Spring 使用“依赖注入”的方式来管理 Bean 之间的依赖关系。使用 IoC 实现对象之间的解耦和。

spring标准的配置文件

  1. 根标签是 beans
  2. beans 后面的是约束文件说明
  3. beans里面是bean声明
  4. 什么是bean: bean就是java对象, spring容器管理的java对象,叫做bean

Spring容器创建对象的特点

容器对象(ApplicationContext )接口        通过ApplicationContext对象,获取要使用的其它 java 对象, 执行 getBean(“<bean>的id”)

spring默认是调用类的无参数构造方法,创建对象

spring读取配置文件,一次创建好所有的java对象, 都放到map中

使用IOC模拟用户注册操作

需求:模拟用户注册

分析:

需要定义一个dao接口(UserDao)接口中的方法 insertUser(SysUser user ) , 定义接口的实现类 MySqlUserDao  inserUser()方法里面不需要操作数据, 输出“使用了dao执行insert操作”。

需要定义一个service接口(UserService),定义接口的实现类 UserServiceImpl. 在service的实现类有一个 UserDao类型的属性。 service类中有一个方法 addUser(SysUser user)。

操作是 service类中的addUser() { userDao.insertUser() } 完成注册。

定义一个实体类 SysUser, 表示用户的数据。

       spring管理多个配置文件: 常用的是包含关系的配置文件。 项目中有一个总的文件, 里面是有impor标签包含其他的多个配置文件。

总的文件(xml)
<import resource="其他的文件的路径1"/>
<import resource="其他的文件的路径2"/>
 
关键字“classpath:”:表示类路径, 也就是类文件(class文件)所在的目录。 spring到类路径中加载文件
                   什么时候使用classpath: 在一个文件中要使用其他的文件, 需要使用classpath

IOC总结

IOC:  管理对象的,把对象放在容器中,创建,赋值,管理依赖关系。

       通过管理对象,实现解耦合。 IoC解决处理业务逻辑对象之间的耦合关系, 也就是service和dao之间的解耦合。

spring作为容器适合管理什么对象

service对象 ,dao对象。

工具类对象。

不适合交给spring的对象 ?

实体类。

servlet , listener ,filter等web中的对象。他们是tomcat创建和管理的。


相关文章
|
5天前
|
XML Java 数据格式
Spring IoC容器初始化过程(xml形式)
Spring IoC容器初始化过程(xml形式)
54 0
|
5天前
|
Java Spring
Spring5深入浅出篇:Spring中ioc(控制反转)与DI(依赖注入)
Spring5深入浅出篇:Spring中ioc(控制反转)与DI(依赖注入)
|
5天前
|
XML Java 数据格式
Spring框架入门:IoC与DI
【5月更文挑战第15天】本文介绍了Spring框架的核心特性——IoC(控制反转)和DI(依赖注入)。IoC通过将对象的创建和依赖关系管理交给容器,实现解耦。DI作为IoC的实现方式,允许外部注入依赖对象。文章讨论了过度依赖容器、配置复杂度等常见问题,并提出通过合理划分配置、使用注解简化管理等解决策略。同时,提醒开发者注意过度依赖注入和循环依赖,建议适度使用构造器注入和避免循环引用。通过代码示例展示了注解实现DI和配置类的使用。掌握IoC和DI能提升应用的灵活性和可维护性,实践中的反思和优化至关重要。
19 4
|
5天前
|
Java 测试技术 开发者
Spring IoC容器通过依赖注入机制实现控制反转
【4月更文挑战第30天】Spring IoC容器通过依赖注入机制实现控制反转
22 0
|
5天前
|
Java 数据库连接 API
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
57 0
|
5天前
|
XML Java 程序员
Spring特性之二——IOC控制反转
Spring特性之二——IOC控制反转
16 4
|
5天前
|
安全 Java 开发者
在Spring框架中,IoC和AOP是如何实现的?
【4月更文挑战第30天】在Spring框架中,IoC和AOP是如何实现的?
24 0
|
5天前
|
XML Java 程序员
什么是Spring的IoC容器?
【4月更文挑战第30天】什么是Spring的IoC容器?
20 0
|
5天前
|
Java Spring 容器
【Spring系列笔记】IOC与DI
IoC 和 DI 是面向对象编程中的两个相关概念,它们主要用于解决程序中的依赖管理和解耦问题。 控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入和依赖查找。
35 2
|
5天前
|
Java 测试技术 数据库连接
Spring中ioc的优点
总之,Spring中的IoC提供了一种更加灵活、可维护、可测试和可扩展的方式来管理组件之间的依赖关系,从而提高了应用程序的质量和可维护性。这使得开发人员能够更专注于业务逻辑而不是底层的技术细节。
32 1
http://www.vxiaotou.com