Este documento apresenta uma introdução aos principais frameworks Java EE para desenvolvimento de aplicações web: Java Server Faces (JSF), Java Persistence API (JPA) e Context Dependency Injection (CDI). A apresentação inclui uma explicação dos conceitos e funcionalidades de cada framework, como JSF permite a criação de interfaces gráficas web, JPA mapeia objetos Java para bancos de dados e CDI gerencia o ciclo de vida de componentes e injeção de dependências. A apresentação termina com uma demonstração prática do uso conjunto destes frameworks.
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6Dr. Spock
Palestra de introdução aos conceitos básicos da API de CDI (Contexts & Dependency Injection) do Java EE 6 realizada no The Developers Conference 2012 em São Paulo para a trilha de Java EE University.
Resumo: "Dentre todas as APIs que compõem a especificação da plataforma Java EE 6, a API de Contextos e Injeção de Dependência (Contexts and Dependency Injection), ou simplesmente CDI, é a grande novidade que não existia nas versões anteriores desta plataforma. Esta API adiciona um suporte ao padrão de projetos chamado de "Injeção de Dependências" como uma ferramenta de modelagem. Contudo, muito mais do que injeção de dependências, esta especificação estabelece novos conceitos que revolucionam as estrategias na construção de componentes de negócios. Esta apresentação, em caráter introdutório, descreve os principais conceitos e recursos do CDI que facilitam o processo de construção de aplicações enterprise robustas e eficientes com produtividade."
A apresentação visa repensar os padrões JavaEE para evitar o uso de padrões obsoletos, focando no container server-side, para criar arquiteturas enxutas.
Neste material podem ser encontrados conceitos e dicas necessárias ao desenvolvimento de uma aplicação completa utilizando JSF com JPA, tendo como biblioteca de Persistência o Hibernate e a biblioteca de componentes Primefaces.
Venha conhecer as principais tecnologias disponibilizadas para o desenvolvimento de aplicações Web utilizando a plataforma Java Enterprise.
Neste mini-curso serão demonstrados conceitos e exemplos das bibliotecas para o desenvolvimento Java EE, como: JSF, JPA, CDI EJB, JAX-RS, dentre outras.
Palestra para o LinguÁgil 2009 em Salvador.
Evento realizado entre os dias 12 e 14 de novembro de 2009 em Salvador. Palestra realizada no dia 14/11 das 17:20 às 18:10.
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6Dr. Spock
Palestra de introdução aos conceitos básicos da API de CDI (Contexts & Dependency Injection) do Java EE 6 realizada no The Developers Conference 2012 em São Paulo para a trilha de Java EE University.
Resumo: "Dentre todas as APIs que compõem a especificação da plataforma Java EE 6, a API de Contextos e Injeção de Dependência (Contexts and Dependency Injection), ou simplesmente CDI, é a grande novidade que não existia nas versões anteriores desta plataforma. Esta API adiciona um suporte ao padrão de projetos chamado de "Injeção de Dependências" como uma ferramenta de modelagem. Contudo, muito mais do que injeção de dependências, esta especificação estabelece novos conceitos que revolucionam as estrategias na construção de componentes de negócios. Esta apresentação, em caráter introdutório, descreve os principais conceitos e recursos do CDI que facilitam o processo de construção de aplicações enterprise robustas e eficientes com produtividade."
A apresentação visa repensar os padrões JavaEE para evitar o uso de padrões obsoletos, focando no container server-side, para criar arquiteturas enxutas.
Neste material podem ser encontrados conceitos e dicas necessárias ao desenvolvimento de uma aplicação completa utilizando JSF com JPA, tendo como biblioteca de Persistência o Hibernate e a biblioteca de componentes Primefaces.
Venha conhecer as principais tecnologias disponibilizadas para o desenvolvimento de aplicações Web utilizando a plataforma Java Enterprise.
Neste mini-curso serão demonstrados conceitos e exemplos das bibliotecas para o desenvolvimento Java EE, como: JSF, JPA, CDI EJB, JAX-RS, dentre outras.
Palestra para o LinguÁgil 2009 em Salvador.
Evento realizado entre os dias 12 e 14 de novembro de 2009 em Salvador. Palestra realizada no dia 14/11 das 17:20 às 18:10.
A apresentação aborda sobre a origem e o core do Spring, um framework open-source para desenvolvimento Java, bem como seus principais projetos e porque esse mega projeto de quase 20 anos de idade, ainda hoje é popular do mundo Java. Discutiremos sua arquitetura, funcionalidades e um roadmap dos projetos que estão sendo trabalhados no momento.
Dos objetos aos frameworks na plataforma Java. Slides apresentados no evento Wire2010 na USP/SP/Brasil realizado no dia 28/Jun/2010 das 13:10 às 14:00.
Construir aplicativos para web é uma das principais demandas do mercado. O Java EE define uma série de componentes para essa área, um deles é o JavaServer Faces (JSF). O JSF é um framework que adota o modelo de arquitetura MVC (Model View Controller), com o objetivo de aumentar a produtividade da construção de interfaces gráficas web baseadas em templates e disponibilizando um conjunto de componentes visuais reutilizáveis. Os componentes visuais do JSF encapsulam a escrita de código HTML, CSS e JavaScript, muitos delessuportam Ajax. Outra caracteristica importante do JSF é permitir o uso de bibliotecas de componentes visuais fornecidas por terceiros, trazendo mais opções de escolha aos desenvolvedores. Esta apresentação descreverá como o JSF pode ser uma tecnologia interessante para o desenvolvimento de aplicações web com Java EE.
Spring 3: Uma Plataforma além do FrameworkDr. Spock
Apresentação realizada no dia 06/Nov/2010 no evento The Developers Conference (TDC2010) na trilha Java (16:40 às 17:30) promovido pela Globalcode e VOffice em Florianópolis/SC/Brasil.
Semelhante a TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA (20)
A versão do Java 9 trouxe muitas novidades e melhorias para a plataforma e estrutura da linguagem. Novos recursos foram incorporados, como suporte à modularidade (Jigsaw), JShell, Stream API, Collection factories, dentre outros. A versão 10 também acabou de ser lançada com alguns recursos bem importantes. Venha conhecer e acompanhar demonstrações destes recursos em ação e também discutir sobre as futuras modificações da próxima versão 11 planejada para setembro deste ano.
O desenvolvimento de aplicações no ambiente de nuvem já tornou-se ?mainstream?. É fato também que o deployment de uma aplicação Java EE neste ambiente pode ser feito rapidamente, sem muita necessidade de adaptação. Mas, muitos são os desafios enfrentados e as melhores práticas recomendadas afim de extrair todo o benefício (escalabilidade, elasticidade, produtividade, adaptabilidade, resiliência) que este ambiente pode oferecer. Nesta talk iremos demonstrar como tirar proveito dos recursos e serviços computacionais oferecidos pela nuvem (Microsoft Azure) no desenvolvimento de uma aplicação Java EE utilizando os últimos recursos da versão EE 8 (JAX-RS, CDI, JPA, EJB, JSON-P, Servlets, etc).
Microservices tornaram-se o tema mais quente na arquitetura de software atualmente, e muito pode ser dito sobre os seus benefícios. Mas, existem inúmeros desafios relacionados a implementação e propagação de segurança no contexto destes componentes. Esta palestra abordará como realizar os cenários de autenticação e autorização com microservices, bem como discutir boas práticas e estratégias de implementação de segurança cobrindo tecnologias como OAuth2, OpenID Connect, JSON Web Token.
Microservices have become the hottest topic in software architecture over the past year, and much can be said about their benefits. But there are many challenges related to their security implementation and security context propagation over their components. This session addresses how to perform authentication and authorization inside a microservices architecture, covering technologies such as OAuth2, OpenID Connect, and JSON Web Token and use of Spring Cloud Security to integrate with a Spring and/or Java EE–based application platform.
A versão do Java 9 acabou de ser lançada e traz muitas novidades e melhorias para a plataforma e na estrutura da linguagem. Novos recursos foram incorporados, como suporte à modularidade (Jigsaw), JShell, Stream API, Collection factories, dentre outros. Venha conhecer e acompanhar algumas demonstrações destes estes novos recursos em ação.
Microservices tornaram-se o tema mais quente na arquitetura de software durante o ano passado, e muito pode ser dito sobre os seus benefícios. Mas, existem inúmeros desafios relacionados a implementação e propagação de segurança no contexto destes componentes. Esta palestra abordará como realizar os cenários de autenticação e autorização com microservices, cobrindo tecnologias como OAuth2, JSON Web Token, utilizando a plataforma do Spring Cloud Security afim de integrar-se com aplicações Spring e/ou Java EE.
Serviços reativos foram definidos pelo Manifesto Reativo. Eles são construídos para serem flexíveis, fracamente acoplados, escaláveis, e também qualificados com base nos quatro principais princípios: responsividade, resiliência, elasticidade e dirigido à mensagens. Java e a plataforma Java EE oferecem uma ótima estrutura com bibliotecas para implementar serviços reativos e transformá-los em uma arquitetura otimizada para micro-serviços. Esta palestra apresentará as melhores práticas para implementar serviços reativos em Java usando RxJava, definindo uma arquitetura de micro-serviços baseada em casos reais e boa práticas aplicadas.
Serviços reativos foram definidos pelo Manifesto Reativo. Eles são desenvolvidos para serem mais flexíveis, fracamente acoplados, escaláveis e também qualificados a partir dos quatro princípios: responsivo, resiliente, elástico e direcionados a mensagens. A plataforma Java e Java EE oferecem uma ótima estrutura e bibliotecas para implementarem serviços reativos e transformá-los em uma arquitetura de micro-serviços resiliente.
Reactive services were defined by the Reactive Manifesto. They are built to be more flexible, loosely-coupled and scalable and also they are qualified based on the four principles: responsive, resilient, elastic and message driven. Java and the Java EE platform offers a pretty good structure and libraries to implement reactive services and transform it in a microservices architecture designed.
AngularJS tem atraído muita atenção ultimamente e a maioria das aplicações utilizando Angular necessitam comunicar-se por meio de uma API REST. A plataforma Java EE com sua robustez e o seu avançado suporte a REST é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST backend para aplicações baseadas em HTML5 e AngularJS. Esta palestra abordará como construir uma aplicação em Angular utilizando tecnologias backend Java EE, como JAX-RS, WebSockets, JSON-P e CDI. Ao final desta sessão, você vai entender os benefícios no uso destas tecnologias, bem como padrões e boas práticas aplicadas neste modelo de desenvolvimento. Os tópicos abordados incluem: Javascript, HTML5, AngularJS, algumas API's Java EE (JAX-RS, WebSockets, JSON-P, CDI).
Spring Data REST oferece uma customização no topo do projeto Spring Data que exporta os repositórios automaticamente como serviços REST. Implementa conceitos e boas práticas em arquiteturas REST, como RESTful, ALPS, HATEOAS, permitindo os clientes encontrarem e explorarem as funcionalidades expostas de uma maneira fácil e organizada.
Esta palestra irá abordar como desenvolver rapidamente uma API de microservicos REST utilizando Spring Boot e Spring Data REST. Será principalmente orientada a exemplos de código demonstrando a implementação destas tecnologias.
Micro-serviços tornaram-se o tema mais quente na arquitetura de software durante o ano passado, e muito pode ser dito sobre os seus benefícios. No entanto, é importante compreender que ao começar a decompor o monolito, entramos no reino de sistemas distribuídos lidando com cenários de transparência de localização, recuperação à falhas, escalabilidade, autonomia, fácil atualização, etc. O projeto Spring Cloud promove ferramentas para facilmente implementar estes conceitos, definindo padrões de implementação para sistemas distribuídos com suporte para gerenciamento de configuração, descoberta de serviços, circuit breakers, roteamento, distribuição de sessão, barramento de controle, dentre outros. Nesta palestra serão demonstrados os conceitos destas ferramentas com a utilização do projeto Spring Cloud e com o suporte da plataforma do Netflix OSS.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...Rodrigo Cândido da Silva
Os microservices tornaram-se o tema mais quente na arquitetura de software, e muito se pode dizer sobre os seus benefícios. Mas é importante compreender que ao começar a decompor o monolito entramos no reino de sistemas distribuídos. Precisamos lidar com cenários de transparência de localização, recuperação de falhas, escalabilidade, autonomia, facilidade de atualização e outros aspectos. Por outro lado, quando tratamos toda essa complexidade, conseguimos definir aplicações que rodam “eternamente” – tornando-se auto-curáveis (self-healing) e muito escaláveis.
O projeto Spring Cloud traz ferramentas para facilitar a aplicação desses conceitos na prática, definindo padrões de implementação para sistemas distribuídos com suporte a gerenciamento de configuração, descoberta de serviços, circuit breakers, roteamento, distribuição de sessões, barramento de controle, dentre outras técnicas. Pode também ser combinado com a plataforma Netflix OSS, que oferece componentes especialmente úteis em um ambiente de microservices, como Eureka (registro), Ribbon (localização), Hystrix (tolerância a falhas), Zulu (roteamento).
Nesta palestra será demonstrado como usar na prática essas ferramentas, bem como os desafios e lições aprendidas – tudo com base em casos reais de uso de uma arquitetura de microservices implementada com Spring Cloud e Netflix OSS.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
5. JSF: o que é?
Java Server Faces
Framework MVC proposto em 2001
JSR 127 (1.0 e 1.1, 2001), JSR 252 (1.2, 2004), JSR 314 (2.0,2007)
Padronizou o desenvolvimento de interface de usuário web
Definido por grupo de especialistas composto de empresas e pessoas
físicas
Suportado pelos containers homologados para JEE 5 ou superior
Baseado na tecnologia Servlets
Ed Burns, Roger Kitain - Sun
http://java.sun.com/javaee/javaserverfaces/
Globalcode – Open4education
6. MVC - Dividir e conquistar
Beleza vs Funcionamento
Código Organizado
Manutenção Fácil
Sabe aonde achar o erro
Globalcode – Open4education
7. JSF: principais componentes
J2EE Web Container J2EE EJB
Container
JSF e J2EE
javax.faces
Controller View Model
Servlet Java Custom JavaBeans EJB
Server Tag
Pages
Globalcode – Open4education
8. Criação de páginas JSF
Página JSF Links, formulários, imagens, Request
combo-box, tabelas, etc…
Managed
Bean
Tags: JSF HTML Expression Language: EL
Tags: JSF Core Session
Através destas tags adicionamos
validação, conversão de dados, Managed
listeners Bean
Dados para popular as tabelas,
combo-box, textos. Application
Managed
Bean
Globalcode – Open4education
15. Java Persistence API
Primeira especificação (padrão) de mapeamento de objetos
Java para base de dados relacional
Integração com outros frameworks
Hibernate é uma implementação de JPA
TopLink Essencials é uma implementação de JPA (RI)
POJO (Plain Old Java Objects) Entidades
Mapeamento via metadados (annotation Java 5)
Pode ser utilizado fora de containeres EJBs (ligthweigth
container)
Uso de injeção de dependência ao invés de lookups JNDI
Globalcode – Open4education
22. CDI (JSR-299)
CDI = Context Dependency Injection
Novo modelo para gerenciamento de beans e
injeção de dependência
Nova definição para escopos de aplicação
Também conhecido como “Web Beans”
Integra as camadas web e negócio da aplicação
Facilita a implementação das aplicações que utilizam
tecnologias como JSF e EJB (Java EE)
Globalcode – Open4education
23. CDI (JSR-299)
Gerenciamento de ciclo de vida de componentes
statefull
Provê um mecanismo de DI typesafe
Disponibiliza mecanismo de eventos facilitando o
desenvolvimento com baixo acoplamento
Tem um mecanismo de Interceptors e Decorators
Possibilita a criação de extensões portáveis para
qualquer implementação
Integração com EL
Globalcode – Open4education
25. CDI Managed Beans
Nova definição para
“beans
Instâncias são
gerenciadas pelo
container
Serviços disponíveis
Injeção de Dependência
Ciclo de vida
Interceptors
Events
Globalcode – Open4education
29. O que pode ser injetado
CDI Managed Beans (POJO)
Objetos retornados por @Produces
EJB Session Bean (local ou remoto)
Java EE Resources (DataSource, JMS)
JTA UserTransaction
EntityManager (JPA)
Bean Validation Factory
Destination e ConnectionFactory JMS
Globalcode – Open4education
30. Principais Recursos
Injection Points
Qualifiers
Alternatives
EL Names
Producer Methods
Java EE Resources
Scopes and Contexts
Interceptors
Stereotypes
Events
Globalcode – Open4education
31. E que venha o código
Demonstração
Globalcode – Open4education
Comentar sobre a história do surgimento do JPA (como por exemplo a contribuição do Hibernate e do Gavin King para esta especificação) Falar sobre os benefícios na utilização de JPA em uma aplicação que necessita de persistência como (aumento da produtividade, diminuição da complexidade, ganho de performance, etc)
Comentar sobre o modelo da arquitetura do JPA, que possui uma similaridade com o modelo JDBC, composto por uma API de interfaces e pelos JPA providers (Hibernate, EclipseLink, Castor, etc)
Comentar sobre a facilidade de implementação do JPA utilizando anotações, simplificando muito o mapeamento das entidades e também utilizando-se do conceito de “defaults” amplamente utilizado pelo Java EE 5. Demonstrar o exemplo de um JavaBean mapeado comentando sobre algumas anotações principais (@Entity, @Table, @Id, @Column)
Comentar sobre o conceito do objeto EntityManager dentro do JPA, responsável pela publicação dos métodos de persistência (find, persist, merge, remove) e também pelo gerenciamento dos Entity JavaBeans;
* Demonstrar o exemplo de configuração do JPA, definindo as configurações do PersistenceContext e também do provider específico.
* Demonstrar um exemplo de utilização do JPA, utilizando os métodos do EntityManager para realizar o processo de persistência dos Entity JavaBeans.