Кроме того, некоторые из этих классов, например Cart.java, имели уровень класса /fields, которые представляли собой структуры данных, такие как Списки массивов, и для создания экземпляров они использовали «новую» клавиатуру внутри конструктора; это правильно? Я продолжал получать ошибки «исключения создания экземпляра компонента», и у меня было ощущение, что это как-то связано с этим, т. е. (ТАКЖЕ мои вопросы приведены ниже!)
Код: Выделить всё
public class Cart {
private List
products;
public Cart() {
this.products = new ArrayList();
}
- Хороша ли такая практика? Или любой тип Java POJO (простой-старый-java-объект), то есть класс Model, который по существу имеет методы получения/установки, всегда должен быть аннотирован как Spring Bean (или использование XML/свойств для более старых версий)?
- Что касается структур данных, таких как списки массивов, упомянутые выше, следует ли их объявлять с использованием ключевого слова «новое» на уровне класса/поля или делать это внутри конструктора, как в примере кода, который я опубликовал?
- Код, который я давал для оценки, также имел метод @PostConstruct в классе ShoppingCartService, который, конечно же, является типичным классом обслуживания. У него был блок try/catch, в котором использовались методы ObjectMapper() и getResourceAsStream() для чтения products.json. файл с образцами фиктивных данных; Я продолжал получать исключения, как я уже сказал, для beanInstantiation и т. д., а также некоторые для этого метода public void init(), помеченного аннотацией @PostConstruct, которая была в этом ShoppingCartService — не должны ли все методы @PostConstruct находиться в основном SpringBootApplication, в данном случае в ShopApplication.java, где статические void Основной метод лежит?
Подробнее здесь: https://stackoverflow.com/questions/789 ... endency-in