`
默翁1
  • 浏览: 25230 次
社区版块
存档分类
最新评论

ApplicationContext 自定义事件

阅读更多

(1)定义一个Animal类,在该类中定义一个speak方法,然后监视该方法

(2)定义一个AnimalSpeakEvent方法,该方法继承ApplicationEvent,重载其默认的构造方法.当用户调用Animal类中speak方法时触发该事件

(3)写一个监听类AnimalEventListener 实现ApplicationListener,并在配置文件中配置该监听器

public class AnimalSpeakEvent extends ApplicationEvent {

	private static final long serialVersionUID = 1L;
	private String animalName;
	public AnimalSpeakEvent(Object source) {
		super(source);
	}
	
	public AnimalSpeakEvent(Object source,String animalName) {
		super(source);
		this.animalName=animalName;
	}

	public String getAnimalName() {
		return animalName;
	}
}

 

public class AnimalEventListener implements ApplicationListener{

	@Override
	public void onApplicationEvent(ApplicationEvent event) {
		if(event instanceof AnimalSpeakEvent){
			AnimalSpeakEvent a=(AnimalSpeakEvent)event;
			System.out.println(this.getClass().getSimpleName()+"有一个动物在讲话,它的名字是"+a.getAnimalName());
		}
	}

}

 

public class Animal implements ApplicationContextAware{
	private ApplicationContext ac;
	private String name;
	private int age;
	@Override
	public void setApplicationContext(ApplicationContext context)
			throws BeansException {
		this.ac=context;
	}
	public String speak(){
		ac.publishEvent(new AnimalSpeakEvent(this, this.name));
		return ("我的名字是:"+this.name+",我的年龄是:"+this.age);
	}
	public ApplicationContext getAc() {
		return ac;
	}
	public void setAc(ApplicationContext ac) {
		this.ac = ac;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
}

 

public class Test3 {
	public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("config/applicationContext.xml");
		Animal animal=(Animal)context.getBean("animal");
		System.out.println(animal.speak());
	}
}

 

分享到:
评论

相关推荐

    自定义spring控制反转(依赖注入)

    自定义spring实现读取applicationContext.xml并依赖注入,可以参考学习控制反转的原理,非常简单。

    自定义PROXOOL监听器整合SSH框架

    1、proxool官网,下载最新的proxool-0.9.1.jar 2、创建独立的proxool.xml文件,同时存在Web的WEB-INF目录下,根据自己的数据库类型,填写...5、整合Spring和proxool,配置应用上下文配置文件[applicationContext.xml]

    在action以外的地方获取dao

    这种方法通常在写组件时用,比如写个自定义标签,正常的流程,最后都走action,尽量保证每个请求都给一个.do,而不是直接去一个JSP,这样既保证了MVC模式,又防止用户直接记下JSP地址在没有后台准备情况下访问。

    AnyLayer:Android稳定高效的浮层创建管理框架

    简介同时兼容support和androidx链式调用支持自由扩展实现几种常用效果...ApplicationContext中弹出支持拖拽关闭支持不拦截外部事件Popup效果拥有Dialog效果特性支持跟随目标View移动Toast效果支持自定义图标和文字...

    Spring的JDBCTemplate

    当hql等查询方式不能满足性能或灵活性的要求,必须使用SQL时,大家有三... JDBCTemplate的使用很简单,只要在ApplicationContext文件里定义一个jdbcTemplate节点,POJO获得注入后可以直接执行操作,不需要继承什么基类

    springmvc mybatis 自动生成

    此框架可自动生成SpringMvc+mybatis框架结构数据库采用的是mysql用户可以自行更改成自己需要的数据库,使用时将本项目导入myeclipse或eclipse中,更改项目...生成之后注意要修改applicationContext.xml spring-mvc.xml

    获取Spring容器

    在Service端,自定义ApplicationContext,获取Spring容器。从而,通过编码的形式,手动获取注册到容器中的对象。

    fly:根据BEAN、PROPERTIES生成增删改查,可自定义功能。通过权限配置控制表现形式、数据过滤,精确到字段级别

    flylol使用方法:1、clone代码到本地2、使用myeclipse中import--exsit maven project,选择刚才下载到的代码路径3、右击项目名,properties-buildPath...自定义1、用户类、组织类、组织用户关系类 同步主数据系统的数据

    北大青鸟学士后第三单元OA办公自动化管理系统

    (5) src下的applicationContext.xml 和 hibernate.cfg.xml 是hibernate配置信息和Spring的配置分开配置再通过classpath 导入给applicationContext.xml(这两个文件本身已经没使用到了) 项目现在hibernate配置信息都写...

    springboot参考指南

    启动前自定义Environment或ApplicationContext iii. 62.3. 构建ApplicationContext层次结构(添加父或根上下文 iv. 62.4. 创建一个非web(non-web)应用 ii. 63. 属性&配置 i. 63.1. 外部化SpringApplication配置 ...

    spring-test-method

    用于探索每种方法的自定义ApplicationContext的存储库。 参见

    ssh2(struts2+spring2.5+hibernate3.3)自动生成模版

    {自定义的存放包}目录:4个xml文件(applicationContext-dao.xml(dao注入配置),applicationContext-service.xml(service注入配置),action-servlet.xml(action注入配置),struts-{自定义的存放包名}.xml(struts2的...

    SSH代码生成工具 SSH代码生成器

    Spring2.0配置--> applicationContext.xml Hibernate3.2配置--> hibernate.cfg.xml JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的...

    ssh代码生成器轻松、快捷

    Spring2.0配置--> applicationContext.xml Hibernate3.2配置--> hibernate.cfg.xml JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action...

    AutoCode代码生成器(SSH版)

    JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...

    AutoCode代码生成器【SSH版】

    JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...

    spring-cloud-loadbalancer:负载均衡器实现的探索性回购。 现在是spring-cloud-commons的一部分

    Spring Cloud Context为Spring Cloud应用程序的ApplicationContext (引导程序上下文,加密,刷新作用域和环境端点)提供实用程序和特殊服务。 Spring Cloud Commons是在不同Spring Cloud实现中使用的一组抽象和...

    SpringMVC中的RootApplicationContext上下文和WebApplicationContext上下文,通过注解配置SpringMVC的完整解决方案

    注解配置SpringMVC原理简述1. 准备知识1.1 两个应用上下文1.2 ServletContext配置方法(Configuration Methods)1.3 运行时插拔1.4 SpringServletContainerInitializer... SpringMVC配置案例2.1 自定义的Intializer类,

    SpringFXExample

    这是通过在FXMLLoader上设置一个控制器工厂来实现的,该控制器工厂委托给bean工厂:本质上,这只是loader.setControllerFactory(applicationContext::getBean) 。 此外,通过在加载程序上设置自定义生成器工厂,...

Global site tag (gtag.js) - Google Analytics