有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java单例bean在Spring MVC中多次实例化?

有人知道为什么这个bean会被多次实例化吗?我只想要它的一个实例,但每次控制器运行时,都会再次调用construcutor

以下是我的应用程序上下文中的定义。xml

<bean id="DiameterClient" class="com.rory.diameter.client.DiameterClient" scope="singleton" init-method="start">
    <constructor-arg type="java.lang.String" index="0"><value>${pcca.host}</value></constructor-arg>      
    <constructor-arg index="1"><value>${pcca.port}</value></constructor-arg>      
    <constructor-arg index="2" value="com.openwave.djgx.message"/>
    <constructor-arg index="3" value="com.openwave.djgx.avp"/>    
</bean>

在我的控制器中,我正在使用它——我想这只会得到DiameterClient类的一个实例,但每次下面的代码运行时,它都会调用它的构造函数——非常感谢您的帮助:

BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
DiameterClient diameterClient = (DiameterClient)factory.getBean("DiameterClient");
diameterClient.send(aar);

注意,DiameterClient不是我的类,我不想编辑它,只想每个应用程序有一个全局实例。另外请注意,DiameterClient扩展线程-不确定这是否重要


共 (0) 个答案