Foros del Web » Programación para mayores de 30 ;) » Java »

Spring + hibernate

Estas en el tema de Spring + hibernate en el foro de Java en Foros del Web. Que tal tengo un problema con en una aplicacion que estoy realizando. Por algun motivo que no logro entender la aplicacion crea mas de una ...
  #1 (permalink)  
Antiguo 05/08/2008, 12:37
 
Fecha de Ingreso: febrero-2006
Mensajes: 35
Antigüedad: 18 años, 3 meses
Puntos: 0
Spring + hibernate

Que tal tengo un problema con en una aplicacion que estoy realizando. Por algun motivo que no logro entender la aplicacion crea mas de una conexion contra la base de datos. mi archivo de Spring es el siguiente (trate de dejarlo lo mas limpio posible):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverM anagerDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost/plantaadsl</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>mariano</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSes sionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>hibernate/Comando.hbm.xml </value>
<value>hibernate/UserTelnet.hbm.xml</value>
<value>hibernate/Dslam.hbm.xml</value>
<value>hibernate/Log.hbm.xml</value>
<value>hibernate/Proveedor.hbm.xml</value>
<value>hibernate/Tecnologia.hbm.xml</value>
<value>hibernate/TipoComando.hbm.xml</value>
<value>hibernate/Vlan.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<ref local="hibernateProperties" />
</property>
</bean>
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.Pr opertiesFactoryBean" singleton="true">
<property name="properties">
<props>
<prop key="hibernate.connection.autocommit">true</prop>
<prop key="hibernate.connection.url">jdbc:mysql://localhost/plantaadsl</prop>
<prop key="hibernate.connection.username">plantaadsl</prop>
<prop key="hibernate.connection.password">mariano</prop>
<prop key="hibernate.connection.driver_class">org.gjt.mm .mysql.Driver</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQ LInnoDBDialect</prop>
<prop key="current_session_context_class">thread</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.connection.poolSize">1</prop>
<prop key="hibernate.connection.pool">1</prop>
</props>
</property>
</bean>
<bean id="hibernateDao" class="ar.com.rpadsl.persistencia.hibernate.Hibern ateDAO" singleton="true">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
</beans>

La clase java que llamo desde cualquier parte de mi aplicacion es para obtener un bean es

package ar.com.rpadsl.persistencia;


import org.apache.log4j.Logger;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFacto ry;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class BeanProvider {
static Logger logger = Logger.getLogger(BeanProvider.class.getName());

private static BeanProvider instance;

private BeanFactory factory;

private BeanProvider(){
logger.info("Generando una instancia del BeanProvider");
Resource resource = new ClassPathResource("spring-config.xml");
factory = new XmlBeanFactory(resource);
}

private BeanProvider(BeanFactory myFactory) {
factory = myFactory;
}

public static BeanProvider getInstance() {
if (instance == null)
instance = new BeanProvider();
return instance;
}

public Object getBean(String beanName) {
Object object = factory.getBean(beanName);

logger.info("Obtenido el bean " + object.toString());
logger.debug("DEBUG");
if (object == null) {
logger.error("No se encontró el bean " + beanName
+ " dentro del archivo de configuración de beans");
throw new RuntimeException("No se encontró el bean " + beanName
+ " dentro del archivo de configuración de beans");
}
return object;
}

public static void setBeanFactory(BeanFactory myFactory) {
if (instance == null)
instance = new BeanProvider(myFactory);
else
instance.factory = myFactory;
}
}
  #2 (permalink)  
Antiguo 06/08/2008, 16:06
 
Fecha de Ingreso: agosto-2008
Ubicación: Cajamarca
Mensajes: 49
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Spring + hibernate

Este comportamiento es normal. En la documentacion : Simple implementation of the standard JDBC DataSource interface, configuring a plain old JDBC Driver via bean properties, and returning a new Connection for every getConnection call.

http://static.springframework.org/spring/docs/2.0.8/api/org/springframework/jdbc/datasource/DriverManagerDataSource.html

Cimballi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:52.