在这种情况下将创建多少个UserHandler类实例?

时间:2013-04-01 12:47:28

标签: java spring rmi

在我们的应用程序中,我们使用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类的次数(实例)。 这会是一个单身吗?我可以证明吗??

提前致谢。

1 个答案:

答案 0 :(得分:1)

您已将com.user.UserHandler设置为名称为streamer-core且具有单一范围的bean。因此,每个应用程序上下文只会创建一个 bean streamer-core。有关详细信息,请参阅:Spring Documentation

  

根据Spring IoC容器将单个bean定义范围限定为单个对象实例。

但它只与bean有关。为RmiProxtFactoryBean设置com.user.UserHandlerSeviceInterface后,您将为com.user.UserHandler再创建一个实例。

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