Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Boas práticas com Spring - Java Magazine 84
A base do Spring Framework é seu container de injeção de dependências. Neste artigo veremos algumas boas práticas que, aplicadas ao uso do container de injeção de dependências, minimizam os custos de manutenção de sistemas baseados no framework.
Java Magazine 84
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 84
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 84
Boas práticas com Spring
Aplicando boas práticas ao container de IoC
Técnicas aplicadas ao container de injeção de dependências do Spring que melhoram a qualidade e manutenibilidade das aplicações
O Spring é um framework não intrusivo usado na criação de aplicações corporativas que se tornou bastante popular como uma alternativa ao padrão EJB. É não intrusivo (ou lightweight) pois não é necessário que nossas classes referenciem o código fonte deste projeto, reduzindo assim o acoplamento. A popularidade do Spring é consequência do framework fornecer quase todas as vantagens oferecidas pelo EJB usando apenas POJOs, simplificando bastante o desenvolvimento de aplicações corporativas.
Não é exagero afirmar que todo este sucesso deve-se na realidade à aplicação do padrão de injeção de dependências (ID). A base do framework é o seu container de ID, que possibilitou a implementação de recursos no framework como gerência de transações, programação orientada a aspectos, acesso a dados, MVC e muitos outros. Fica nítida, portanto, a importância de conhecer bem o Container de ID do Spring que, quando usado seguindo boas práticas, tais como as descritas neste artigo, o torna uma poderosa ferramenta presente no cinto de utilidades de qualquer desenvolvedor.
A partir de agora vamos começar a analisar algumas boas práticas que devem ser aplicadas ao container. Como o leitor perceberá, em sua maioria são técnicas adotadas no modo como escrevemos a configuração do container. Estas nos ajudam a melhor gerenciar o comportamento do mesmo e facilitar a manutenção de nossos sistemas.
Encapsule o container
O principal objetivo do container de injeção de dependências é reduzir ao máximo o acoplamento entre os componentes de nossos sistemas. Sendo assim, seria contraditório se o próprio Spring contribuísse para aumentar o número de dependências nos projetos em que é aplicado, o que ocorre quando o expomos diretamente. Para evitar este problema, devemos encapsular o container.
Em aplicações que não são executadas em um servidor de aplicações é interessante que ocultemos o contexto do Spring. Para tal, criamos uma classe envoltória (um wrapper) que oculte o container de injeção de dependências, tal como exposto na Listagem 1.
Wrapper: Uma classe wrapper é aquela usada para encapsular (“embalar”) outra classe. Normalmente este padrão é adotado em situações nas quais deseja-se evitar o acesso direto a algum recurso do sistema, como é o caso da Listagem 1.
Listagem 1. Ocultando o Container de Injeção de Dependências.
public class Container {
private ApplicationContext contextoSpring;
private ApplicationContext getContextoSpring() {
if (contextoSpring == null) {
contextoSpring = new ClassPathXmlApplicationContext("di/spring.xml");
}
return contextoSpring;
}
public synchronized Object getBean(String nome) {
ApplicationContext contexto = getContextoSpring();
if (contexto != null) {
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Aplicando boas práticas ao container de IoC
Técnicas aplicadas ao container de injeção de dependências do Spring que melhoram a qualidade e manutenibilidade das aplicações
O Spring é um framework não intrusivo usado na criação de aplicações corporativas que se tornou bastante popular como uma alternativa ao padrão EJB. É não intrusivo (ou lightweight) pois não é necessário que nossas classes referenciem o código fonte deste projeto, reduzindo assim o acoplamento. A popularidade do Spring é consequência do framework fornecer quase todas as vantagens oferecidas pelo EJB usando apenas POJOs, simplificando bastante o desenvolvimento de aplicações corporativas.
Não é exagero afirmar que todo este sucesso deve-se na realidade à aplicação do padrão de injeção de dependências (ID). A base do framework é o seu container de ID, que possibilitou a implementação de recursos no framework como gerência de transações, programação orientada a aspectos, acesso a dados, MVC e muitos outros. Fica nítida, portanto, a importância de conhecer bem o Container de ID do Spring que, quando usado seguindo boas práticas, tais como as descritas neste artigo, o torna uma poderosa ferramenta presente no cinto de utilidades de qualquer desenvolvedor.
A partir de agora vamos começar a analisar algumas boas práticas que devem ser aplicadas ao container. Como o leitor perceberá, em sua maioria são técnicas adotadas no modo como escrevemos a configuração do container. Estas nos ajudam a melhor gerenciar o comportamento do mesmo e facilitar a manutenção de nossos sistemas.
Encapsule o container
O principal objetivo do container de injeção de dependências é reduzir ao máximo o acoplamento entre os componentes de nossos sistemas. Sendo assim, seria contraditório se o próprio Spring contribuísse para aumentar o número de dependências nos projetos em que é aplicado, o que ocorre quando o expomos diretamente. Para evitar este problema, devemos encapsular o container.
Em aplicações que não são executadas em um servidor de aplicações é interessante que ocultemos o contexto do Spring. Para tal, criamos uma classe envoltória (um wrapper) que oculte o container de injeção de dependências, tal como exposto na Listagem 1.
Wrapper: Uma classe wrapper é aquela usada para encapsular (“embalar”) outra classe. Normalmente este padrão é adotado em situações nas quais deseja-se evitar o acesso direto a algum recurso do sistema, como é o caso da Listagem 1.
Listagem 1. Ocultando o Container de Injeção de Dependências.
public class Container {
private ApplicationContext contextoSpring;
private ApplicationContext getContextoSpring() {
if (contextoSpring == null) {
contextoSpring = new ClassPathXmlApplicationContext("di/spring.xml");
}
return contextoSpring;
}
public synchronized Object getBean(String nome) {
ApplicationContext contexto = getContextoSpring();
if (contexto != null) {
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

Você está em:
canal Java
Publicidade
Henrique Lobo Weissmann
Space do autor
É consultor Groovy/Grails, fundador do Grails Brasil e sócio da itexto Desenvolvimento de Projetos, que atua na criação de projetos adotando software livre e muito Grails.
Space do autor


0
0
