Spring IOC之注入

1.概念

  控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护
  简而言之:
    把本身可以创建对象的权利交给IOC容器,当要实例化该对象的时候,由IOC容器来实例化该对象(专注于使用IOC创建的对象)
2.目的
  创建对象并且组装对象之间的关系
3.步骤
  1.Bean容器初始化
  (即IOC容器加载beans的xml配置文件)
   (加载并初始化配置文件<beans></beans>)
    1.两个基础包
      1.org.springframework.beans
        1.BeanFactory提供配置结构和基础功能,加载并初始化Bean
      2.org.springframework.context
        2.ApplicationContext保存了Bean对象并在Spring中被广泛使用
    2.ApplicationContext初始化方式
      1.本地文件
      2.Classpath
      3.web应用中依赖servlet/Listener
  2.配置
    Spring容器的配置文件
    <beans>
    <bean id=“name”>对象路径</bean>
    </beans>
  3.创建对象并调用
    getBean(“id_name”)
  4.IOC的实现方式
   (向Spring IOC容器注入Bean容器,就是注入bean的方式)
    1.DI(依赖注入)
      1.概念:
        1.就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中
          (给属性赋值的关系;1.xml注入(设值、构造)2.注解注入(@Required。。。))
      2.Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为
        简而言之:
            在IOC容器加载的过程中,会扫描xml文件的相关配置,然后,创建并实例化bean,
            注入,就是在IOC创建bean的时候,给成员变量的赋值
    2.两种注入方式
      1.XML配置bean注入
        (使用xml定义bean)
        1.设置注入
          语法:
            <bean id="标识1" class="类路径1">
            <property name="类路径1的私有属性" ref="标识2" />
            </bean>
            <bean id="标识2" class="类路径2">
            </bean>
          解释:
            property中的name指向的是类路径1对象的私有属性,在IOC容器实例化bean对象的时候,
            自动调用setName()的JavaBean方法,把ref引用的值赋予给属性
          前提:
            该类含有property中name的私有属性,并有该属性的setName()的JavaBean方法
        2.构造注入
          语法:
            <bean id="标识1" class="类路径1">
            <constructor-arg name="类路径1的私有属性" ref="标识2" />
            </bean>
            <bean id="标识2" class="类路径2">
            </bean>
          解释:
            在IOC容器调用类路径1构造器生成实例的时候,把ref引用的值赋予该constructor-arg中的name属性
          前提:
            该类含有constructor-arg中name的私有属性,并含有constructor-arg中name为参数的构造方法
        3.延迟/懒加载
          1.lazy_init,bean的一个参数
          2.其值默认为default;当类注入到bean容器的时候,在Spring容器applicationContext实例化的时候,顺便生成的了
          3.其值为true的时候,会开启懒人模式
          4.当设置bean为原型的时候,懒加载无效
            因为原型是在实例化的时候才有,不会随Spring容器applicationContext一同加载
        4.scope
          1.其值
            singleton、prototype、request、session(后两个跟web工程有关)
        5.生命周期
          1.init-method、destroy-method都是自定义的两个方法
          2.销毁方法的调用时,需要借助applicationContext.close();(applicationContext的接口)
        6.Map
          多个值注入
        7.ref
          1.引用其它的bean设值
          2.两种形式
            1.ref=“beanName”
            2.自定义的就<ref bean="beanName"/>

时间: 2024-08-02 04:10:10

Spring IOC之注入的相关文章

Spring IoC 依赖注入(二)源码分析

目录 Spring IoC 依赖注入(二)源码分析 1. 依赖注入口 - populateBean 1.1 doCreateBean 1.2 populateBean 2. 手动注入 2.1 相关的类说明 2.2 applyPropertyValues 2.3 BeanDefinitionValueResolver 2.4 依赖检查 2. 自动注入 2.1 那些字段会自动注入 2.2 名称注入 2.3 类型注入 Spring IoC 依赖注入(二)源码分析 本章主要分析 Spring IoC 依

关于Spring IOC (依赖注入)你需要知道的一切

[版权申明]未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自[zejian的博客] <Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初学者也适合spring有过开发经验的工程师,前者可用于全面了解Spring IOC的知识点,后者且

Spring IOC的注入方式

Spring IOC注入的方法主要有两种 1:设值注入 2:构造注入 简单来说一个是调用set方法设值,一个是通过构造函数设值 Spring-ioc.xml <?xml version= "1.0" encoding= "UTF-8"?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2

java框架篇---spring IOC依赖注入

spring依赖注入的方式有4种 构造方法注入 属性注入 工厂注入 注解注入 下面通过一个实例统一讲解: User.java package com.bjsxt.model; public class User { private String username; private String password; public User(){} public User(String username, String password) { super(); this.username = use

Spring讲解----------依赖注入(DI)

3.1.1  依赖和依赖注入 传统应用程序设计中所说的依赖一般指"类之间的关系",那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现:表示类对接口的实现: 依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有"拥有关系",而是一种"相识关系",只在某个特定地方(比如某个方法体内)才有关系. 关联:表示类与类或类与接口之间的依赖关系,表现为"拥有关系":具体到代

[Spring] IOC - study

Spring IOC简单注入例子,本例子使用JUnit进行测试.Spring版本:3.2 项目结构: Spring所需引用的JAR包: Spring XML配置: springContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht

Spring IOC总结

IOC 控制反转,是一种设计思想,意味着将设计好的对象交给Ioc容器控制,而不是传统的在对象的内部直接控制. IOC容器把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象. DI 依赖注入,组件之间的依赖关系由容器在运行期间决定. Ioc容器注入应用程序某个对象,它所需要的外部资源(包括对象,资源,常量数据). Spring Ioc容器 具有依赖注入功能的容器.负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖. 在Spring中BeanFactory是Ioc容器的实际代表

Spring IoC Bean 实例化(二)源码分析

目录 Spring IoC 依赖注入(四)构造器或工厂注入 1. doCreateBean 2. createBeanInstance 2. 实例化策略 - InstantiationStrategy 3. instantiateBean 4. autowireConstructor 4.1 整体说明 4.2 缓存匹配 4.3 无参构造器匹配 4.4 有参构造器匹配 5. ConstructorResolver 参数解析 5.1 resolveConstructorArguments 5.2 c

Spring笔记(二):Ioc 之注入与装配

一.Spring依赖注入的原理 二.依赖注入的实现 (一)对象的注入 1.简单属性注入 1)源代码 package main.java.com.spring.ioc.base.dao.impl; import main.java.com.spring.ioc.base.dao.PersonDao; /** * * PersonDiDaoImpl * @title * @desc * @author SAM-SHO * @Dec 28, 2014 */ public class PersonDiD