Please enable JavaScript.
Coggle requires JavaScript to display documents.
Java Web - Coggle Diagram
Java Web
Hibernate
-
-
Persistent objects:
são objetos de thread único e de curta duração que contêm estado persistente e função de negócios. Estes podem ser JavaBeans/POJOs comuns. Eles estão associados a exatamente um org.hibernate.Session.
Transient objects:
São instâncias de classes persistentes que não estão atualmente associadas a um org.hibernate.Session. Eles podem ter sido instanciados pelo aplicativo e ainda não persistidos, ou podem ter sido instanciados por um org.hibernate.Session fechado
-
-
-
Swagger
é uma aplicação open source que auxilia os desenvolvedores a definir, criar, documentar e consumir APIs REST;
-
Fornece ferramentas para: auxiliar na definição do arquivo de configuração (Swagger Editor), interagir com API através das definições do arquivo de configuração (Swagger UI) e gerar templates de código a partir do arquivo de configuração (Swagger Codegen).
-
-
-
JPA
-
-
Column(name = "NOME", nullable = false, length = 100) private String nome;
-
-
-
JSF (JavaServer Faces)
gerenciamento de dados em componentes de interface, manutenção do estado de componentes, validação de dados de usuários e na captura de eventos em aplicações web.
-
-
Bibliotecas de tags para adicionar componentes a páginas da Web e para conectar componentes a objetos do lado do servidor
-
Facelets
-
suportam o uso de taglibs, reuso de código por meio de templates, além de serem flexíveis à customização e extensíveis.
-
-
Inversão de Controle é um padrão de projeto em que a chamada de métodos é invertida, ou seja, não é determinada pelo programador, mas delegada a um componente que possa tomar conta dessa execução – o container. Uma das maneiras de aplicar a inversão de controle é por meio da injeção de dependência, que torna o container responsável por injetar em cada componente as dependências que tiverem sido declaradas.
Spring
O Spring é um dos frameworks Java mais conhecidos e utilizados. Trata-se de um ecossistema de desenvolvimento que facilita a criação de aplicações Java utilizando diversos módulos independentes
Spring Boot
-
Servidores web como o Tomcat, Jetty e Undertow embutidos;
Prover starter’s opinativos para gerenciamento de dependências e build;
Starters - uma dependência que inicializa algum módulo dentro do nosso projeto.
-
spring initializr: gera um projeto base para que você já comece o desenvolvimento das regras de negócio da sua aplicação.
Spring Cloud Config
application.properties
Config server
spring.cloud.config.server.git.uri: Endereço do repositório GIT que contem as configurações a serem distribuídas.
spring.cloud.config.server.git.username: Caso o repositório GIT informado não seja publico, você deve definir as credenciais de acesso, portanto nessa propriedade você define o nome do usuário que tenha acesso ao repositório privado.
spring.cloud.config.server.git.password: Caso o repositório GIT informado não seja publico, você deve definir as credenciais de acesso, portanto nessa propriedade você define a senha de acesso ao repositório privado
spring.cloud.config.server.git.search-paths: Essa propriedade deve ser utilizada quando os arquivos contendo as propriedades de configurações estiverem dentro de uma pasta
spring.cloud.config.label: Caso seu repositório GIT tenha mais de uma branch, você pode especificar em qual branch o Config Service deve obter os arquivos de configuração
um mesmo serviço pode possuir mais de um arquivo de configuração, separando-os por ambientes. Esse arquivos ficam em um repositório do git hub
-
Todas as configurações são gerenciadas pelo Config Server (ocal central para gerenciar propriedades externas para aplicativos em todos os ambientes.)
é um framework para construir microsserviços orientados a eventos altamente escaláveis conectados a sistemas de mensagens compartilhadas. que podem se conectar a sistemas externos
Spring Cloud Eureka
Sevice Descovery
comunicação entre serviços o ideal é que ela seja feito através do nome dos serviços, e que seja possível distribuir essas requisições por um balanceador de carga.
discovery.properties
-
eureka.instance.preferIpAddress: Como nossa aplicação vai rodar locamente queremos que os endereços de ips das maquinas sejam registradas no eureka e não o seu host name.
eureka.client.registerWithEureka: Neste primeiro momento não queremos que o eureka se registre nele mesmo.
eureka.client.fetchRegistry: Como não vamos registrar a nossa aplicação no eureka não faz sentido armazenar localmente as informações de registros do servidor.
bootstrap.properties
-
-
Spring.cloud.config.fail-fast: Especificamos que caso o Config Server não responda a nossa aplicação deve lançar uma exceção e falhar.
-
Spring Cloud Gateway
-
encaminha solicitações para um Gateway Handler Mapping, que determina o que deve ser feito com as solicitações que correspondem a uma rota específica.
Zuul
O Api Gateway Zuul é uma ferramenta desenvolvida pela Netflix que pode ser usada e possui uma grande facilidade de integração com o Spring, esse vendor possui uma enorme gama de produtos para essa arquitetura de sistemas distribuídos que se comunicam muito bem, levando isso consideração vamos utilizar o Zuul juntamente com o Eureka e o Ribbon.
MapStruct
MapStruct is a code generator that greatly simplifies the implementation of mappings between Java bean types based on a convention over configuration approach.
-
-
Multi-layered applications often require to map between different object models (e.g. entities and DTOs). Writing such mapping code is a tedious and error-prone task. MapStruct aims at simplifying this work by automating it as much as possible.
In contrast to other mapping frameworks MapStruct generates bean mappings at compile-time which ensures a high performance, allows for fast developer feedback and thorough error checking.
Java Servlets
-
Whenever a web server receives a request, it directs the request to a registered servlet.
-
-
Flyway
é um projeto OpenSource desenvolvido em Java, que automatiza Migrações de Esquemas de Banco de Dados para projetos Java
os scripts de migração de esquema são colocados no mesmo repositório que o código. Assim, um projeto obtém o versionamento direto dos scripts juntamente
com o versionamento do aplicativo
-
JavaServer Pages
enable us to inject dynamic content into a static page. JSPs are the high-level abstraction of servlets because they are converted into servlets before execution begins.
-
JSP is built on top of the servlet,
In light of the MVC design pattern, the Servlet acts as a controller and JSP as a view, whereas JSF is a complete MVC.
As we already know, the servlet will need manual HTML tags in Java code. For the same purpose, JSP uses HTML and JSF uses Facelets. Additionally, both provide support for custom tags, too.
There’s no default support for error handling in servlet and JSP. In contrast, JSF provides a bunch of predefined validators.
Security has always been a concern in applications that transmit data over the web. JSPs that support only role-based and form-based authentication are lacking in this aspect.
Speaking about the protocols, JSP only accepts HTTP, whereas servlet and JSF support several protocols, including HTTP/HTTPS, SMTP, and SIP. All of these technologies advocate multithreading and necessitate a web container to run.