Spring笔记--ApplicationContext
来源:互联网 发布:64码高清网络电视官方 编辑:程序博客网 时间:2024/05/16 13:50
Spring中ApplicationContext的机制
2016/6/3 17:01:53 seventeenWen
ApplictionContext的实现机制,在Spring框架中有ApplicationEvent抽象类和ApplicationLostenner接口
ApplicationEvent源码:
public abstract class ApplicationEvent extends EventObject {private static final long serialVersionUID = 7099057708183571937L;private final long timestamp;public ApplicationEvent(Object source) { super(source); this.timestamp = System.currentTimeMillis();}public final long getTimestamp() { return this.timestamp;}}
ApplicationListener接口源码:
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {void onApplicationEvent(E event);}
我们要实现自己的Application事件机制,首先定义一个类继承自ApplicationEvent
,这样我们就可以通过Spring来进行管理。
public class MyEvent extends ApplicationEvent {private String name;public String getName() { return name;}public void setName(String name) { this.name = name;}public MyEvent(Object source) { super(source);}// --------构造注入-----------public MyEvent(Object source, String name) { super(source); this.name = name;}private static final long serialVersionUID = 1L;}
我们有了Event之后还需要一个Listener来监听Event中发生的事件,实现ApplicationListener接口,并且实现它的一个方法:
onApplicationEvent(ApplicationEven event):每当Event中发生事件时,此方法都会触发。
public class MyListener implements ApplicationListener{@Overridepublic void onApplicationEvent(ApplicationEvent event) { //判断一下是不是我们自己定义的MyEvent的对象 if(event instanceof MyEvent){ MyEvent eve = (MyEvent) event; System.out.println("我的名字:"+eve.getName()); }else{ System.out.println("不是我们自己的Event"); }}}
接下来我们在xml配置文件中将Listener配置进去,测试类TestSpring
public class TestSpring {
public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("config.xml"); MyEvent event =new MyEvent("test","----SeventeenWen----"); //publish用来主动触发Event ctx.publishEvent(event);}}
在consol上我们就能看到结果了
不是我们自己的Event我的名字:----SeventeenWen----
总结
让我们再来总结一下,ApplicationContext机制流程,首先是加载配置文件Resource,
继承ApplicationContextEvent抽象类,实现ApplicationListener接口,配置配置文件。
程序发布Event事件,激活监听事件。
Spring中的Bean
Bean包含的属性
配置文件中的Bean通常会有两个属性
<bean id="" class=""></bean>
**id:**Bean在Spring中的唯一标识。
class: 指定Bean的具体实现类,因为Spring底层是用反射创建的,所以不能是抽象类。
Bean的作用域
- **singleton:**Spring默认作用域,单例模式,在singleton作用域中的Bean只有生成一个对象
- prototype:每次通过getBean获取对象时都会产生一个新的对象。
- request:对于一次HTTP请求,request域中的Bean只会生成一个对象,
- session:对于一次HTTP会话,session域中只生成一个对象,
- global session:每个全局session都会生成一个对象。只在使用portletcontext有效。
0 0
- Spring笔记--ApplicationContext
- [学习笔记] Spring beanfactory applicationcontext
- Spring笔记——Spring容器:ApplicationContext
- 《Pro Spring》学习笔记之ApplicationContext国际化
- Spring笔记(3)-----ApplicationContext相关
- Spring错误笔记--Failed to load ApplicationContext
- 【Spring学习笔记】ApplicationContext Vs WebApplicationContext
- spring学习笔记---------applicationContext.xml 1
- Spring ApplicationContext
- spring ApplicationContext
- Spring ApplicationContext
- spring--ApplicationContext
- 【Spring】ApplicationContext
- Spring-ApplicationContext
- Spring揭秘 学习笔记三 (Spring的IoC容器 ApplicationContext)
- Spring学习笔记之Bean基本管理(BeanFactory,ApplicationContext)
- 《Pro Spring》学习笔记之ApplicationContext的事件机制
- Spring 2.5笔记:applicationContext.xml提示信息的配置
- HDU-2001
- uibarbuttonitem颜色
- git 托管pods
- 3.11 程序改错(二分查找)
- ThinkPHP 中使用 base64_encode 编码后带左斜杠”/“的安全编码方案
- Spring笔记--ApplicationContext
- spark1.6.1入门api实现单词计数
- 时间复杂度O()
- ListView与Adapter
- windows 安装 scrapy、pip、requests
- 中兴历年笔试题自己收藏用04
- windows系统上配置OpenBlas
- STL程序实例
- UESTC 490 Swap Game (特殊的求解逆序对数)