java 9 - módulos (rafael nascimento

37

Upload: concrete

Post on 22-Jan-2018

45 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Java 9 - Módulos (Rafael Nascimento
Page 2: Java 9 - Módulos (Rafael Nascimento

JAVA 9 - Módulos

Rafael Nascimento

Page 3: Java 9 - Módulos (Rafael Nascimento

JSR 376

JIGSAW

Page 4: Java 9 - Módulos (Rafael Nascimento

HISTÓRIA

Page 5: Java 9 - Módulos (Rafael Nascimento

Linha do tempo

2008 - Início do projeto

2014 - Primeiras implementações

2017 - Jigsaw JDK9

Page 6: Java 9 - Módulos (Rafael Nascimento

Objetivos

● Configuração confiável;

● Forte encapsulamento;

● Plataforma escalável;

● Melhorar desempenho;

Page 7: Java 9 - Módulos (Rafael Nascimento

Objetivos

● Configuração confiável;

● Forte encapsulamento;

Page 8: Java 9 - Módulos (Rafael Nascimento

TEORIA

Page 9: Java 9 - Módulos (Rafael Nascimento

O que é um módulo

Em java, um módulo é um conjunto de componentes.

.class, pacotes, jars.

Page 10: Java 9 - Módulos (Rafael Nascimento

Como criar uma aplicação modularizada

Page 11: Java 9 - Módulos (Rafael Nascimento

Como definir um módulo

Page 12: Java 9 - Módulos (Rafael Nascimento

Diretivas

requires

exports

opens

provides

uses

Page 13: Java 9 - Módulos (Rafael Nascimento

Diretivas

requires

Page 14: Java 9 - Módulos (Rafael Nascimento

Diretivas

exports

Page 15: Java 9 - Módulos (Rafael Nascimento

Diretivas

opens

Page 16: Java 9 - Módulos (Rafael Nascimento

Diretivas

opens

Page 17: Java 9 - Módulos (Rafael Nascimento

Diretivas

provides

Page 18: Java 9 - Módulos (Rafael Nascimento

Diretivas

uses

Page 19: Java 9 - Módulos (Rafael Nascimento

Modificadores

requires static transitive

Page 20: Java 9 - Módulos (Rafael Nascimento

Modificadores

requires static transitive

provideswith

Page 21: Java 9 - Módulos (Rafael Nascimento

Modificadores

requires static transitive

provideswith

exportsto

Page 22: Java 9 - Módulos (Rafael Nascimento

Modificadores

requires static transitive

provideswith

exportsto

opensto

Page 23: Java 9 - Módulos (Rafael Nascimento

O que Já temosComo utilizar?

Page 24: Java 9 - Módulos (Rafael Nascimento

Módulos automáticos

Page 25: Java 9 - Módulos (Rafael Nascimento

VANTAGENS

Page 26: Java 9 - Módulos (Rafael Nascimento

VANTAGENS

Jarhell

Encapsulamento

Performance

backend-api

commons.lang-2.6.jarSpring

common-lang.1.1.jar

Page 27: Java 9 - Módulos (Rafael Nascimento

VANTAGENS

Jarhell

Encapsulamento

Performance

Main Controller

Data

Page 28: Java 9 - Módulos (Rafael Nascimento

VANTAGENS

Jarhell

Encapsulamento

PerformanceCom o sistema de módulos, as aplicações deverão utilizar apenas os módulos necessários para execução.

Page 29: Java 9 - Módulos (Rafael Nascimento

*Comparativo realizado no jvisualVM

Page 30: Java 9 - Módulos (Rafael Nascimento

*Comparativo realizado no jvisualVM

Page 31: Java 9 - Módulos (Rafael Nascimento

DESVANTAGENS

Page 32: Java 9 - Módulos (Rafael Nascimento

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

Page 33: Java 9 - Módulos (Rafael Nascimento

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

Page 34: Java 9 - Módulos (Rafael Nascimento

DESVANTAGENS

Pacotes divididos

Dependências de terceiros

Page 35: Java 9 - Módulos (Rafael Nascimento

DÚVIDAS

Page 36: Java 9 - Módulos (Rafael Nascimento

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

Page 37: Java 9 - Módulos (Rafael Nascimento

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