`
maosz1982
  • 浏览: 12153 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring和mima结合配置IoAccept中的sessionConfig中的属性

阅读更多
是不是想在使用spring配置mina的时候,配置IoAccept中的sessionConfig中的属性?比如readBufferSize和 IdleTime
如果你用java代码你会这样写:
IoAcceptor acceptor=new NioSocketAcceptor();
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig.setIdleTime(IdleStatus.BOTH_IDLE,10);

那么用spring配置的时候怎么写呢?
先看下NioSocketAccept的构造方法:
public NioSocketAcceptor() {
      super(new DefaultSocketSessionConfig(), NioProcessor.class);
      ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
}
得知 DefaultSocketSessionConfig 被实例化。

看到方法:
public SocketSessionConfig getSessionConfig() {
     return (SocketSessionConfig) super.getSessionConfig();
}
得知获取方法为getSessionConfig。

我们看到 DefaultSocketSessionConfig 以及其 继承的类中 有一些 set*方法。setReceiveBufferSize
setBothIdleTime
setReaderIdleTime等
我们可以通过spring来注入这些参数的值。
代码如下:
   <!-- session config -->
    <bean id="sessionConfig" factory-bean="serverAcceptor"
        factory-method="getSessionConfig" >
       
        <property name="bothIdleTime" value="10"/>
        <property name="receiveBufferSize" value="1024"/>
    </bean>


    <!-- server -->
   
    <bean id="serverAcceptor" class="org.apache.mina.transport.socket.nio.NioSocketAcceptor"
        init-method="bind" destroy-method="unbind">
        <property name="defaultLocalAddress">
            <bean class="java.net.InetSocketAddress">
                <constructor-arg>
                    <value>9123</value>
                </constructor-arg>
            </bean>
        </property>
        <property name="handler" ref="tspChainedIoHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean>

至此便可完成在spring中配置IoAccept中的sessionConfig中的属性。
0
1
分享到:
评论
1 楼 xiaopeng187 2014-02-14  
谢谢博主!

相关推荐

Global site tag (gtag.js) - Google Analytics