SpringBoot原理篇:bean的多种加载方法之 使用上下文对象regist注入bean

使用上下文对象regist注入bean

package com.qing.app;

import com.qing.bean.Cat;
import com.qing.bean.Dog;
import com.qing.config.SpringConfig4;
import com.qing.config.SpringConfig5;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;


public class App5 {
    public static void main(String[] args) {
        //注意类型是AnnotationConfigApplicationContext
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig5.class);
        //1不指定名字:默认用类名首字母小写
        ctx.register(Cat.class);
        //2 指定名字
        ctx.registerBean("加菲猫", Cat.class);
        //最后一个参数是构造方法的参数
        //注册相同的bean,前面的会被替换掉,就像,map的key相同一样
        ctx.registerBean("猫猫", Cat.class,1);
        ctx.registerBean("猫猫", Cat.class,2);
        ctx.registerBean("猫猫", Cat.class,3);

        String[] names = ctx.getBeanDefinitionNames();
        for (String name : names) {
            System.out.println("bean的名字:" + name);
        }

        System.out.println("------------");
        System.out.println(ctx.getBean("猫猫"));
    }
}

结果

备注:手工加载bean,注册相同的bean,前面的会被替换掉,像map一样,相同的key留后面的

 

猜你喜欢

转载自blog.csdn.net/m0_45877477/article/details/125661439