其他分享
首页 > 其他分享> > Spring 注解@Bean参数疑点

Spring 注解@Bean参数疑点

作者:互联网

经常会看到通过@Bean注解来产生一个Java bean放进Spring的IOC容器,可是有的方法里带有参数,那么这些参数从何而来?

答案是,他们会自动从容器中查找该类型的bean,如果没有将会报错。

我写着这样一个简单的测试类

@Configuration
public class SampleBean {
    private String value;
 
    public SampleBean() {
    }
 
    public SampleBean(String value) {
        this.value = value;
    }
    public String getValue() {
        return value;
    }
 
    public void setValue(String value) {
        this.value = value;
    }
    
    @Bean("testInteger")
    public Integer testBean(BeanParamClass test) {
    	return new Integer(0);
    }
}
@Component
public class BeanParamClass {

}
@Test
    public void testBean() {
        Integer t = (Integer)ctx.getBean("testInteger");
        System.out.println("value="+t);
    }

运行结果:

 

再尝试不生成@Bean的参数BeanParamClass ,即将@@Component注释。

结果:

 

 可以看到,程序启动时会抛出UNsatisfiedDependencyException,也就是无法找到@Bean("testInteger")的依赖bean。

 

标签:testInteger,String,疑点,Spring,value,Bean,Integer,public
来源: https://www.cnblogs.com/WAYN/p/13276341.html