当前位置:首页 > 后端开发 > Spring之IOC

Spring之IOC

7个月前 (05-24)53

2.1、IOC本质控制反转

IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现Ioc的一种方法,也有人认为DI只是oC的另一种说法。没有引oC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了。

采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。

控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,Dl)。

2.2、Spring入门案例

UserServiceImpl:

public class UserServiceImpl implements UserService {
     

    public void save() {
     
        System.out.println("user service running ..............");
    }
}

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
   
    <!--1.创建spring控制的资源-->
    <bean id="userService" class="com.lfs.service.Impl.UserServiceImpl"/>

</beans>

测试:

public class UserApp {
     
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
     
        //2加载配置文件
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService bean = (UserService) ctx.getBean("userService");
        bean.save();
    }
}

结果:

Spring之IOC _ Java侠

3.1、别名

Spring之IOC _ Java侠

3.2、Bean的配置

id : bean 的唯一标识符,也就是相当于我们学的对象名

class :bean 对象所对应的全限定名 :包名+类

name :也是别名,而且name可以同时取多个别名

scope:定义bean的作用范围

scope属性:

Spring之IOC _ Java侠

singleton属性值:单例----创建的对象是同一个对象。未使用就会创建对象

prototype属性值:非单列----创建的对象不是同一个对象。使用了才会创建对象

Bean生命周期

Spring之IOC _ Java侠

需要执行ctx.close();就会执行destroy方法

<!--scope用于控制bean创建后的对象是否是单列-->
<bean id="userService3" scope="singleton" class="com.lfs.service.Impl.UserServiceImpl"/>

<!--init-method与destroy-method用于bean的生命周期-->
<bean id="userService3" scope="prototype" init-method="init" destroy-method="destroy" class="com.lfs.service.Impl.UserServiceImpl"/>

bean对象的创建方式

Spring之IOC _ Java侠

<!--静态工厂创建bean-->
    <bean id="userService4" class="com.lfs.service.UserServiceFactory" factory-method="getService"/>

    <!--实例创建工厂bean,依赖工厂对象对应的bean-->
    <bean id="factoryBean" class="com.lfs.service.UserServiceFactory2"/>
    <bean id="userService5" factory-bean="factoryBean" factory-method="getService"/>

5.3、import

Spring之IOC _ Java侠

Spring之IOC _ Java侠

这个import,一般用于团队开发使用,他可以将多个配置文件,导入合并为一个

作者:楠黎倾风
来源链接:https://blog.csdn.net/qq_64071654/article/details/127234100

标签: SpringIOC

“Spring之IOC” 的相关文章

什么是Spring IOC 容器?

Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。 作者:cblueo 来源链接:https...

基于Spring IOC容器实现工具类静态方法调用的三种方式

背景说明 在spring MVC 的项目中定义配置读取工具类时,发现需要使用Spring IOC容器进行注入,原始方法就是直接使用@Autowired 将依赖类注入...

Spring IoC(控制反转)与DI(依赖注入)的区别

初学spring的时候,对IoC与DI的概念理解很模糊,很难去区分IoC与DI。简谈一下我对IoC与DI的理解。 先看定义 D...

小白也看得懂的 Spring IoC 核心流程介绍

小白也看得懂的 Spring IoC 核心流程介绍

微信搜索【程序员囧辉】,关注这个坚持分享技术干货的程序员。 前言 本文将用最通俗易懂的文字介绍 Spring IoC&nbs...

spring3.0就是这么简单——spring Ioc容器

spring3.0就是这么简单——spring Ioc容器

Ioc 概述 beanFactory和applicationContext Bean 工厂是spring 框架最核心的接口,它提...

编程核心技术剖析系列(Spring IOC,AOP和ORM)

这是8年前作品,对于现在来说还是非常有用,掌握基本技术思想,就很容易跟上技术的发展: 1、Spring关键技术解剖系列 Spring系列(1)--创建动态代理类...

springIOC与DI详解(通俗易懂)

本文为转载文章: 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说...

spring系列之IOC容器结构

spring系列之IOC容器结构

IOC容器结构 IOC(控制反转): 传统javaSE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象,...

做一个合格的程序猿之浅析Spring IoC源码(三)分析refresh()方法前的准备篇(一)

做一个合格的程序猿之浅析Spring IoC源码(三)分析refresh()方法前的准备篇(一)

上一节,我们初步分析了Spring IoC容器是如何去初始化一个BeanFactory的,我们最主要的分析了BeanFactory是如何去初始化BeanDefinnition...

Spring IOC的启动过程

Spring IOC的启动过程

IOC 容器的启动过程,启动过程分为两个步骤,第一个阶段是容器的启动阶段,第二个阶段是 Bean 实例化阶段。 注意:在 Spring 中,最基础的容器接口方法...