Spring MVC 3.1 – Implementando uma aplicação CRUD com o Spring Data MongoDB (Part 4)

No artigo anterior, implementamos as classes Java e organizamos elas em várias camadas. Nesse artigo, iremos escrever os arquivos de configuração, que são principalmente documentos XML.

Índice de conteúdo

Parte 1: Introdução e Especificações funcionais
Parte 2: Configuração do MongoDB
Parte 3: Classes Java
Parte 4: Configuração do arquivos XML
Parte 5: Arquivos HTML (com AJAX)
Parte 6: Executando a aplicação

Configuração

Para ativar o repositório do MongoDB, incluindo o suporte a modelos, temos que declarar os seguintes beans:

  • um repositório Mongo
  • um hospedeiro Mongo
  • um modelo Mongo
  • Opcionalmente, declaramos um InitMongoService para popular automaticamente nosso banco de dados com dados de exemplo
<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans”
        xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
        xmlns:p=”http://www.springframework.org/schema/p”
        xmlns:c=”http://www.springframework.org/schema/c”
        xmlns:tx=”http://www.springframework.org/schema/tx”
        xmlns:context=”http://www.springframework.org/schema/context”
     xmlns:mongo=”http://www.springframework.org/schema/data/mongo”
        xmlns:util=”http://www.springframework.org/schema/util”
        xsi:schemaLocation=”
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd”>
<context:property-placeholder properties-ref=”deployProperties” />
<!– Activate Spring Data MongoDB repository support –>
   <mongo:repositories base-package=”org.krams.repository” />
   <!– MongoDB host –>
<mongo:mongo host=”${mongo.host.name}” port=”${mongo.host.port}”/>
<!– Template for performing MongoDB operations –>
   <bean id=”mongoTemplate” class=”org.springframework.data.mongodb.core.MongoTemplate”
   c:mongo-ref=”mongo” c:databaseName=”${mongo.db.name}”/>
<!– Service for initializing MongoDB with sample data using MongoTemplate –>
<bean id=”initMongoService” class=”org.krams.service.InitMongoService” init-method=”init”/>
</beans>

Para a conexão MongoDB, extraímos as propriedades do banco de dados em um arquivo separado.

# database properties
mongo.db.name=spring_mongodb_tutorial
mongo.host.name=localhost
mongo.host.port=27017

Finalmente, abaixo segue o arquivo applicationContext.xml de nossa aplicação:

<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:context=”http://www.springframework.org/schema/context”
xmlns:p=”http://www.springframework.org/schema/p”
xmlns:mvc=”http://www.springframework.org/schema/mvc”
xsi:schemaLocation=”http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd”>
<context:property-placeholder properties-ref=”deployProperties” />
<!– Activates various annotations to be detected in bean classes –>
<context:annotation-config />
<!– Scans the classpath for annotated components that will be auto-registered as Spring beans.
For example @Controller and @Service. Make sure to set the correct base-package –>
<context:component-scan base-package=”org.krams” />
<!– Configures the annotation-driven Spring MVC Controller programming model.
Note that, with Spring 3.0, this tag works in Servlet MVC only! –>
<mvc:annotation-driven />
<mvc:resources mapping=”/resources/**” location=”/resources/” />
  <!– Imports logging configuration –>
<import resource=”trace-context.xml”/>
<!– Imports datasource configuration –>
<import resource=”spring-data.xml”/>
<bean id=”deployProperties” class=”org.springframework.beans.factory.config.PropertiesFactoryBean”
        p:location=”/WEB-INF/spring.properties” />
</beans>

Fonte