易学笔记--第1章:spring注入/1.4 depends-on属性

第1章:spring注入/1.4 depends-on属性/1.4.1 概念

  • 概念
  1. 指的是在定义某个bean的时候指定它依赖某些bean,那意味着在创建这个bean之前,它所有依赖的bean要先创建

第1章:spring注入/1.4 depends-on属性/1.4.2 依赖bean声明

  • 依赖bean声明格式

 

    • 格式:<bean id="bean的名称" class="含包名的类名"  depends-on= "bean1,bean2,...beann">
    • 说明:
      1. bean的名称、含包名的类名:参照 第1章:spring注入/1.1 元数据配置/1.2 XML配置方式/1.2.2 XML文件结构/1.2.2.3 Bean的定义
      2. depends-on= "bean1,bean2,...beann":bean1,bean2,beann指的是是bean名称,多个以逗号隔开,声明的顺序就是执行的顺序
    • 举例:
      1. 类定义:
        1. package com.wiley.beginningspring.samenametest;
          
          import org.springframework.stereotype.Repository;
          
          import com.wiley.beginningspring.ch2.I;
          
          @Repository
          public class A implements I{
          	A(){
          		System.out.println("A类初始化");
          	}
          	public void func(){
          		System.out.println("A类实现");
          	}
          }
          

           

        2. package com.wiley.beginningspring.samenametest;
          
          import org.springframework.beans.factory.annotation.Autowire;
          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.context.annotation.Bean;
          import org.springframework.stereotype.Repository;
          
          import com.wiley.beginningspring.ch2.I;
          
          @Repository
          public class B {
          	
          	B(){
          		System.out.println("B类初始化");
          	}
          	
          	public void samename(I i) {
                  i.func();
          	}
          }
          

           

        3. package com.wiley.beginningspring.samenametest2;
          
          import org.springframework.stereotype.Repository;
          
          import com.wiley.beginningspring.ch2.I;
          
          @Repository
          public class C implements I{
          	
          	C(){
          		System.out.println("C类初始化");
          	}
          	
          	public void func(){
          		System.out.println("C类实现");
          	}
          }
          

           

        4. package com.wiley.beginningspring.samenametest2;
          
          import org.springframework.beans.factory.annotation.Autowire;
          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.context.annotation.Bean;
          import org.springframework.stereotype.Repository;
          
          import com.wiley.beginningspring.ch2.I;
          import com.wiley.beginningspring.samenametest.A;
          
          @Repository
          public class D {
          	
          	D(){
          		System.out.println("D类初始化");
          	}
          	
          	//@Bean(autowire = Autowire.BY_NAME)
          	public void samename(I i) {
          		i.func();
          	}
          }
          

           

      2. bean定义:

        <!-- 定义bean a,通过指定它的依赖 -->

             <bean id="a" class="com.wiley.beginningspring.samenametest.A"

                   depends-on="c,b,d"></bean>

             <bean id="b" class="com.wiley.beginningspring.samenametest.B"></bean>

             <bean id="c" class="com.wiley.beginningspring.samenametest2.C"></bean>

             <bean id="d" class="com.wiley.beginningspring.samenametest2.D"></bean>

        1. 先执行C,接着执行B,再执行D,最后执行A
      3. 执行结果:

        C类初始化

        B类初始化

        D类初始化

        A类初始化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易学笔记(qq:1776565180)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值