Struts 2 + AJAX + JPA + Spring – Parte VII

 

Integrando o Struts 2 ao Spring

 

<bean id="insereContato" class="br.jm.actions.InsereContatoAction" scope="prototype">

      <property name="servico" ref="servicoContato"></property>

</bean>

   

<bean id="listaContatos" class="br.jm.actions.ListaContatosAction" scope="prototype">

      <property name="servico" ref="servicoContato"></property>

</bean>

   

<bean id="login" class="br.jm.actions.LoginAction" scope="prototype">

      <property name="servico" ref="servicoLogin"></property>

</bean>

   

<bean id="removeContato" class="br.jm.actions.RemoverContatoAction" scope="prototype">

      <property name="servico" value="servicoContato"></property>

</bean>

 

Criamos o bean insereContato que recebe em seu atributo serviço por o bean servicoCOntato e esta com o scope configurado para prototype que informa que deve ser criada uma instancia deste objeto cada vez que for requisitado.

 

No bean listaContatos recebemos também uma referencia do bean servicoCOntato. Vemos que o bean removeContato recebe não uma referencia mas sim uma atribuição por valor do bean servicoContato.

 

E por fim o bean login que recebe uma referencia ao bean servicoLogin que prove acesso ao banco de dados.

 

Pronto, basta acessar http://localhost:8080/Cadastro que nossa aplicação exemplo estara funcionando tendo a integração do Struts 2 + AJAX + JPA + Spring.

 

Simples não!?!

 

Conclusão

Como pode ter sido observado durante este artigo, tecnologias como Struts 2, JPA, Spring auxiliam bastante o trabalho do desenvolvedor.

 

Embora seja recente o Struts 2, já esta disponível a versão 2.0.8 do Struts 2, e podemos esperar ainda mais amadurecimento desta framework conforme o tempo, mas suas facilidades como a integração com AJAX, ou para o desenvolvimento da camada de visão realmente são pontos positivos que devem levar em conta para a utilização desta framework, sem contar que a mesma oferece a possibilidade de se integrar com a versão antiga do struts, o que facilita o processo de migração para quem já tem sistemas com o Struts 1x.

 

Quanto a JPA, quem já teve que persistir objetos enormes no banco de dados, ou realizar consultas complexas, sabe o quanto uma framework de mapeamento O/R ajuda no processo de desenvolvimento. Enquanto frameworks como o Hibernate possuem funcionalidades a mais que a JPA, um exemplo disso é o Criteria que para quem já desenvolve com hibernate pode sentir falta na JPA, mas já esta nos planos para a próxima versão da JPA a agregação dessa e outras funcionalidades do hibernate e outras frameworks O/R, o que definitivamente incentiva o uso desta em sistemas de produção.

 

Vocês podem ter percebido que temos toda a instanciação dos objetos de nossa aplicação em único arquivo, um dos pontos altos de se trabalhar com injeção de dependências é buscar o desacoplamento do código, a utilização de interfaces ajuda bastante, mas não resolve todos nosso problemas, por isso cada vez mais desenvolvedores aderem ao uso do Spring em suas aplicações.                  

        

Espero ter demonstrado com este artigo que estas tecnologias estão aí para facilitar a vida de nós, desenvolvedores Java que estamos sempre buscando agilidade no desenvolvimento/manutenção de nossas aplicações e principalmente a busca em se desenvolver aplicações web dinâmicas com facilidade e tornar nossa aplicação fácil de migrar para outros bancos de dados caso necessário.

     

<?xml version="1.0" encoding="UTF-8"?>

<persistence xmlns="http://java.sun.com/xml/ns/persistence"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"

      version="1.0">

 

 

<persistence-unit name="testeStruts"/>

Listagem 20 – persistence.xml

 

freemarker-2.3.8.jar

ognl-2.6.11.jar

struts2-core-2.0.6.jar

struts2-spring-plugin-2.0.6.jar

xwork-2.0.1.jar

Struts 2

spring.jar

spring-jpa.jar

Spring

antlr-2.7.6.jar

asm.jar

asm-attrs.jar

cglib-2.1.3.jar

commons-collections-2.1.1.jar

commons-logging-1.0.4.jar

dom4j-1.6.1.jar

ehcache-1.2.3.jar

ejb3-persistence.jar

hibernate3.jar

hibernate-annotations.jar

hibernate-commons-annotations.jar

hibernate-entitymanager.jar

javassist.jar

jboss-archive-browsing.jar

jta.jar

Hibernate

mysql-connector-java-5.0.5-bin.jar

MySQL

Dwr.jar

DWR

Figura 5 – Dependências do projeto.

 

ONGL : Object-Graph Navigation Language – linguagem para obter e atribuir propriedades de objetos java.

 

Downloads

Struts 2.0.6

http://struts.apache.org/2.0.6/index.html

Spring Framework 2.0.6

http://www.springframework.org/download

Hibernate Core 3.2.4

http://www.hibernate.org/6.html

Hibernate Annotations 3.3.0

http://www.hibernate.org/6.html

Hibernate EntityManager 3.3.1

http://www.hibernate.org/6.html

Eclipse Eudora

http://download.eclipse.org/webtools/downloads/drops/R2.0/R-2.0-200706260303/

 

 

Para Saber Mais

Hibernate

http://www.hibernate.org/5.html

Spring 2

http://www.springframework.org/documentation

http://www.theserverside.com/tt/articles/article.tss?l=SpringFramework

Struts 2

http://struts.apache.org/2.0.6/docs/home.html

 

Leia todos os artigos da série