Buscar

Desenvolvendo uma aplicação Spring Data REST e H2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Material elaborado por: Luís Fernando Chaim 02 de janeiro de 2018 
https://www.linkedin.com/in/lfchaim/ www.maxidica.com 
 
Desenvolvendo uma aplicação Spring Data, REST e H2 
Criando a aplicação 
Acesse o site http://start.spring.io/ e configure uma aplicação conforme imagem abaixo. 
 
Baixe e descompacte o arquivo (spring-rest-data-h2.zip) em algum diretório de trabalho. 
Abra o Eclipse e importe o projeto (Maven Project). 
Criação da classe controller 
No Eclipse, clique em File / New / Java Class e defina-a conforme abaixo. 
 
Código 
package br.com.whs.springrestdatah2.controller; 
 
import java.util.List; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.http.HttpStatus; 
Material elaborado por: Luís Fernando Chaim 02 de janeiro de 2018 
https://www.linkedin.com/in/lfchaim/ www.maxidica.com 
 
import org.springframework.http.ResponseEntity; 
import org.springframework.web.bind.annotation.PathVariable; 
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.RestController; 
 
import br.com.whs.springrestdatah2.Model.User; 
import br.com.whs.springrestdatah2.repository.UserRepository; 
 
@RestController 
@RequestMapping("/user") 
public class UserController { 
 
 @Autowired 
 private UserRepository userRepo; 
 
 @RequestMapping(value = "/list", method = RequestMethod.GET) 
 public List<User> findAll(){ 
 return userRepo.findAll(); 
 } 
 
 @RequestMapping(value = "/find-by-id/{id}", method = RequestMethod.GET) 
 public ResponseEntity<?> findById(@PathVariable final Long id){ 
 User user = userRepo.findOne(id); 
 if( user == null ){ 
 String msg = "{\"message\":\"User with id " + id + " not found.\"}"; 
 return new ResponseEntity<String>(msg,HttpStatus.NOT_FOUND); 
 }else{ 
 return new ResponseEntity<User>(user,HttpStatus.OK); 
 } 
 } 
 
 @RequestMapping(value = "/find-by-login/{loginName}", method = RequestMethod.GET) 
 public ResponseEntity<?> findByLoginName(@PathVariable final String loginName){ 
 User user = userRepo.findByLoginName(loginName); 
 if( user == null ){ 
 String msg = "{\"message\":\"User with login " + loginName + " not found.\"}"; 
 return new ResponseEntity<String>(msg,HttpStatus.NOT_FOUND); 
 }else{ 
 return new ResponseEntity<User>(user,HttpStatus.OK); 
 } 
 } 
 
 @RequestMapping(value = "/create", method = RequestMethod.POST) 
 public ResponseEntity<User> create(@RequestBody final User user){ 
 userRepo.save(user); 
 return new ResponseEntity<User>(userRepo.findByLoginName(user.getLoginName()),HttpStatus.OK); 
 } 
 
 @RequestMapping(value = "/update/{id}", method = RequestMethod.PUT) 
 public ResponseEntity<?> update(@PathVariable("id") long id, @RequestBody User user) { 
 User userData = userRepo.findOne(id); 
 if (userData == null) { 
 String msg = "{\"message\":\"User with id " + id + " not found.\"}"; 
 return new ResponseEntity<String>(msg,HttpStatus.NOT_FOUND); 
 } 
 userData.setLoginName(user.getLoginName()); 
 userData.setFullName(user.getFullName()); 
 userData.setPassword(user.getPassword()); 
 userRepo.save(userData); 
 return new ResponseEntity<User>(userData, HttpStatus.OK); 
 } 
 
 @RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE) 
 public ResponseEntity<?> delete(@PathVariable("id") long id) { 
 User user = userRepo.findOne(id); 
 if (user == null) { 
 String msg = "{\"message\":\"User with id " + id + " not found.\"}"; 
 return new ResponseEntity<String>(msg,HttpStatus.NOT_FOUND); 
 } 
 userRepo.delete(id); 
 return new ResponseEntity<User>(HttpStatus.NO_CONTENT); 
 } 
} 
 
Material elaborado por: Luís Fernando Chaim 02 de janeiro de 2018 
https://www.linkedin.com/in/lfchaim/ www.maxidica.com 
 
Criando a interface UserRepository 
Código 
package br.com.whs.springrestdatah2.repository; 
 
import org.springframework.data.jpa.repository.JpaRepository; 
import org.springframework.stereotype.Component; 
 
import br.com.whs.springrestdatah2.Model.User; 
 
@Component 
public interface UserRepository extends JpaRepository<User, Long>{ 
 
 public User findByLoginName(String loginName); 
 
} 
 
Criando a classe Model (User.java) 
Código 
package br.com.whs.springrestdatah2.Model; 
 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 
 
@Entity 
public class User { 
 
 @Id 
 @GeneratedValue 
 private Long id; 
 private String loginName; 
 private String fullName; 
 private String password; 
 
 public Long getId() { 
 return id; 
 } 
 public void setId(Long id) { 
 this.id = id; 
 } 
 public String getLoginName() { 
 return loginName; 
 } 
 public void setLoginName(String loginName) { 
 this.loginName = loginName; 
 } 
 public String getFullName() { 
 return fullName; 
 } 
 public void setFullName(String fullName) { 
 this.fullName = fullName; 
 } 
 public String getPassword() { 
 return password; 
 } 
 public void setPassword(String password) { 
 this.password = password; 
 } 
} 
 
Rodando a aplicação 
Essa é uma aplicação Spring Boot, onde o framework baixará e utilizará os recursos necessários, conforme a 
configuração (definida na Criação da Aplicação). Neste caso, será utilizado Tomcat e banco de dados H2 (ambos 
embedded) 
Material elaborado por: Luís Fernando Chaim 02 de janeiro de 2018 
https://www.linkedin.com/in/lfchaim/ www.maxidica.com 
 
Procedimento 
1. Abra a classe SpringRestDataH2Application.java 
2. Clique no menu Run / Run as / Java Aplication 
3. Espere até que apareça “Tomcat started on port(s): 8080 (http)” 
4. Abra um navegador e forneça a url de listagem (http://localhost:8080/user/list) 
5. Deverá aparecer apenas 2 colchetes ([]), pois o List está vazio 
 
Postman 
Para facilitar as chamadas de POST (/user/create), PUT (/user/update) e DELETE (/user/delete), vou utilizar o Postman. 
Método POST 
 
Método PUT 
 
 
Material elaborado por: Luís Fernando Chaim 02 de janeiro de 2018 
https://www.linkedin.com/in/lfchaim/ www.maxidica.com 
 
Método DELETE 
 
 
Código-Fonte (github) 
https://github.com/lfchaim/spring-rest-data-h2

Continue navegando