`
hanwei59
  • 浏览: 35666 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring总结实例之消息 事件

    博客分类:
  • Java
阅读更多

    今天看了美河夜色狼族的一集Spring视频,是关于Bean的高级部分:消息和事件。以前看书或看视频,只是看了却没有动手编代码,看后就忘了。

    前几天看到网友总结的自学经验,觉得说得很好,引文:光看别人骑自行车很容易, 那么是不是看了几百遍别人怎么骑自行车你也就马上能骑着走了呢? 不摔跤是不可能学会的。

    还有就是要经常总结:刚才说到会摔跤, 那么这时候就要总结遇到的问题, 这样下次再遇到就不会再去回忆了. 好记性不如烂笔头. 注释, 如果今天不写, 那么以后只会越来越忙, 以后再也没时间写注释了. If you doesn't have time to do it today, then when do you have time to do it tomorrow?

    所以今天就写个Spring的消息和事件实例。

1、JavaBean:User.java

package cn.xy.hw;

/** *//**
 * 
@author hanwei
 *
 
*/

public class User ...{

    
private String name;
    
private int age;

    
public int getAge() ...{
        
return age;
    }

    
public void setAge(int age) ...{
        
this.age = age;
    }

    
public String getName() ...{
        
return name;
    }

    
public void setName(String name) ...{
        
this.name = name;
    }

}

2、用于国际化的两个消息资源文件:xiyou_en_US.properties和xiyou_zh_CN.properties

userlogin user ...{0} login at ...{1}

userlogin 使用者 ...{0} 于 ...{1}登入

自定义下雨的事件:RainEvent.java

package cn.xy.hw;

import org.springframework.context.ApplicationEvent;

/** *//**
 * 
@author hanwei
 *
 
*/

public class RainEvent extends ApplicationEvent ...{

    
public RainEvent(Object arg0) ...{
        
super(arg0);
        System.out.println(
"乌云密布、闪电、打雷,紧接着,下起了瓢泼大雨。");
    }

}

下雨事件监听器:RainListener.java

package cn.xy.hw;

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

/** *//**
 * 
@author hanwei
 *
 
*/

public class RainListener implements ApplicationListener ...{

    
/**//* (non-Javadoc)
     * @see org.springframework.context.ApplicationListener#onApplicationEvent(org.springframework.context.ApplicationEvent)
     
*/

    
public void onApplicationEvent(ApplicationEvent arg0) ...{
        
        
if(arg0 instanceof RainEvent)...{
            System.out.println(
"唐僧大喊:"+arg0.getSource()+"赶快收衣服喽!");
        }


    }


}

配置文件:applicationContext.xml

<!---->xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    
<bean id="user" class="cn.xy.hw.User" abstract="false"
        lazy
-init="default" autowire="default" dependency-check="default">
        
<property name="name">
            
<value>hanweivalue>
        
property>
        
<property name="age">
            
<value>20value>
        
property>
    
bean>

    
<bean id="messageSource"
        
class="org.springframework.context.support.ResourceBundleMessageSource"
        
abstract="false" lazy-init="default" autowire="default"
        dependency
-check="default">
        
<property name="basename" value="xiyou">property>
    
bean>

    
<bean id="listener" class="cn.xy.hw.RainListener" abstract="false"
        lazy
-init="default" autowire="default" dependency-check="default">
    
bean>

beans>

测试类:MianTest.java

package cn.xy.hw;

import java.util.Calendar;
import java.util.Locale;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/** *//**
 * 
@author hanwei
 *
 
*/

public class MianTest ...{

    
public static void main(String[] args) ...{
        
        ApplicationContext context 
= new ClassPathXmlApplicationContext("applicationContext.xml");
        User user 
= (User)context.getBean("user");
        
        Object[] obj
=new Object[]...{user.getName(),Calendar.getInstance().getTime()};
        System.out.println(context.getMessage(
"userlogin",obj
                ,
"找不到指定模块!",Locale.CHINA));
        System.out.println(context.getMessage(
"userlogin",obj
                ,
"找不到指定模块!",Locale.US));
        
        context.publishEvent(
new RainEvent("下雨了!"));
        
    }

}

OK了,这是运行测试类的结果:

使用者 hanwei 于 07-8-26 下午6:14登入
user hanwei login at 
8/26/07 6:14 PM
乌云密布、闪电、打雷,紧接着,下起了瓢泼大雨。
唐僧大喊:下雨了!赶快收衣服喽!
log4j:WARN No appenders could be found 
for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.

 

分享到:
评论
2 楼 hanwei59 2007-08-27  
这有美河的ftp地址,自己下吧。
FTP地址:60.190.223.247
FTP帐号:eimhe.com
FTP密码:原创
ftp://eimhe.com:原创@60.190.223.247/
下的部分目录结构:
├─[美河原创作品]J2EE系列讲座之Hibernate
│hibernate1.rar
│hibernate2.1.rar
│hibernate2.2.rar
│hibernate2.3.rar
├─[美河原创作品]J2EE系列讲座之SPRING
│spring1.rar
│spring2.rar
│spring3.rar
│spring3a.rar
│spring3b.rar
├─[美河原创作品]J2EE系列讲座之SSH
│ssh1.rar
│ssh2.1.rar
│ssh2.2.rar
├─[美河原创作品]J2EE系列讲座之STRUTS
│struts1.rar
│struts2.rar
│struts3.1.rar
│struts3.2.rar
│struts3.rar
│struts4.rar
如:
ftp://eimhe.com:原创@60.190.223.247/[美河原创作品]J2EE系列讲座之SPRING/spring1.rar
1 楼 lizhaosuper 2007-08-27  
可以把讲spring的是视频给共享一下不

相关推荐

    JAVA SPRING 框架实例

    Spring的核心特性之一就是DI,它使得组件间的耦合度大大降低,增强了代码的可测试性和可维护性。 ### 2. 依赖注入(DI) DI是Spring框架的核心,它允许开发者在运行时动态地将对象与它们的依赖关系组合在一起。在...

    Job 基于spring简单实例

    总结,基于Spring的Job简单实例主要涉及Spring的任务调度功能,包括`@Scheduled`注解的使用、`TaskScheduler`接口的实现以及如何在实际项目中部署和管理定时任务。理解这些知识点对于任何希望在Java环境中实现定时...

    Spring MVC框架实例

    **Spring MVC 框架实例详解** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的 Model-View-Controller (MVC) 模型的实现。在基于 Spring 2.5 的项目中,XML 配置是主要的配置方式,相比...

    spring mongodb 用法总结和实例

    在Spring框架中,Spring Data MongoDB是一个强大的库,它简化了与MongoDB数据库的交互。这个库允许开发者通过使用注解和基于Java的配置来处理MongoDB的操作。以下是对标题和描述中提到的知识点的详细说明: 1. **@...

    spring连接数据库实例

    总结来说,这个"spring连接数据库实例"主要涵盖了Spring框架中`DataSource`的配置、`JdbcTemplate`的使用以及事务管理的实现。通过这些知识点,我们可以高效地在Spring应用中实现与数据库的交互,提高开发效率。在...

    spring定时器简单实例

    总结来说,Spring定时器是一个强大的工具,可以轻松地集成到Spring Boot项目中,实现定时任务的执行。通过合理利用cron表达式,可以灵活控制任务的执行时间和频率。在实际开发中,应充分考虑任务的可测试性、异常...

    spring 线程池实例

    总结来说,Spring的线程池通过`TaskExecutor`接口和`ThreadPoolTaskExecutor`类提供了一种强大的工具,帮助开发者高效地管理和执行并发任务。通过合理配置线程池参数,我们可以优化系统的性能,减少线程创建和销毁的...

    shiro整合spring项目实例

    总结,这个"shiro整合spring项目实例"涵盖了Shiro与Spring的整合流程,包括核心组件配置、Realm实现、过滤器链设定、权限管理、Session操作以及测试验证。通过这个实例,开发者能够更好地理解和掌握Shiro在实际项目...

    spring 静态实例化

    Spring框架作为Java领域中最为广泛使用的依赖注入(Dependency Injection, DI)容器之一,其强大的功能不仅体现在对复杂系统的管理上,还包括了许多高级特性,如静态实例化。本文将深入探讨Spring中的静态实例化概念...

    Spring Redis缓存实例

    **Spring Redis 缓存实例详解** 在现代的Web应用程序开发中,缓存是提高系统性能的关键技术之一。Spring框架提供了一种优雅的方式来整合缓存管理,其中包括对Redis的支持。Redis是一个开源的、高性能的键值数据库,...

    Spring 延迟实例化

    Spring的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP),其中依赖注入是实现控制反转(Inversion of Control, IoC)的关键技术之一。Spring框架通过容器...

    spring实例(经典推荐)SpringMVCDemo.rar

    本实例“SpringMVCDemo”深入探讨了Spring MVC模式在实际项目中的应用,旨在帮助开发者更好地理解和掌握Spring的核心概念与技术。SpringMVCDemo是一个典型的Struts、Spring和Hibernate集成的项目,它充分展示了这三...

    spring注解实例

    Spring框架是Java开发中广泛应用的一个轻量级容器,它的核心特性之一就是依赖注入(Dependency Injection,简称DI),而注解注入则是实现DI的一种便捷方式。本文将深入探讨Spring注解注入的相关知识点,以及如何通过...

    JAVA-spring学习资源之spring事件

    总结来说,Spring事件机制为组件间的通信提供了一种灵活的方式,减少了组件之间的耦合。理解和掌握这一特性,将有助于你构建更加健壮、易于维护的Spring应用程序。通过实践和探索"JAVA-spring学习资源之spring事件...

    Spring MVC 实例

    **Spring MVC 框架详解** Spring MVC 是 Spring ...总结,Spring MVC 是一个强大且灵活的 Web 开发框架,提供了丰富的特性来简化 Web 应用的开发。通过深入理解和实践,我们可以利用它的优势构建高效、可扩展的应用。

    JMS整合Spring实例

    **JMS整合Spring实例** ...总结来说,整合JMS与Spring能让你在Java应用中轻松实现异步消息处理,提高系统的可扩展性和容错性。通过Spring的抽象和自动化配置,你可以更加专注于业务逻辑,而不是底层的消息传递细节。

    spring-实例工厂注入

    总结,Spring的实例工厂注入提供了一种灵活的方式来控制对象的创建,尤其是在对象初始化过程复杂或者需要特定处理的情况下。通过自定义工厂类,我们可以将这些细节封装起来,使得Spring容器更专注于管理和协调组件...

    maven+spring简单实例

    总结一下,"maven+spring简单实例"涉及到的关键知识点包括: 1. Maven的项目对象模型(POM)和依赖管理。 2. Maven的构建生命周期和插件配置。 3. Spring框架的依赖注入和面向切面编程。 4. 如何创建Spring配置文件...

    spring完整demo实例

    总结来说,这个"spring完整demo实例"涵盖了Spring框架的多个关键方面,包括依赖注入、面向切面编程、数据访问、Web开发和测试。通过学习和实践这个示例,你可以更好地理解和掌握Spring在实际项目中的应用。记得根据...

    Spring Mvc实例

    总结来说,Spring MVC实例展示了如何通过注解驱动开发实现Web应用的路由控制、数据绑定、视图解析以及数据库操作。这个实例对于理解Spring MVC的工作原理和实际应用是非常有帮助的,也是Java Web开发者必备的技能之...

Global site tag (gtag.js) - Google Analytics