5

可能重复:
无论如何@Autowire 需要构造函数参数的bean?

在我的控制器中,我想使用 @Autowired 使用方法/构造函数自动装配来注入一个类。例如使用:

@Autowired 
private InjectedClass injectedClass; 

我的问题是注入的类 injectionClass 有一个构造函数,我需要从控制器向构造函数传递一个变量。如何将值传递给构造函数?

4

2 回答 2

5

如果您使用注解,您可以将 @Autowired 注解应用到 MyClass 的构造函数,这将自动连接您传递给 MyClass 的特殊构造函数的 bean。考虑跟随例如

public class MovieRecommender {

  @Autowired
  private MovieCatalog movieCatalog;

  private CustomerPreferenceDao customerPreferenceDao;

  @Autowired
  public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) {
      this.customerPreferenceDao = customerPreferenceDao;
  }

  // ...
}
于 2012-04-25T11:22:35.747 回答
3

您可以使用@Resource(name = "x")注释标记私有数据成员,也可以在应用程序上下文 XML 中使用构造函数注入来连接它们。

注解和 XML 配置可以在 Spring 中混合使用。它不必是全部或全部。

<bean id="myClass" class="foo.bar.MyClass">
    <constructor-arg ref="yourArgRefHere"/> 
</bean>
于 2012-04-25T10:56:46.103 回答