spring中的事件传播


package com.logcd.beans;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class LoginAction implements ApplicationContextAware{
    private ApplicationContext applicationContext;
   
    public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
    this.applicationContext = applicationContext;
    }
   
    public int login(String username) {
        ActionEvent event = new ActionEvent(this,username+"在登录!");
        this.applicationContext.publishEvent(event);
        return 0;
    }
}

(3)listener类:

package com.logcd.beans;

import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;

public class ActionListener implements ApplicationListener{

    public void onApplicationEvent(ApplicationEvent event) {
            //只处理自己应该处理的
           if (event instanceof ActionEvent) {
            System.out.println(((ActionEvent)event).getMessage());
            }
    }

}
 
(4)配置

    <bean id="loginAction" class="com.logcd.beans.LoginAction"/>
    <bean id="listener" class="com.logcd.beans.ActionListener"/>

 

http://log-cd.iteye.com/blog/161307

你可能感兴趣的:(spring)