Spring Aware 容器感知技术 - 知乎

Spring Aware是什么

Spring提供Aware接口能让Bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源。

Spring Aware的分类

几种常用的Aware接口如下。

更多的可以看它的继承图。

Spring Aware的使用

如要获取容器中的某个Bean,可以继承ApplicationContextAware,让这个Bean拥有调用容器服务的能力。

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class SpringAppContext implements ApplicationContextAware {

    private static ApplicationContext applicationContext = null;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if (SpringAppContext.applicationContext == null) {
            SpringAppContext.applicationContext = applicationContext;
        }
    }

    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);

    }

    public static <T> T getBean(Class<T> clazz) {
        return getApplicationContext().getBean(clazz);
    }

    public static <T> T getBean(String name, Class<T> clazz) {
        return getApplicationContext().getBean(name, clazz);
    }

}

欢迎大家转发到朋友圈,和朋友们一起提升自己。

关注Java技术栈微信公众号,在后台回复:架构,获取栈长整理的架构教程,都是实战干货,以下仅为部分预览。

  • 分布式 ID 生成器的解决方案总结
  • 分布式 Session 共享解决方案
  • 分布式锁与幂等性问题解决方案
  • 微服务架构及分布式事务解决方案
  • 高并发大流量访问处理及解决方案
  • ……

Original url: Access
Created at: 2019-05-28 19:49:56
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论