八IOC操作Bean管理(xml自动装配)

Posted 上善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八IOC操作Bean管理(xml自动装配)相关的知识,希望对你有一定的参考价值。

  1. 什么是自动装配

    • 根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入。
  2. 演示自动装配过程

    • 根据属性名称自动注入
    package com.deewinkg.bean;   
       
    public class Dept {   
        @Override   
        public String toString() {   
            return "Dept{}";   
        }   
    } 
    
    package com.deewinkg.bean;   
       
    public class Emp {   
        private Dept dept;   
       
        public void setDept(Dept dept) {   
            this.dept = dept;   
        }   
       
        @Override   
        public String toString() {   
            return "Emp{" +   
                    "dept=" + dept +   
                    '}';   
        }   
       
        public void test() {   
            System.out.println(dept);   
        }   
    }  
    
    <?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 标签属性 autowire,配置自动装配   
           autowire 属性常用两个值:   
           byName 根据属性名称注入 ,注入值 bean 的 id 值和类属性名称一样   
           byType 根据属性类型注入   
       -->   
       <bean id="emp" class="com.deewinkg.bean.Emp" autowire="byName">   
          <!--<property name="dept" ref="dept"></property>-->   
       </bean>   
       <bean id="dept" class="com.deewinkg.bean.Dept"></bean>   
    </beans>
    
    package com.deewinkg.test;   
       
    import com.deewinkg.bean.Emp;   
    import org.springframework.context.ApplicationContext;   
    import org.springframework.context.support.ClassPathXmlApplicationContext;   
       
    public class MyTest   
    {   
        @org.junit.Test   
        public void test1()   
        {   
            ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");   
            Emp emp = context.getBean("emp", Emp.class);   
            emp.test();   
            System.out.println(emp);   
        }   
    } 
    

    运行结果:
    在这里插入图片描述

    • 根据属性类型自动注入

      <?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 标签属性 autowire,配置自动装配   
          autowire 属性常用两个值:   
          byName 根据属性名称注入 ,注入值 bean 的 id 值和类属性名称一样   
          byType 根据属性类型注入   
         -->   
         <bean id="emp" class="com.deewinkg.bean.Emp" autowire="byType">   
         <!--<property name="dept" ref="dept"></property>-->   
         </bean>    
         <bean id="dept" class="com.deewinkg.bean.Dept"></bean>   
      </beans>
      

以上是关于八IOC操作Bean管理(xml自动装配)的主要内容,如果未能解决你的问题,请参考以下文章

[Spring5]IOC容器_Bean管理XML方式_自动装配

Java Spring5之IOC容器

spring5:IOC 操作 Bean 管理(基于注解方式)

关于在Spring中通过注解形式的IoC容器 纯使用 @ComponentScan注解实现对包的自动扫描,实现非XML形式的 注解形式装配Bean类

spring IoC autowiring(自动依赖装配)的实现

Spring--自动装配