是不是想在使用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有官方例子,网上也有很多介绍。
转载于:https://blog.51cto.com/maosz1982/961178