Mega Code Archive

 
Categories / Java Tutorial / Spring
 

Concurrency Throttle Interceptor

File: context.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"     "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>   <bean id="afterBean" class="org.springframework.aop.framework.ProxyFactoryBean">     <property name="target">       <bean class="MtBean">         <property name="firstName" value="AAA"/>       </bean>     </property>     <property name="interceptorNames">       <list>         <idref bean="endMatchPointcutAdvisor"/>       </list>     </property>     <property name="proxyTargetClass" value="true"/>   </bean>   <bean id="endMatchPointcutAdvisor"         class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor"         singleton="false">     <property name="advice" ref="concurrencyThrottleInterceptor"/>     <property name="mappedName" value="showValues"/>   </bean>   <bean id="concurrencyThrottleInterceptor"         class="org.springframework.aop.interceptor.ConcurrencyThrottleInterceptor"         singleton="false">     <property name="concurrencyLimit" value="5"/>   </bean> </beans> File: Main.java import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.util.StopWatch; public class Main {   public static void main(String[] args) throws Exception {     BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("context.xml"));     MtBean testBean = (MtBean) beanFactory         .getBean("afterBean");     testBean.showValues();   } } class MtBean {   private String firstName;   public String getFirstName() {     return this.firstName;   }   public void setFirstName(String firstName) {     this.firstName = firstName;   }   public void showValues() {     System.out.println("First name: " + this.firstName);   } }