Integração Contínua: Camadas Service e Controller

Configurando a Camada de Serviço

Criaremos a camada de serviços da nossa aplicação, camada que será responsável pela lógica de negócio da aplicação, evitando assim que nossos Controllers acessem diretamente a camada de dados (Repository), isso é uma boa prática para desacoplamento de código. O Spring será responsável pela criação desse objeto que será singleton (uma instância do objeto para toda a aplicação).
Efetuaremos testes unitários nessa camada posteriormente.

Vejam as configurações na Listagem 13.

Listagem 13. UserService.java

package com.wordpress.fabiohbarbosa.service;
import com.wordpress.fabiohbarbosa.entity.User;
import com.wordpress.fabiohbarbosa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {

  @Autowired
  private UserRepository userRepository;
  public User findOne(Long id) {
    return userRepository.findOne(id);
  }
  public List findAll() {
    return userRepository.findAll();
  }

}

Configurando a Camada Controller (RESTFul)

Após a configuração das camadas de serviços e de dados iremos expôr as listagens de usuários por REST através da classe UserController.java utilizando o Spring, disponibilizando a listagem pelas URLs por ID /user/{id} e a listagem de todos os usuários /user, seguindo as convenções REST de URL.

Efetuaremos testes unitários e integrados nessa camada posteriormente.

Vejam as configurações na Listagem 14.

Listagem 14. UserController.java

package com.wordpress.fabiohbarbosa.controller;
import com.wordpress.fabiohbarbosa.entity.User;
import com.wordpress.fabiohbarbosa.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {

  @Autowired
  private UserService userService;
  @RequestMapping(method = RequestMethod.GET)
  public @ResponseBody List findAll() {
    return userService.findAll();
  }
  @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  public @ResponseBody User findOne(@PathVariable Long id) {
    return userService.findOne(id);
  }

}

No próximo tópico iremos criar a página HTML.

Você também pode visualizar o repositório no github.

Anúncios
Marcado com: , , , , , , , , , , , , , , , , , , , , , , , , ,
Publicado em Desenvolvimento de Software, DevOps, Git, Integração Contínua, Java, Selenium

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: