Class IoAcceptorFactoryBean

java.lang.Object
org.apache.mina.integration.spring.IoAcceptorFactoryBean
All Implemented Interfaces:
org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean

public class IoAcceptorFactoryBean extends Object implements org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
Spring FactoryBean which enables the bindings of an IoAcceptor to be configured using Spring. Example of usage:

   <!-- This makes it possible to specify java.net.SocketAddress values 
        (e.g. :80 below) as Strings.
        They will be converted into java.net.InetSocketAddress objects by Spring.  -->
   <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
     <property name="customEditors">
       <map>
         <entry key="java.net.SocketAddress">
           <bean class="org.apache.mina.integration.spring.InetSocketAddressEditor"/>
         </entry>
       </map>
     </property>
   </bean>
 
   <!-- The IoHandler implementation -->
   <bean id="httpHandler" class="com.example.MyHttpHandler">
     ...
   </bean>
     
   <bean id="filterChainBuilder" 
         class="org.apache.mina.integration.spring.DefaultIoFilterChainBuilderFactoryBean">
     <property name="filters">
       <list>
         <bean class="org.apache.mina.filter.LoggingFilter"/>
       </list>
     </property>
   </bean>

  <!-- By default MINA uses an ExecutorThreadModel. This demonstrates how to 
          use your own with some non default settings. The threadModel will 
          be set on the SocketAcceptorConfig defined below. To configure a 
          ExecutorFilter directly you will have to use the ThreadModel.MANUAL 
          ThreadModel instead. -->
   <bean id="threadModel" class="org.apache.mina.integration.spring.ExecutorThreadModelFactoryBean">
     <property name="serviceName" value="HttpService"/>
     <property name="executor">
       <bean class="org.apache.mina.integration.spring.ThreadPoolExecutorFactoryBean">
         <property name="corePoolSize" value="2"/>
         <property name="maxPoolSize" value="10"/>
         <property name="keepAliveSeconds" value="30"/>
       </bean>
     </property>
   </bean>

   <bean id="ioAcceptor" class="org.apache.mina.integration.spring.IoAcceptorFactoryBean">
     <property name="target">
       <bean class="org.apache.mina.transport.socket.nio.SocketAcceptor"/>
     </property>
     <property name="bindings">
       <list>
         <bean class="org.apache.mina.integration.spring.Binding">
           <property name="address" value=":80"/>
           <property name="handler" ref="httpHandler"/>
           <property name="serviceConfig">
             <bean class="org.apache.mina.transport.socket.nio.SocketAcceptorConfig">
               <property name="filterChainBuilder" ref="filterChainBuilder"/>
               <property name="reuseAddress" value="true"/>
               <property name="threadModel" ref="threadModel"/> 
             </bean>
           </property>
         </bean>
       </list>
     </property>
   </bean>
 

  • Constructor Details

    • IoAcceptorFactoryBean

      public IoAcceptorFactoryBean()
  • Method Details

    • setTarget

      public void setTarget(org.apache.mina.common.IoAcceptor target)
      Sets the IoAcceptor to be configured using this factory bean.
      Parameters:
      target - the target IoAcceptor.
    • setBindings

      public void setBindings(Binding[] bindings)
      Sets the bindings to be used by the IoAcceptor configured by this factory bean.
      Parameters:
      bindings - the bindings.
      Throws:
      IllegalArgumentException - if the specified value is null.
      See Also:
      • IoAcceptor.bind(SocketAddress, IoHandler)
      • IoAcceptor.bind(SocketAddress, IoHandler, IoServiceConfig)
      • Binding
    • getObject

      public Object getObject() throws Exception
      Specified by:
      getObject in interface org.springframework.beans.factory.FactoryBean
      Throws:
      Exception
    • getObjectType

      public Class getObjectType()
      Specified by:
      getObjectType in interface org.springframework.beans.factory.FactoryBean
    • isSingleton

      public boolean isSingleton()
      Specified by:
      isSingleton in interface org.springframework.beans.factory.FactoryBean
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • destroy

      public void destroy() throws Exception
      Specified by:
      destroy in interface org.springframework.beans.factory.DisposableBean
      Throws:
      Exception