在我们的应用程序中,我们使用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类的次数(实例)。 这会是一个单身吗?我可以证明吗??
提前致谢。
答案 0 :(得分:1)
您已将com.user.UserHandler
设置为名称为streamer-core
且具有单一范围的bean。因此,每个应用程序上下文只会创建一个 bean streamer-core
。有关详细信息,请参阅:Spring Documentation:
根据Spring IoC容器将单个bean定义范围限定为单个对象实例。
但它只与bean有关。为RmiProxtFactoryBean设置com.user.UserHandler
为SeviceInterface后,您将为com.user.UserHandler
再创建一个实例。
com.user.UserHandler的实例通过RmiProxyFactoryBean#afterPropertySet在ProxyFactory创建