Quer ter acesso a todos os cursos desse Guia?
Programador Java
Aprender Java não é uma tarefa simples, mas seguindo a ordem proposta nesse Guia, você evitará muitas confusões e perdas de tempo no seu aprendizado. Vem aprender java de verdade, vem!
Começando no Java
Olá, fico feliz que você tenha optado pelo Java. Provavelmente você está se perguntando por onde começar. Bom, esclarecer essa e outras dúvidas é o papel deste Guia de Referência. E como ponto de partida te indicamos o DevCast a seguir, no qual apresentamos a linha de aprendizado do programador Java. Vamos lá?
Curioso para ver código Java? Os cursos abaixo te oferecem esse primeiro contato com a linguagem, além de apresentar como compilar um primeiro programa:
Quer saber aonde ir agora? Assista ao DevCast a seguir e descubra onde temas como programação web, acesso a bancos de dados, entre outros, se encaixam na preparação do programador Java:
![Começando no Java - Parte 2](http://arquivo.devmedia.com.br/noticias/devcast/devcast_java-por-onde-comecar-parte-2_38285.png)
Confira também o Guia de Consulta Linguagem Java, que contém outros conteúdos sobre a linguagem.
Acesso a Bancos de dados
Provavelmente até aqui você criou aplicações que, quando encerradas, perdiam todos os dados nela inseridos. Mas, por que isso acontece? Por um motivo simples: assim como precisamos programar condicionais, estruturas de repetição, entre outras coisas para definir o funcionamento do nosso sistema, precisamos programar como ele deve armazenar, isto é, persistir os dados (Figura 1).
![Persistência de dados em Java](http://arquivo.devmedia.com.br/artigos/guias/persistenciaemjava.png)
Em Java, o primeiro passo para aprender como persistir dados é conhecer a API JDBC. A partir dela, você conseguirá acessar, enviar e recuperar dados de um recurso fundamental a toda aplicação, o banco de dados. É nele que os dados ficam, de fato, armazenados. Saiba mais no curso:
É fundamental para escrever código JDBC que você tenha um Driver JDBC em seu ambiente de desenvolvimento. Aprenda a instalar o MySQL Connector/J, o Driver JDBC do MySQL, no Intellij IDEA em 5 minutos:
![Java: Como instalar uma biblioteca no Intellij IDEA](http://arquivo.devmedia.com.br/noticias/5minutos/5minutos_java-como-instalar-uma-biblioteca-no-intellij-idea_39167.png)
Apesar do JDBC ser fundamental para o acesso a dados, logo descobriremos que ele carece de certas funcionalidades, presentes em frameworks como o Hibernate. E já que estamos começando a falar sobre frameworks, que tal fazermos uma pausa para falar sobre o Maven? Essa ferramenta facilita a preparação do ambiente de desenvolvimento ao realizar o download e instalação das bibliotecas das quais o projeto depende, além de outras tarefas. Aprenda sobre ele nos links:
Hibernate é o framework para persistência de dados mais utilizado em projetos Java. Sendo uma das primeiras opções a implementar o conceito de mapeamento objeto-relacional (ORM), em pouco tempo se tornou referência entre os desenvolvedores, tendo sido tomado, inclusive, como referência para criação da especificação JPA:
![Curso O QUE É JPA](http://arquivo.devmedia.com.br/cursos/imagem/curso_o-que-e-jpa_39282.jpg)
![Sistema de Autenticação Web utilizando JPA](http://arquivo.devmedia.com.br/noticias/artigos/artigo_crud-completo-com-hibernate-e-jpa_32711.png)
Aprenda sobre este framework nos cursos abaixo:
Percorrer coleções é uma tarefa comum ao lidar com bancos de dados. O Java 8 trouxe como novidade o suporte as expressões lambda, que simplificam a escrita desse código fundamental. Saiba como utilizá-las no curso:
![Curso O que são Lambda Expressions](http://arquivo.devmedia.com.br/cursos/imagem/curso_o-que-sao-expressoes-lambda_37850.jpg)
Spring Data JPA é também um framework muito utilizado para acesso a bancos de dados relacionais. Aprenda mais sobre ele neste curso:
![Curso Persistência com Spring-Data JPA](http://arquivo.devmedia.com.br/cursos/imagem/curso_424.jpg)
Como conteúdo extra, preparamos um curso completo sobre JdbcTemplate, solução do Spring Framework que simplifica o desenvolvimento de aplicações que acessam o banco de dados utilizando JDBC:
![Curso Java Spring JdbcTemplate](http://arquivo.devmedia.com.br/cursos/imagem/curso_418.jpg)
Confira também o Guia de Referência Hibernate e veja outros conteúdos sobre a Java e acesso a dados.
Para conhecer os principais conteúdos que você precisa estudar, como programador, para trabalhar com bancos de dados, acesse:
![BD para Programadores](http://arquivo.devmedia.com.br/noticias/guia/guia_banco-de-dados-para-desenvolvedores_37586.png)
Validação de dados
Validar é uma prática extremamente importante em aplicações. Esse procedimento impede que dados incorretos sejam salvos no banco de dados e, em muitos casos, contribui para a segurança do sistema. O objetivo principal da biblioteca Bean Validation é auxiliar os programadores nesta tarefa, permitindo a definição das regras de validação por meio de anotações, na camada de modelo da aplicação.
Saiba como validar dados com Bean Validation neste curso:
![Curso Bean Validation: Validação de dados em Java](http://arquivo.devmedia.com.br/cursos/imagem/curso_bean-validation-validacao-de-dados-em-java_2033.png)
Programação Java Web
A programação Web é uma das vertentes do Java que mais evolui. Nas primeiras versões, tudo era de responsabilidade das servlets – da etapa de atender às requisições HTTP, até gerar o HTML a ser enviado para o browser do usuário.
Como você pode notar, muitas eram as responsabilidades atribuídas a um único elemento. Esse problema, no entanto, logo começou a ser minado. Se não era viável lidar com códigos assim em projetos de pequeno/médio porte, imagine em projetos maiores.
A partir disso, muitos padrões, bibliotecas, frameworks e APIs começaram a ser criados, e todos, sem exceção, tendo como um dos seus objetivos simplificar e melhor distribuir as responsabilidades entre os elementos da aplicação.
Um dos padrões mais conhecidos e que abrange com exatidão esse objetivo é o padrão arquitetural MVC. Para aprender sobre ele, acesse:
Não é exagero afirmar que esse padrão rapidamente conquistou os programadores de todas as linguagens. E não apenas isso. Até hoje continua sendo um dos padrões mais implementados na construção de qualquer framework voltado para a programação Web. Podemos dizer até um pouco mais: pelo menos no curto/médio prazo, esse cenário não deve mudar.
Sendo assim, aconselhamos que você estude esse padrão e aprenda sobre as principais tecnologias que o adotam. No Java, as primeira tecnologias com que você terá contato no desenvolvimento web são Servlets, JSP e posteriormente o JSF, os quais você pode conhecer nos cursos abaixo:
Com o JSF, temos à disposição uma API Java que implementa o padrão MVC e simplifica a programação ao oferecer um amplo de leque de componentes visuais e não visuais para agilizar a criação de sistemas Web.
Interessado em saborear e, até mesmo, começar a se aprofundar no JSF, acesse as publicações que indicamos abaixo:
-
CursoJSF: Minha primeira aplicação Java WEB
-
CursoJSF e Hibernate: Criando uma aplicação de cadastro de lembretes
-
CursoComo consumir Web Services RESTful em Java com JSF/PrimeFaces
-
ProjetoFormulário de cadastro com JSF e Bootstrap
Ajax é uma tecnologia que nos permite trocar informações com o servidor através de requisições feitas em segundo plano, sem que para isso necessitemos recarregar a página. Uma vez que grandes aplicações como Gmail, Facebook, entre outras, têm utilizado essa tecnologia em benefício da usabilidade, tornando melhor a experiência do usuário, é muito provável que você tenha que desenvolver suas páginas JSF utilizando Ajax. O curso abaixo apresenta uma abordagem inicial sobre o assunto:
![Primeiros passos na JSF com Ajax](http://arquivo.devmedia.com.br/cursos/imagem/curso_primeiros-passos-na-jsf-com-ajax_2170.png)
Aqui na DevMedia temos diversos conteúdos sobre o framework JSF. Para se aprofundar ao máximo nesse tema, recomendamos o Guia:
![JSF - JavaServer Faces](http://arquivo.devmedia.com.br/noticias/guia/guia_jsf-javaserver-faces_38322.png)
Outro ótimo exemplo de framework que implementa o padrão MVC é o Spring MVC. Com uma proposta um pouco diferenciada em relação ao seu “concorrente” JSF, o Spring MVC, aos poucos, vem conquistando cada vez mais adeptos.
Uma das bases dessa tecnologia é que ela é construída sobre o Spring Framework, aproveitando dele suas principais características, como é o caso da Inversão de Controle e da Injeção de Dependência.
Como para começar a utilizar o Spring MVC é interessante ao menos ter uma ideia do que é o Spring Framework, começamos sugerindo o curso:
![O que é Spring](https://www.devmedia.com.br/arquivos/cursos/Curso_o_que_e_spring_2316.jpg)
Spring MVC
Logo após, por que não começar a programar com o Spring MVC? Para isso, acesse aos cursos:
Spring Boot
O Spring Boot facilita a criação de aplicações de diferentes tipos, simplificando o processo de configuração e execução. Nos posts a seguir você aprenderá a utilizar essa tecnologia para construir aplicações web:
O Spring e o Spring MVC são frameworks que nos fornecem os mais variados recursos para atender à maior parte das nossas necessidades na programação de aplicações em Java. Com o intuito de estruturar todo o conteúdo que já publicamos sobre eles, preparamos o Guia:
![Guia de Consulta Spring Framework](http://arquivo.devmedia.com.br/noticias/artigos/artigo_spring-mvc-construa-aplicacoes-responsivas-com-bootstrap_32178.png)
Atualmente, essas são as principais tecnologias Java para o mundo Web. No entanto, como tudo em nossa área, a qualquer momento esse cenário pode mudar, novas tecnologias podem surgir. A qualquer momento, portanto, poderemos lançar novos conteúdos. Sendo assim, nossa última recomendação é: esteja sempre atento, pois a qualquer momento publicaremos novos conteúdos por aqui. =D
Web Services
Web service é como chamamos uma solução que atende requisições de diferentes aplicações. Independente da linguagem ou plataforma utilizada por cada uma delas, o papel do Web service será intermediar a comunicação, tornando-as compatíveis. Neste cenário, até pouco tempo, muito se falava em SOAP para a construção de serviços Web. Recentemente, no entanto, devido a vários fatores, uma nova opção foi criada e rapidamente se tornou uma preferência no mercado: Web services RESTful.
Você sabe o que é isso? Sabe como programar seu primeiro serviço web utilizando o padrão REST? Não! Então, confira os cursos abaixo:
Programando web services RESTful
Agora que você sabe o que é RESTful e como criar web services, que têm como base o protocolo HTTP, está na hora de dar mais alguns passos. Para te acompanhar neste momento, preparamos os cursos a seguir que demonstram como criar APIs RESTful utilizando o framework Jersey, implementação de referência da especificação JAX-RS, tendo o apoio do Hibernate para programação da camada de acesso a dados.
Spring e web services
Apesar de ser uma excelente opção, o Jersey não é a nossa única escolha. O Spring Framework também fornece recursos para a criação de serviços RESTful. Nesta seção você encontrará conteúdos que demonstram como utilizá-lo para a criação de Web APIs:
Segurança
Na programação para a web a segurança também é fundamental na construção de web services RESTful. Diferentemente dos sistemas web tradicionais, no entanto, as Web APIs precisam ser stateless, que determina que o servidor não pode guardar estado entre as requisições.
Com base nisso, como programar a segurança, a autenticação e a autorização em web services? Esses são alguns dos assuntos que serão esclarecidos nos cursos deste tópico:
JWT é um token criado no formato JSON para permitir a troca de informações de maneira segura, sendo muito utilizado para integrar aplicações e prover mecanismos de autenticação, principalmente em APIs REST. Nos conteúdos abaixo introduzimos essa tecnologia:
Caso seu interesse seja aprender mais sobre web services RESTful e a construção de Web APIs, preparamos um Guia especialmente sobre esse assunto. Confira:
![REST e Java](http://arquivo.devmedia.com.br/noticias/exemplos/exemplo_web-service-restful-com-crud-filtros-e-ordenacao-usando-asp-net-web-api_25.png)
Web services SOAP
Mesmo com a redução no número de projetos que o adotam, o uso de web services SOAP ainda continuará com uma demanda no mercado de desenvolvimento. Lembre-se que ao optar pelo REST, ficamos "presos" aos protocolos HTTP/HTTPS, mas, e se precisarmos trocar mensagens utilizando o protocolo SMTP, por exemplo? E se precisarmos que nosso serviço seja stateful?
Para aprender como programar web services SOAP, assista ao curso:
![Curso de Java: Web Service na prática](http://arquivo.devmedia.com.br/cursos/imagem/curso_413.jpg)
Padrões e boas práticas
Agora que você já conhece a linguagem, bem como algumas das APIs que compõem a plataforma Java, é uma boa ideia se aprofundar em técnicas que lhe ajudarão a escrever códigos consistentes e com maior qualidade.
Diferentes equipes de programadores podem vivenciar os mesmo problemas durante a etapa de codificação de softwares distintos. Uma vez que tais dificuldades são comuns elas podem ser solucionadas da mesma forma, embora estejam em contextos diferentes. Os Padrões de Projeto são o fruto do esforço em catalogar estas soluções, que são apresentadas em detalhes no seguinte curso:
![Introdução a Design Patterns](http://arquivo.devmedia.com.br/artigos/Higor_Medeiros/padraofactory/image001.jpg)
Você já olhou para um código que parecia errado, mas não soube dizer de imediato por quê? Pode ser que você tenha se deparado com um Code Smell e, acredite, se você não se livrar dele, esse incômodo ficará cada vez pior. Aprenda no DevCast a seguir o que é um Code Smell e o que fazer em relação a ele:
![Um bate papo sobre Code Smells](http://www.devmedia.com.br/arquivos/noticias/devcast/devcast_um-bate-papo-sobre-code-smells_39636.png)
A plataforma Java conta com algumas APIs que facilitam a utilização de padrões fundamentais, fornecendo a infraestrutura necessária para que sejam aplicados em um projeto. Um exemplo disso é a CDI, Contexts and Dependency Injection, que fornece serviços que, quando utilizados em conjunto, permitem a criação de código menos acoplado e mais coeso através da Inversão de Controle.
Existem muitos outros padrões de projeto e, sendo o Java uma linguagem orientada a objetos, é muito comum que tenhamos contato com eles, seja em nosso próprio código ou quando usamos algum framework. Por essa razão recomendamos que você continue se inteirando desse assunto com o Guia abaixo:
![Padrões de Projeto em Java](http://arquivo.devmedia.com.br/marketing/img/guia-padroes-de-projeto-em-java-34456.png)
MeetUps
Aprenda mais sobre a linguagem com esses MeetUps a seguir. Quem sabe a sua dúvida não está respondida aqui ;)
Na prática
Escrever aplicações de qualidade requer tempo e muita dedicação. Felizmente, sempre podemos aprender com a experiência de outros programadores, adicionando mais facilmente opções a nossa caixa de ferramentas. Assistindo a este curso você ficará por dentro da programação genérica, classificação e pesquisa, tratamento de exceções, multithreading e muito mais. Confira!
![Curso de Java: Técnicas Avançadas para Java SE](http://arquivo.devmedia.com.br/cursos/imagem/curso_423.jpg)
Até o momento você aprendeu as principais tecnologias que compõem a Java Enterprise Edition, a plataforma Java voltada para o desenvolvimento de aplicações em larga escala. Que tal agora colocar em prática esse aprendizado? Saiba como nesse curso:
![Curso Java EE: Construa uma aplicação completa Java EE](http://arquivo.devmedia.com.br/cursos/imagem/curso_403.jpg)
Independentemente dos tipos de programa que você vai desenvolver, existem alguns passos a serem dados antes da codificação. A reunião de levantamento de requisitos trata desse momento, no qual planejamos como será aplicação e conhecemos, assim, as particularidades de suas funções. Assista no curso abaixo como essa reunião é conduzida:
![Levantamento de requisitos: Planejando uma aplicação de lembretes](http://arquivo.devmedia.com.br/noticias/exemplos/exemplo_modelagem-de-requisitos_42.png)
Relatórios
Gerar relatórios é um requisito comum à grande maioria das aplicações. Através destes cursos você terá uma formação completa sobre como construir relatórios dos mais simples aos mais avançados utilizando as ferramentas iReport e JasperReports:
Mais sobre Java
Além dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Java, os quais você pode conferir nos Guias de Consulta abaixo:
-
Guia de consultaLinguagem Java Guia
-
Guia de consultaHibernate Guia
-
Guia de consultaJSF - JavaServer Faces Guia
-
Guia de consultaSpring Framework Guia
-
Guia de consultaJava Enterprise Edition - Java EE Guia
-
Guia de consultaREST e Java Guia
-
Guia de consultaPadrões de Projeto em Java Guia
-
Guia de consultaTestes e DevOps Guia
-
Guia de consultaBigData com Java Guia
Além disso, você pode conferir todo o conteúdo de Java clicando aqui.
Perguntas frequentes