spring-注解驱动03

给容器中添加bean的方式:

导入第三方的组件 :就是没有@Controller@Service等一系列注解 ,并且无法进行包扫描那么我们可以使用一下方式来进行导入

@Import  第一种用法就是@Import(要导入到容器中的组件),容器会自动的注册这个组件,id默认是全类名
* 第二种用法 Class<?>[] 还可以导入多个{Color.class, Red.class}
* 第三种,ImportSelector :返回需要导入的组件的全类名数组,需要建一个类进行实现ImportSelector
* ImportBeanDefinitionRegistrar
@Import({Color.class, Red.class, MyImportSelector.class})

 /*
    * 使用spring提供的FactoryBean (工厂Bean)
    * 1),默认获取的是工厂bean调用getObject创建的对象
    * 2.要获取工厂Bean本身需要给id前边加&
    *
    *
    * */
        @Bean
        public ColorFactoryBean colorFactoryBean(){
            return new ColorFactoryBean();
        }
package com.aaa.bean;

import org.springframework.beans.factory.FactoryBean;

public class ColorFactoryBean implements FactoryBean {

    //要返回的对象 这个对象会添加到容器中
    public Object getObject() throws Exception {
        System.out.println("返回的对象时"+new Blue());
        Blue blue = new Blue();
        return blue;
    }
//要返回的对象类型
    public Class<?> getObjectType() {
        return Blue.class;
    }
//如果返回的true 就是单实例
    //否则就是多实例
    public boolean isSingleton() {
        return false;
    }
}

测试

  AnnotationConfigApplicationContext apx = new AnnotationConfigApplicationContext(MainConfig2.class);
   @Test
   public void Import(){
       //打印所有注册到bean的名称
       String[] definitionNames = apx.getBeanDefinitionNames();
       for (String name : definitionNames) {
           System.out.println(name);
       }
       //工厂Bean获取的是调用getObject创建的对象
       Object colorFactoryBean = apx.getBean("colorFactoryBean");
       System.out.println("bean的类型"+colorFactoryBean.getClass());

   }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值