0

行。我什至不知道如何问这个问题,这是我一定错过了什么的迹象。我能做的最好的事情是:“有没有办法手动实例化一个对象并仍然在该对象中使用注入?”

具体来说,说我有:

class A {

   public A(MyObject1 obj1, MyObject2 obj2, ..., MyObjectn objn) {
     ...
   }

}

我想连接除 MyObjectn 之外的所有这些对象。据我所知,如果我在上面的构造函数前面使用@Autowired,那么我应该只在使用该类实例的代码中实例化该对象,如下所示:

@Autowired
A a;

这不允许我在构造函数中手动传递 objn 。除了在使用该类的实例的代码中手动初始化 A 之外,有没有办法绕过这个限制?

4

2 回答 2

3

简短的回答 - 不。您要么使用 IoC,要么手动实例化对象。

我想到的一种解决方法:

使用每个 MyObject1 创建一个服务@Autowired

在此服务中创建一个方法:

public A createA(MyObjectN objn) {
   return new A(object1, object2... objn); //note that object1 .. objectn-1 are autowired.
}

使用 ;) 注入服务@Autowired并调用service.createA()

于 2013-02-27T21:29:19.290 回答
-1

来自 vmoksha 的 sunilkumar

,我们不能那样创造

于 2013-02-28T11:40:11.887 回答