MVC
É uma arquitetura de software que separa as regras de negócio do restante da interface do usuário. Faz isso dividindo a aplicação em três partes: Model, View e Controller
Model
Camada que gerencia os comportamentos fundamentais e os dados da aplicação.
É onde temos a lógica de programação e as regras de negócio.
View
Provém a interface ao usuário. Apresenta o que vem da camada model de forma adequada ao usuário.
Controller
Recebe input do usuário e chama métodos dos objetos da comada modelo e da view para as ações correspondentes
JavaBean
Uma classe que respeita as convenções abaixo:
SpringBean
Qualquer objeto gerenciado pelo Spring Framework Container
Hibernate
É um ORM: Object-Relational mapping. Mapeia objetos do java em tabelas no banco de dados sem ter que usar SQL.
Java Persistence API
É uma especificação. Especifica como o Hibernate deve ser implementado para prover persistência de dados em bancos relacionais.
Usa anotações.
Maven
Ferramenta de Construção e de Gerenciamento de Projeto
Do que consiste o build no Maven
Compilação do código fonte Testes (unitários e de integração) Empacotamento do código compilado em arquivos JAR Agrupamento dos arquivos JAR em WAR Fazer o deploy dos WAR em servidores
O que é Conventions Over Configuration no Maven?
Não é necessário especificar cada tarefa do build, a estrutura de diretórios criada pelo Maven já estabelece como isso é feito
(Maven) Juntamente à capacidade de construir e gerenciar o projetos estão ligadas outras duas características/funcionalidades.
Gerenciamento de dependências como lib e spring.
Uso de plugins
(Maven) Versionamento
3.2.1-SNAPSHOT: diz ao maven que é uma versão em desenvolvimento
(Maven) Repositórios: onde estão?
/.m2
(Maven) Wagon
Transporta os artefatos do repositório pra máquina e vice-versa
(Maven) POM
Documento XML usado para descrever um projeto maven.
POMS podem herdar propriedades de um POM pai
API
Application Programming Interface
Application: Quaisquer programas ou funcionalidade agrupadas para serem usadas por um usuário final para um propósito
Programming Interface: um ponto final de uma aplicação com que direfentes programas podem interagir.
Elabore mais um pouco a respeito do conceito de interfaces.
Interfaces permitem controlar o funcionamento sem que se saiba o funcionamento interno através de exposiçãso seletiva de funcionalidades. Elas definem mneiras de se comunicar com outros objetos.
REST
Representational State Transfer. É um conceito de arquitetura para gerenciar o estado de informação. É um conjunto de regras que desenvolvedores podem seguir ao criarem APIs. Essas regras permitem que programas conversem entre si.
Quais são as quatro qualidades de uma API Rest?
Estrutura de um request
Endpoint
Método
Headers
Body
Request endpoint
É a URI/URL. É composta por:
Métodos HTTP de requisição
Especificam a ação desejada em relação ao recurso especificado na uri.
GET, POST, PUT, DELETE, PATCH
HTTP Headers
São pares de propriedade-valor separados por “:”. São usados para dar informaçào tanto ao cliente quanto ao servidor. Podem ser usados para autenticação, fornecer informação sobre o corpo da request etc.