Я пишу свой первый CRUD как приложение Spring Boot.Теперь я сталкиваюсь с проблемой, что я каким-то образом получаю пустую сущность в моем массиве ответов и также не могу добавить другую сущность.
У меня есть классическая структура MVC, где у меня есть класс ресурсов, который предоставляет ресурсы дляинтерфейс (GET и POST в то время), класс обслуживания (который фактически просто обходит данные), класс контроллера, который предоставляет объекты и устанавливает тестовый объект.
@RestController
@RequestMapping("/genesysAgents")
@Configuration
@ComponentScan(basePackageClasses = GenesysService.class)
public class GenesysAgentResource {
@Autowired
private GenesysService genesysService;
@GetMapping
public List<GenesysAgent> getAllGenesysAgents() { return genesysService.getAllGenesysAgents();}
@PostMapping
public ResponseEntity<?> addGenesysAgent(GenesysAgent genesysAgent) {
genesysService.addGenesysAgent(genesysAgent);
return new ResponseEntity<GenesysAgent>(genesysAgent, HttpStatus.CREATED);
}
@Configuration
@ComponentScan(basePackageClasses = GenesysController.class)
public class GenesysService {
@Autowired
private GenesysController genesysController;
private static final AtomicInteger id = new AtomicInteger(10);
@Bean
public List<GenesysAgent> getAllGenesysAgents() {
return genesysController.getAgents();
}
@Bean
public GenesysAgent addGenesysAgent(GenesysAgent genesysAgent) {
genesysAgent.setId(id.getAndIncrement());
genesysController.addAgent(genesysAgent);
return genesysAgent;
}
@Component
@Configuration
@ComponentScan(basePackageClasses = GenesysAgent.class)
public class GenesysController {
List<GenesysAgent> genesysAgents = new ArrayList<GenesysAgent>();
public GenesysController(){
GenesysAgent agent1 = new GenesysAgent();
agent1.setId(0);
agent1.setFirstName("Max");
agent1.setLastName("Muster");
agent1.setNtAccount("testAccount");
genesysAgents.add(agent1);
}
@Bean
public List<GenesysAgent> getAgents(){
return genesysAgents;
}
@Bean
public GenesysAgent addAgent(GenesysAgent genesysAgent){
genesysAgents.add(genesysAgent);
return genesysAgent;
}
Когда я сейчас запускаю приложение и выполняю GET, я получаю:
[{"id": 0, "firstName": "Max", "lastName": "Muster", "ntAccount": "testAccount "}, {" id ": 10," firstName ": null," lastName ": null," ntAccount ": null}]
Я не могу объяснить, откуда поступает запись о вторжении.Также я делаю POST со следующими данными:
{"firstName": "Max", "lastName": "Muster", "ntAccount": "test"}
Я получаю201, но ответом является:
{"id": 0, "firstName": null, "lastName": null, "ntAccount": null}