这里有许多类似的问题,但没有一个显示如何做到这一点。在这里,我如何自动装配CreateDatabaseAction bean并使用它?它需要一个Shoppingcart对象,它不是一个Spring托管bean。或者我是否必须使用新关键字创建它?
public abstract class AbstractServiceActions {
@Autowired
protected DatabaseModel dbModel;
protected User user;
public AbstractServiceActions(ShopingCart cart) {
this.user = user;
}
并实施它:
@Component
public class CreateDatabaseAction extends AbstractServiceActions {
public CreateDatabaseAction(ShoppingCArt cart){
super(cart);
}
}
答案 0 :(得分:4)
如果没有该类型的托管bean,则Spring无法知道在实例化ShoppingCart
时要使用的CreateDatabaseAction
实例。我认为你应该重新考虑设计。例如,将其作为方法参数发送到实际使用的位置,并将其从构造函数中删除。
仅考虑名称,我会说ShoppingCart
将是会话范围bean的一个很好的候选者。