随笔 - 62  文章 - 0  评论 - 2  阅读 - 38568

ApplicationContextAware接口提供了publishEvent方法,实现了Observe(观察者)设计模式的传播机制,实现了对bean的传播

新增要操作的对象bean

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import org.springframework.context.ApplicationEvent;
 
public class AddEvent extends ApplicationEvent{
    private String name;
    public AddEvent(Object source,String name) {
        super(source);
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
     
}

再增加监听事件

1
2
3
4
5
6
7
8
9
10
11
12
public class AddListener implements ApplicationListener{
 
    @Override
    public void onApplicationEvent(ApplicationEvent paramE) {
        if(!(paramE instanceof AddEvent)){
            return ;
        }
         
        AddEvent se = (AddEvent) paramE;
        System.out.println("执行方法:"+se.getName());
    }
}

  增加*.xml

<bean id="AddBean" class="com.tdtech.eplatform.gatekeeper.bootstrap.A.Test"></bean>
<bean id="AddListener" class="com.tdtech.eplatform.gatekeeper.bootstrap.A.AddListener"></bean>

增加测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Test implements ApplicationContextAware{
      /**
     * 定义Spring上下文对象
     */
    private ApplicationContext m_applicationContext = null;
    public void setApplicationContext(ApplicationContext _applicationContext)
            throws BeansException {
        this.m_applicationContext = _applicationContext;
    }
     
    public void addStudent(String _sStudentName) {
        // 1.构造一个增加学生的事件
        AddEvent aStudentEvent = new AddEvent(
                m_applicationContext, _sStudentName);
        // 2.触发增加学生事件
        m_applicationContext.publishEvent(aStudentEvent);
    }
    public static void main(String[] args) {
        String[] xmlConfig = new String[] { "classpath:spring/test_spring.xml" };
        // 使用ApplicationContext来初始化系统
        ApplicationContext context = new ClassPathXmlApplicationContext(
                xmlConfig);
        Test studentBean = (Test) context
                .getBean("AddBean");
        studentBean.addStudent("我是第一个学生");
        studentBean.addStudent("第二个学生已经添加");
    }
}

  

posted on   一个帅哥9527  阅读(3430)  评论(0编辑  收藏  举报
编辑推荐:
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
阅读排行:
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示