Escolar Documentos
Profissional Documentos
Cultura Documentos
Não há também como negar que o Java EE tenha tido muitos problemas em
seus primeiros anos. Todos ou boa parte deles vêm sendo tratados a cada nova
versão das diversas especificações. De qualquer forma, no entanto, o
desconforto causado deu espaço a novos modelos de desenvolvimento,
manutenção e execução de aplicações corporativas, como é o caso do Spring
Framework.
IBM – WebSphere;
WebLogic/BEA – WebLogic;
Adobe – JRun;
JBoss/Red Hat – JBoss AS (recentemente substituído pelo WildFly;
Apache – Geronimo, TomEE;
Object Web – JOnAS;
Caucho Technology – Resin.
Por contraditório que seja ou não, quando elas afetam ambientes de produção
ou qualquer outro ambiente sensitivo, a responsabilidade é das equipes de
operação, cujo modus operandi difere fundamentalmente dos das equipes de
desenvolvimento.
Essa impedância histórica entre essas áreas acaba afetando outro pilar
conceitual do Java EE: a produtividade/agilidade.
Enfim, a aplicação ainda é corporativa, mas utiliza apenas uma pequena parte
das facilidades disponíveis. Apesar disso, sendo executada em um servidor
Java EE, irá pagar por todos os ônus associados.
Apesar dos desconfortos citados, como foi dito inicialmente, o Java EE os tem
tratado e vem evoluindo a cada nova versão. E mesmo com todos eles, não há
como negar que desenvolver uma aplicação corporativa com o Java EE seja
muitíssimo mais simples e gerenciável que com CORBA, por exemplo.
Spring Framework
2) apresentar uma alternativa que fosse mais simples, menos custosa, com
tempo de entrega de mercado mais realista, mais gerenciável e com melhor
performance.
Diante de tudo isso, o Spring Framework não levou muito tempo para
conquistar o público. Não foram só as dificuldades inerentes ao
desenvolvimento e manutenção do Java EE tradicional que o impulsionaram.
O conceito e mecanismos de DI são extremamente poderosos, pois atuam
sobre um dos principais vilões do desenvolvimento de software moderno, o
acoplamento.
Reforçando, a única coisa que codificamos são POJOs. Todo o resto ligamos,
como se brincássemos com Lego.
Rod Johnson, Juergen Hoeller e Yann Caroff decidiram então fundar uma
empresa, a SpringSource, centrada no projeto open source do Spring
Framework.
A crítica com relação à coesão talvez seja exagerada, mas não há como negar
que o espírito do Spring tenha muito mais compromissos com eficiência e
pragmatismo do que com concisão conceitual. Isso não vai, a princípio,
mudar.
Com relação à dependência de muita configuração em XML, trata-se do
desdobramento natural da diversidade e abrangência do próprio ecossistema.
É necessário configurar o MVC, o Security, o Integration, seus próprios
Beans, etc. É necessário dizer ao Spring como ele irá carregar o contexto,
enfim, e quais os mapeamentos e ligações entre os componentes, entre outras
coisas.
Spring Java Config, ou JavaConfig, é o mecanismo que nos possibilita configurar o Spring IoC
diretamente de nossas classes Java por meio de metadados na forma de annotations – presentes no
Java desde sua versão 5 –, não mais dependendo de arquivos de definição de beans em XML. As
principais vantagens em se utilizar o JavaConfig são:
Mecanismo objeto orientado para a injeção de dependência, o que significa que podemos
tirar proveito de reuso, herança e polimorfismo em nosso código de configuração.
Controle completo de instanciação e injeção de dependência, o que significa que mesmo
dependências muito complexas podem ser tratadas de forma elegante e clara.