确定。我不知道如何问这个问题,这是我必须遗漏的标志。我能做的最好的事情是:“有没有办法手动实例化对象并仍在该对象中使用注入?”
具体来说,我说:
class A {
public A(MyObject1 obj1, MyObject2 obj2, ..., MyObjectn objn) {
...
}
}
我想连接除MyObjectn之外的所有这些对象。据我所知,如果我在上面的构造函数前面使用@Autowired,那么我应该只在使用该类实例的代码中实例化该对象:
@Autowired
A a;
不允许我手动传递构造函数中的objn。有没有办法解决这个限制,而不是在使用该类实例的代码中手动初始化A?
答案 0 :(得分: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()
答案 1 :(得分:-1)
否我们不能像那样创建