Spring的类必须是AutoWire中的一个属性吗?

时间:2016-03-31 18:14:44

标签: java spring dependency-injection autowired spring-bean

在Spring 3.X中,是否必须将类注释为组件才能将字段自动装入其中?

让我说我有:

@Service("myBean")
public class Mybean {

}

public class Target {
    @Autowired
    @Qualifier("myBean")
    private MyBean;
}

然后在我的beans.xml

<context:component-scan base-package="com.package.beans" />

MyBean.java位于com.package.beans.MyBean package之内。

是否必须将类Target注释为@Component或其他一些弹簧注释才能自动装入其中一个字段?

1 个答案:

答案 0 :(得分:1)

不,它不需要注释,但它必须是一个Spring bean。您可以使用构造型注释(例如@Component)来执行此操作,但您也可以通过在XML中声明<bean>元素或从@Bean配置方法返回它来创建Spring bean

请注意,在任何情况下都最好使用构造函数注入,因为它在自动装配方面没有任何区别,但使测试更容易,并且使某些错误更加困难。