problema en mi aplicación de primavera.Singleton de primavera que se llama dos veces
Tengo granos de primavera muy simples, que se inyectan en varios otros granos de primavera. Mientras encontré la depuración, se llaman dos veces, el Constructor & @ PostConstruct se llamaron dos veces.
Mi aplicación no tiene tecnología de front-end. Es simplemente para tareas relacionadas con el back-end.
configuración del resorte
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:lang="http://www.springframework.org/schema/lang" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd">
<context:component-scan base-package="com.green.integration" />
<!-- ######################################################## -->
<!-- EXPOSING SPRING BEAN VIA HTTPINVOKER SPRING REMOTING -->
<!-- ######################################################## -->
<bean name="/switch"
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="SwitchController" />
<property name="serviceInterface"
value="com.green.ISwitchController" />
</bean>
<!-- Load in application properties reference -->
<bean id="applicationProperties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:application.properties" />
</bean>
<bean id="mongo" class="com.mongodb.Mongo">
<constructor-arg value="${mongo.server}" />
<constructor-arg value="${mongo.port}" />
</bean>
<bean id="morphia" class="com.google.code.morphia.Morphia">
</bean>
</beans>
beans Spring Clase
@Repository
public class TransactionDAO extends BasicDAO<Transaction, ObjectId> {
private Datastore datastore;
@Autowired
public TransactionDAO(Mongo mongo, Morphia morphia) {
super(mongo, morphia, "itransact");
morphia.map(Transaction.class);
// TO USE MONGO WITHOUT SECURITY
this.datastore = morphia.createDatastore(mongo, "itransact");
logger.debug("***** CONNECTED TO MONGODB SUCCESSFULLY *****");
this.datastore.ensureIndexes();
// this.datastore.ensureCaps();
}
}
Constructor "TransactionDAO" está siendo llamado dos veces.
traté de ver seguimiento de la pila de llamadas por
Throwable t = new Throwable();
System.out.println(t.getStackTrace()[1].toString());
y cada vez que mostró la siguiente
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
¿Está absolutamente seguro de que '@ PostConstruct' se llama dos veces también? El constructor que se llama dos veces se puede explicar fácilmente, pero no '@ PostConstruct'. –
¿Tiene una configuración de servlet de despachador? –
¿Quizás tiene su xml de contexto de aplicación importado del archivo de configuración xml de otro contexto a través del? –