[英]Spring: How to autowire or (use new) a bean with constructor parameter and which is not a managed bean
这里有许多类似的问题,但没有一个显示出如何做的。 在这里,我如何自动连接CreateDatabaseAction bean并使用它? 它需要一个Shoppingcart对象,并且不是Spring托管的bean。 还是我必须使用new关键字创建它?
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);
}
}
如果没有该类型的托管Bean,Spring将无法知道在实例化CreateDatabaseAction
时使用哪个ShoppingCart
实例。 我认为您应该重新考虑设计。 例如,将其作为实际使用的方法参数发送,并将其从构造函数中删除。
仅考虑名称,我想说ShoppingCart
将是会话范围的Bean的理想选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.