JSF ou Spring MVC

Boa Noite pessoal, estou indo para o mundo web java, como não conheço muito o mercado de trabalho web, queria saber qual das duas começar a estudar primeiro para conseguir um emprego de programador Java JR, e qual das duas tem mais vagas no mercado de trabalho.

Obrigado desde ja

Mercado Java é uma zona, vai encontrar de tudo. Mas no momento de escolher um framework, vá de Spring MVC, JSF limita muito o conhecimento de quem pretende se tornar desenvolvedor web de verdade, sem se prender a componentes server em Java.

Antes de usar um framework, é importante aprender a base: HTTP, Servlet, HTML, JS, CSS.

Conteúdo pra iniciar: https://www.caelum.com.br/apostila-java-web/

3 curtidas

Obrigado, pela dica

Já existe tópico aberto…

1 curtida

Bom, vamos lá! Primeiramente é necessário ter ciência que o mercado Java é de fato uma bagunça, como mencionado pelo amigo logo acima. Dificilmente vc chegará numa empresa que trabalhe só com Spring, só com JSF, só com Struts, só JSP e servlet. É importante se preparar para tudo e se especializar num de sua preferência.

Esta briga do Spring e JSF é antiga, mas vou tentar destacar alguns pontos que acho legal, ok?!

JSF

  • Utiliza a metodologia de component-based, ou seja, basicamente você usará componentes já desenvolvidos pela biblioteca. Existem várias bibliotecas que complementam a camada visual do JSF, como o Primefaces e o RichFaces.
  • Existe a possibilidade de criar componentes customizados por composição.
  • JSF é uma especificação do JEE
  • Um dos principais objetivos é maximizar a produtividade do desenvolvedor, uma vez que os componentes já prontos possuem uma gama de funcionalidades para uso extremamente simplificado.
  • Ainda no quesito de facilidade, validações se tornam bem mais tranquilas!
  • Curva de aprendizado relativamente menor do que a atmosfera Spring.
  • Não subestime pela facilidade de entendimento de alguns pontos, pois existem outros bem complexos, como por exemplo o ciclo de vida do JSF.
  • Precisa de outras bibliotecas para injeção de dependência.
  • Por ser uma especificação JEE, os Java EE containers já o implementam nativamente.
  • Para uso básico, pouca configuração.
  • HTML pouco flexível por ser gerado automaticamente pelo framework.
  • Pode encontrar dificuldade em manipulação de código javascript
  • Gera “lixo” no html com alta complexidade para manipulação e entendimento.
  • A falta de contexto em alguns componentes, como validadores e conversores, era uma dor de cabeça até a versão 2.2.x para injeção de dependências.

Spring

  • Conhecido principalmente pelo seu mecanismo de injeção de dependências.
  • Baseado em ações.
  • Total controle do que acontece no front-end
  • Facilidade de integração com bibliotecas no front-end
  • Comunidade muito ativa
  • Existe uma gama de componentes na família spring SData, SSecurity, SAOP, entre outros.
  • Configuração muito chata, até pouco tempo atrás era baseada em xml. Atualmente muitas coisas, se não tudo, pode ser feito via Annotations.
  • Por ter muito pontos de extensão, ao meu ver, a curva de aprendizado é um pouco maior do que o JSF.

Cada caso é um caso, mas entre o JSF e o Spring eu fico com o Spring, porém, entre o Spring e o JEE, eu fico com o JEE. :slight_smile:

2 curtidas