Spring Bean —— 如何注入 Bean ?

1. FactoryBean<T>

创建一个类,实现 FactoryBean<T>

public class AnimalFactoryBean implements FactoryBean<AnimalFactoryBean.Animal> {

    static class Animal {
        /* 省略 */
    }

    @Override
    public Animal getObject() throws Exception {
        return new Animal();
    }

    @Override
    public Class<?> getObjectType() {
        return Animal.class;
    }

    @Override
    public boolean isSingleton() {
        return true;
    }
}

@Bean 注入这个 FactoryBean 的实现类

@Bean
public AnimalFactoryBean animalFactoryBean() {
    System.err.println("animalFactoryBean...");
    return new AnimalFactoryBean();
}

说明:注入的对象除了 factory 以外,还可能有 bean。单例时,两者一起创建;多例时,懒加载;

如果通过 getBean 获取 bean,则获取的是 factory 方法 getObject() 返回的对象,想要获取工厂,则要加前缀“&”;

发布了48 篇原创文章 · 获赞 2 · 访问量 6343

猜你喜欢

转载自blog.csdn.net/qq_39291919/article/details/100514940