Post on 22-Jan-2018
JAVA 9 - Módulos
Rafael Nascimento
JSR 376
JIGSAW
HISTÓRIA
Linha do tempo
2008 - Início do projeto
2014 - Primeiras implementações
2017 - Jigsaw JDK9
Objetivos
● Configuração confiável;
● Forte encapsulamento;
● Plataforma escalável;
● Melhorar desempenho;
Objetivos
● Configuração confiável;
● Forte encapsulamento;
TEORIA
O que é um módulo
Em java, um módulo é um conjunto de componentes.
.class, pacotes, jars.
Como criar uma aplicação modularizada
Como definir um módulo
Diretivas
requires
exports
opens
provides
uses
Diretivas
requires
Diretivas
exports
Diretivas
opens
Diretivas
opens
Diretivas
provides
Diretivas
uses
Modificadores
requires static transitive
Modificadores
requires static transitive
provideswith
Modificadores
requires static transitive
provideswith
exportsto
Modificadores
requires static transitive
provideswith
exportsto
opensto
O que Já temosComo utilizar?
Módulos automáticos
VANTAGENS
VANTAGENS
Jarhell
Encapsulamento
Performance
backend-api
commons.lang-2.6.jarSpring
common-lang.1.1.jar
VANTAGENS
Jarhell
Encapsulamento
Performance
Main Controller
Data
VANTAGENS
Jarhell
Encapsulamento
PerformanceCom o sistema de módulos, as aplicações deverão utilizar apenas os módulos necessários para execução.
*Comparativo realizado no jvisualVM
*Comparativo realizado no jvisualVM
DESVANTAGENS
DESVANTAGENS
Pacotes divididos
Dependências de terceiros Se
curit
y A
PP
security-hash.jar
crypto-api.jar
java.sec.Security.class
java.sec.HashEnum.class
java.sec.Asymetric.class
java.sec.Symetric.class
DESVANTAGENS
Pacotes divididos
Dependências de terceiros
Error:java: the unnamed module reads package org.apache.juli.logging from both tomcat.juli and tomcat.embed.core
DESVANTAGENS
Pacotes divididos
Dependências de terceiros
DÚVIDAS
https://jcp.org/en/jsr/proposalDetails?id=376
https://docs.oracle.com/javase/specs/jls/se9/html/jls-7.html#jls-7.7.3
https://stackoverflow.com/questions/44697738/how-to-resolve-module-reads-package-error-in-java9
https://www.concrete.com.br/2017/10/09/introducao-ao-java-9-quais-sao-as-principais-novidades/
https://github.com/rafass90/codersonbeer-app
Referências
Centro
Av. Presidente Wilson,
231 - 29º andar
(21) 2240-2030
Cidade Monções
Av. Nações Unidas,
11.541 - 3º andar
(11) 4119-0449
Savassi
Av. Getúlio Vargas, 671
Sala 800 - 8º andar
(31) 3360-8900
www.concrete.com.br