Java 9 - Módulos (Rafael Nascimento

Post on 22-Jan-2018

46 views 1 download

Transcript of Java 9 - Módulos (Rafael Nascimento

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