Я пытался выполнить проект Spring, но всегда возвращает ошибку, я не знаю, является ли проблема версией Spring Boot.
У меня есть два проекта:
- IntegrationCore (весенний загрузочный проект);
- IntegrationModel (только для моделей);
Проект IntegrationCore содержит ссылки на проект IntegrationModel (Build Path -> Projects)
Когда я выполняю проект IntegrationCore (Запуск от имени -> Spring boot app), возвращает консольную ошибку:
ПРИЛОЖЕНИЕ НЕ УДАЛЕНО НА ЗАПУСК
Описание:
Для хранилища полей в com.integration.controller.NoteController требуется> bean-компонент типа 'com.integration.repository.NoteRepository', который не может быть> найден.Действие: рассмотрите возможность определения bean-компонента типа 'com.integration.repository.NoteRepository'> в вашей конфигурации.
Я попытался:
- изменить версию загрузки Spring с1.5.7 до 1.5.20;
- включает аннотацию mongoDb в классе Application;
- вставляет аннотации для ссылок на пакеты IntegrationCore;
IntegrationCore
src/
├── main/
│ └── java/
| ├── com.integration/
| | └── IntegrationCoreApplication.java
| ├── com.integration.controller/
| | └── NoteController.java
| └── com.integration.repository/
| └── NoteRepository.java
IntegrationModel
src/
├── main/
│ └── java/
| ├── com.integrationModel/
| | └── NoteStatuses.java
| └── com.integrationModel.filter/
| └── NoteStatusesParams.java
IntegrationCoreApplication.java
package com.integration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages={
"com.integration", "com.integrationModel"})
public class IntegrationCoreApplication {
public static void main(String[] args) {
SpringApplication.run(IntegrationCoreApplication.class, args);
}
}
NoteController.java
package com.integration.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.integrationModel.NoteStatuses;
import com.integrationModel.filter.NoteStatusesParams;
import com.integration.repository.NoteRepository;
@Component
@RestController
@RequestMapping(value = "/services/nota")
public class NoteController {
@Autowired
private NoteRepository repository;
@RequestMapping(value = "/getStatuses", method = RequestMethod.POST)
@ResponseBody
public List<NoteStatuses> getStatuses(@RequestBody List<NoteStatusesParams> params) {
return repository.findStatuses(params);
}
}
NoteRepository.java
package com.integration.repository;
import java.util.List;
import org.springframework.stereotype.Service;
import com.integrationModel.NoteStatuses;
import com.integrationModel.filter.NoteStatusesParams;
@Service
public interface NoteRepository {
List<NoteStatuses> findStatuses(List<NoteStatusesParams> param);
}
NoteStatusesParams.java
package com.integrationModel.filter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Singular;
import java.util.List;
@Getter
@Builder(builderClassName = "Builder")
@NoArgsConstructor
@AllArgsConstructor
public class NoteStatusesParams {
@Singular
private List<String> orderNumbers;
private String providerCpfCnpj;
private String noteNumber;
}
NoteStatuses.java
package com.integrationModel;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
@Data
@EqualsAndHashCode(of = {"id"})
public class NoteStatuses {
private Boolean physicalReceipt;
...
}