zoukankan      html  css  js  c++  java
  • Spring:Spring-IOC容器、DI依赖注入简介

    Spring容器到底是什么?

    从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁

    从具象化讲:项目中哪个东西是Spring容器?在java项目中,我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中,我们使用spring.xml——Spring的配置文件。

    从代码上讲:一个Spring容器就是某个实现了ApplicationContext接口的类的实例。也就是说,从代码层面,Spring容器其实就是一个ApplicationContext(一个实例化对象)。

    Spring依赖注入是什么? 

    在创建对象的过程中Spring可以依据配置对象的属性进行设置,这个过程称之为依赖注入(Dependency Injection),优势:动态的向某个对象提供它所需要的其他对象

    spring配置文件内容如下:

    [html] view plaincopy
    <?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  
               http://www.springframework.org/schema/beans/spring-beans.xsd”
        <!--在此可以添加其他约束--> 
        >  
    
      <bean id=“…” class=“…”>  
        <!– 这里写bean的配置 –>  
      </bean>  
      
      <!– 在此可以定义更多的bean –>  
      
    </beans>  

    我们可以在xml中配置一系列我们需要的bean,配置之后Spring就会按照我们配置的东西进行解析,从而得到我们需要的值。

    这里可以查看我的文章:https://www.cnblogs.com/nhdlb/p/12426941.htmlhttps://www.cnblogs.com/nhdlb/p/12427276.html

    Spring容器类型:

    Spring提供了两种不同的类型的容器
    Spring BeanFactory容器:它是最简单的容器,给 DI 提供了基本的支持
    ApplicationContext容器 :ApplicationContext 容器继承自BeanFactory,它包括 BeanFactory 容器的所有功能,所以通常建议使用。

    ApplicationContext容器

    实例化此Spring容器常用的两种方式:

    方法一:在类路径下寻找配置文件来实例化容器。

    ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"spring.xml"});

    方法二:在文件系统路径下寻找配置文件来实例化容器。

    ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{"d:\beans.xml"});

    文章转载至:https://blog.csdn.net/qq_34598667/article/details/83245753

  • 相关阅读:
    关于大型网站技术演进的思考(二)--存储的瓶颈(2)[转]
    根据 Sourcemap 调试打包后的js
    webpack 中某些配置
    Javascript 中的数组
    浮动元素的display属性
    安装升级npm依赖
    锚点定位
    我所认识的java泛型(主要讨论通配符的使用)
    快速排序的递归非递归实习java
    java 选择排序
  • 原文地址:https://www.cnblogs.com/nhdlb/p/12427401.html
Copyright © 2011-2022 走看看