Spring常用的接口和类(一)

一、ApplicationContextAware接口

当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口。代码展示如下:

public class Animal implements ApplicationContextAware, BeanNameAware{
    private String beanName;
    private ApplicationContext applicationContext;

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

    /**
     * @param applicationContext 该参数将由Spring容器自动赋值
     */
    public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
        this.applicationContext = applicationContext;
    }

    public void run(){
        System.out.println(beanName);

        //发布自定义事件
        AnimalEvent event = new AnimalEvent(this, "老虎");
        applicationContext.publishEvent(event);
    }
}

通过@Autowired注解可以自动装配一些常用对象实例:

@Autowired
private MessageSource messageSource; 

@Autowired
private ResourceLoader resourceLoader; 

@Autowired
private ApplicationContext applicationContext;

二、ApplicationEvent抽象类

当需要创建自定义事件时,可以新建一个继承自ApplicationEvent抽象类的类。代码展示如下:

/**
 * 自定义事件
 */
public class AnimalEvent extends ApplicationEvent {
    private String name;

    public String getName() {
        return name;
    }

    /**
     * @param source 事件源对象
     */
    public AnimalEvent(Object source){
        super(source);
    }

    public AnimalEvent(Object source, String name){
        super(source);
        this.name = name;
    }
}

三、ApplicationListener接口

当需要监听自定义事件时,可以新建一个实现ApplicationListener接口的类,并将该类配置到Spring容器中。代码展示如下:

/**
 * 自定义事件监听器
 */
public class CustomEventListener implements ApplicationListener {
    public void onApplicationEvent(ApplicationEvent event) {
        if(event instanceof AnimalEvent){
            AnimalEvent animalEvent = (AnimalEvent)event;
            System.out.println("触发自定义事件:Animal name is " + animalEvent.getName());
        }
    }
}
<!-- 自定义事件监听器:Spring容器自动注册它 -->
<bean id="customEventListener" class="com.cjm.spring.CustomEventListener"/> 

要发布自定义事件,需要调用ApplicationContext的publishEvent方法,具体用法请看Animal类的源码。

四、BeanNameAware接口

当bean需要获取自身在容器中的id/name时,可以实现BeanNameAware接口。

五、InitializingBean接口

当需要在bean的全部属性设置成功后做些特殊的处理,可以让该bean实现InitializingBean接口。       效果等同于bean的init-method属性的使用或者@PostContsuct注解的使用。       三种方式的执行顺序:先注解,然后执行InitializingBean接口中定义的方法,最后执行init-method属性指定的方法。

六、DisposableBean接口       当需要在bean销毁之前做些特殊的处理,可以让该bean实现DisposableBean接口。       效果等同于bean的destroy-method属性的使用或者@PreDestory注解的使用。       三种方式的执行顺序:先注解,然后执行DisposableBean接口中定义的方法,最后执行destroy-method属性指定的方法

时间: 2024-10-29 03:09:03

Spring常用的接口和类(一)的相关文章

Spring常用的接口和类(二)

七.BeanPostProcessor接口 当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中. 实现BeanPostProcessor接口时,需要实现以下两个方法: postProcessBeforeInitialization 在受管bean的初始化动作之前调用 postProcessAfterInitialization 在受管bean的初始化动作之后调用容器中的每个Bean在创建时都会恰当地调用它们.代码展示如下

Spring常用的接口和类(三)

一.CustomEditorConfigurer类 CustomEditorConfigurer可以读取实现java.beans.PropertyEditor接口的类,将字符串转为指定的类型.更方便的可以使用PropertyEditorSupport.PropertyEditorSupport实现PropertyEditor接口,必须重新定义setAsText. public class Hello { private String message; private User user; pub

Spring 常用的一些工具类

学习Java的人,或者开发很多项目,都需要使用到Spring 这个框架,这个框架对于java程序员来说.学好spring 就不怕找不到工作.我们时常会写一些工具类,但是有些时候 我们不清楚,我们些的工具类,是否稳定,可靠.对于有看spring 源码习惯的人,其实,spring框架本身自带了很多工具类,其实,我有一个想法,就是想把一些常用的方法,从spring 整理整理出来,然后编译成jar包,因为有些时候,项目并不需要引用所有jar包进入的.这边整理了一些spring 常用的类,共大家参照: s

Hibernate常用的接口和类---Session接口☆☆☆☆☆

一.特点 Session是在Hibernate中使用最频繁的接口.也被称之为持久化管理器.它提供了和持久化有关的操作,比如添加.修改.删除.加载和查询实体对象 Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心 Session是线程不安全的 所有持久化对象必须在 session 的管理下才可以进行持久化操作 Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久化操作的数据都缓存在 session 对象处 持久化类与 Sessi

Hibernate常用的接口和类---SessionFactory类和作用

是一个生成Session的工厂类 特点: 1.由Configuration通过加载配置文件创建该对象. SessionFactory factory = config.buildSessionFactory(); 2.SessionFactory对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句.同时,SessionFactory还负责维护Hibernate的二级缓存. 3.一个SessionFactory实例对应一个数据库,应用从该对象获得Session实例. 4.Sessi

servlet学习之servletAPI编程常用的接口和类

ServletConfig接口: SevletConfig接口位于javax.servlet包中,它封装了servlet配置信息,在servlet初始化期间被传递.每一个Servlet都有且只有一个ServletConfig对象. 首先配置信息为: getInitParameter(String name)————此方法返回String类型名称为name的初始化参数值 getInitParameterNames()————获取所有初始化参数名的枚举集合 getServletContext()——

Hibernate常用的接口和类---Configuration类和作用

Configuration作用: 加载Hibernate配置文件,可以获取SessionFactory对象 加载方式: 1.加载配置文件 Configuration configuration = new Configuration(); 2.加载映射文件 使用porperties配置文件的方式 configuration.addResource("cn/itcast/domain/Student.hbm.xml"); 使用XML配置文件的方式 config.configure();

Java常用的接口、类、方法

版权声明:感觉我写的还算不错的的话希望你能够动动你的鼠标和键盘为我点上一个赞或是为我奉献上一个评论,在下感激不尽!_______________________________________________________欢迎转载,希望在你转载的同时,添加原文地址,谢谢配合

Spring常用接口和类

一.ApplicationContextAware接口 当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口.代码展示如下: public class Animal implements ApplicationContextAware, BeanNameAware{ private String beanName; private ApplicationContext applicationContext; public v