在我们的应用程序中,我们使用Spring RMI概念。

我有一个问题如下

有一个名为UserHandlerI的接口及其实现类UserHandler,如下所示

接口

public interface UserHandlerI extends Remote {

public boolean add_user(String message) throws Exception;

}


及其实现类(UserHandler)

public class UserHandler implements UserHandlerI
{
public abstract boolean add_user(String message) throws Exception
{
// My business logic goes here
return true ;
}
}


与上面的上述类和接口有关,它们在xml文件中提到

<bean id="streamer-core" class="com.user.UserHandler" scope="singleton" />






<bean id="streamer" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
        <property name="serviceUrl" value="rmi://${${appl-host}}:${${appl-port}}/App" />
        <property name="serviceInterface" value="com.at.UserHandler"/>
        <property name="refreshStubOnConnectFailure" value="true"/>
        <property name="lookupStubOnStartup" value="false" />
    </bean>


我不确定配置文件中是否缺少任何内容?

我的问题是,我怎么知道将创建类UserHandler多少次(实例)。
这是单身吗?我可以证明吗?

提前致谢 。

最佳答案

您已将com.user.UserHandler设置为名称为streamer-core且具有单例作用域的bean。因此,每个一个应用程序上下文仅创建一个bean streamer-core。有关更多详细信息,请阅读:Spring Documentation


每个Spring IoC容器将单个bean定义的作用域限定为单个对象实例。


但这仅与bean有关。在将RccProxtFactoryBean的com.user.UserHandler设置为SeviceInterface后,可以为com.user.UserHandler创建一个实例。

com.user.UserHandler的实例通过RmiProxyFactoryBean#afterPropertySetProxyFactory中创建

10-04 11:03