Spring类必须成为AutoWire属性的组成部分吗?

Ada*_*fin 5 java spring dependency-injection autowired spring-bean

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

假设我有:

@Service("myBean")
public class Mybean {

}

public class Target {
    @Autowired
    @Qualifier("myBean")
    private MyBean;
}
Run Code Online (Sandbox Code Playgroud)

然后在我的beans.xml中

<context:component-scan base-package="com.package.beans" />
Run Code Online (Sandbox Code Playgroud)

MyBean.java是之内com.package.beans.MyBean package

为了自动连接其中的一个字段,是否必须将类Target注释为@Component或其他一些spring注释?

chr*_*ke- 4

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

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