Escolar Documentos
Profissional Documentos
Cultura Documentos
Spring Framework
O Spring Framework é o projeto base do Spring, na qual ele é dividido em 8
grupos sendo eles:
Essas dependências são chamadas de Beans, que são objetos instanciados, montados e
gerenciados por um container do Spring através da Inversão de Controle (IoC) e Injeção
de Dependências.
Spring Boot
Dentro do pacote principal do nosso projeto iremos criar um pacote com o nome
models.Dentro desse pacote é onde ficará as classes das nossas tabelas que serão
criadas no banco de dados.
@Entity
@Table(name = "nome da tabela")
public class nomeDaModel implements Serializable{
public static final long serialVersionUID = 1l;
}
Legenda:
● @Entity - Serve para dizer que a classe é uma entidade. Uma entidade
representa uma tabela no banco de dados e cada instância dessa entidade
representa um linha dessa tabela.
● @Table - Diz que a classe abaixo é uma tabela.
● serialVersionUID - Controle das conversões feitas pela JVM.
Existem outros parâmetros que podem serem usados no @Column(), para vez
mais acesse :
https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/Column.html
Após o @Column iremos criar um atributo embaixo dele, na qual definirá o tipo
de dado e o nome da coluna.
EX :
@Column(paremetros de configuração da coluna)
private TipoDeDado nomeDaColuna;
@Repository
public interface nomeDaInterface extends JpaRepository
<nomeDaModel, UUID>{
}
Nós utilizaremos esta interface para usar métodos do JpaRepository que servem
para transações com o banco de dados como buscar um recurso no banco de
dados, atualizar um recurso, deletar um recurso, etc.
Neste exemplo que iremos fazer agora iremos utilizar a classe de serviço como
uma camada intermediária entre o controller e o repository, na qual ela terá que
acionar o repository em determinados casos como, quando for salvar um no
registro, quando for deletar, atualizar etc. Dessa maneira ao invés do controller
requisitar diretamente o repository ele ira requisitar o service que acionar o
repository.
@Service
public class ClasseService{
@Autowired
nomeDaInterfaceDoRepository nomeDaInstacia;
}
A anotação @Autowired serve para dizer ao Spring que naquele ponto deve ser
feita a injeção das dependências de repository em service.
Outra maneira que podemos utilizar para fazer isso é através de um constructor,
como mostra o código abaixo:
@Service
public class ClasseService{
final nomeDaInterfaceDoRepository nomeDaInstacia;
public ClasseService(nomeDaInterfaceDoRepository
nomeDaInstacia){
this.nomeDaInstacia = nomeDaInstacia;
}
Criando o Controller
Dentro do pacote principal da nossa aplicação iremos criar um pacote com o
nome controller, dentro desse pacote criamos uma JavaClass. Dentro dessa java
class seguimos a seguinte sintaxe..
@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/NomeDaRota")
public class ClassController{
}
Legenda:
@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/nomeRota")
public class ClasseController{
}
Criando o dto
No caso que iremos ver agora faremos um validação dos dados antes de eles
serem enviados para o banco de dados.
@NotBlank
private String atributoDB;
Existem várias anotações que podem ser utilizadas para validar o atributo como
exemplo:
● @NotBlank - O elemento anotado não deve ser nulo e deve conter pelo
menos um caractere que não seja espaço em branco.
● @NotEmpty - O elemento anotado não deve ser nulo nem vazio
● @Size - O tamanho do elemento anotado deve estar entre os limites
especificados (incluídos).
● @Email - A string deve ser um endereço de e-mail bem formado.
https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/packa
ge-summary.html
@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/rota")
public class ClassController{
@PostMapping
public ResponseEntity<Object> nomeDoMetodo(@RequestBody
@Valid ClassDto classDto){
var nomeInstaciaModel = new ClassModel();
BeanUtils.copyProperties(classDto, instaciaModel);
}
}