我正在进行在线编码评估,我应该“重构/修复”一些 Spring Boot API,它有一个 Cart.java、Catalog.java 和 Product.java Model 类,如果我正确回忆起来(IIRC),Product.java是唯一具有@Component注释的Model类(附带问题,但何时使用@Component而不是@Entity)对于这些类型的 model 类或 POJOs 或 DTOs?),意味着其他类 Cart.java 和 Catalog,使用“new”关键字实例化,这对我来说完全错误。
此外,其中一些类,例如Cart.java,具有类级别/字段,它们是像数组列表这样的数据结构,并且它们在构造函数中使用“新”键盘来实例化;这是正确的吗?我不断收到“bean 实例化异常”错误,我感觉这与此有关,即(另外,我的问题如下!)
public class Cart {
private List<Product> products;
public Cart() {
this.products = new ArrayList();
}
问题:
将不胜感激任何见解!谢谢!
通常不,您不应该实例化产品,因为您通常期望存储库类是一个集合。 至于你的答案,通常模型类不应该用 @Component 注释,因为它们通常不是 spring 管理的 bean,它们是实体。
实体不应该用@Component注释,因为@Component的bean范围是单例的,这是spring中bean的默认范围。