假设我们正在使用spring ro创建对象。我们已将A类声明为单例,并且它引用了B,它位于原型范围内。在这种情况下,B也充当A对象的单身人士。如果我们使用A(当调用A时),如何创建新的B.
答案 0 :(得分:0)
这不能通过依赖注入/控制反转来处理。看看Method Injection概念。
答案 1 :(得分:0)
您可以为此使用查找方法注入。 让我们举个例子:
@Component
@Scope("singleton")
public abstract class StudentInfo {
@Value("girraj")
private String firstName;
@Value("gupta")
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Lookup
public abstract Address getAddress();
@Override
public String toString() {
return "StudentInfo [firstName=" + firstName + ", lastName=" + lastName + ", address=" + getAddress() + "]";
}
}
这是您的学生信息课。在这里,我们将Address类作为依赖项注入,并且每次您调用时都将其注入。 StudentInfo对象将始终相同,但Address对象将是新的。这是在5.1.6版本中引入的,但是如果您使用的是Spring的旧版本,则可以使用基于XML的配置,该配置在早期版本中可用。