是不是想在使用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="myChainedIoHandler" />
        <property name="filterChainBuilder" ref="filterChainBuilder" />
    </bean>
 
至此便可完成在spring中配置IoAccept中的sessionConfig中的属性。其他mina结合spring的配置含义本文不做解释,mina有官方例子,网上也有很多介绍。