• spring中bean获取工具


    如何通过非注入方式获取spring bean

    package com.example.helper;
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    import java.util.Collection;
    import java.util.Map;
    /**
     * bean工具
     * @author xiaog
     * @Date 2021-04-06
     */
    @Component
    public class BeanHelper implements ApplicationContextAware {
    
        private static ApplicationContext applicationContext;
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            System.out.println("init applicationContext");
            BeanHelper.applicationContext = applicationContext;
        }
    
        /**
         * 通过beanName返回bean
         * @param beanName
         * @return
         */
        public static Object getBean(String beanName) {
            return applicationContext != null ? applicationContext.getBean(beanName) : null;
        }
    
        /**
         * 通过bean class返回bean
         * @param clazz
         * @param <T>
         * @return
         */
        public static<T> T getBean(Class<T> clazz) {
            return applicationContext != null ? applicationContext.getBean(clazz) : null;
        }
    
        public static <T> T getBean(String beanName, Class<T> clazz) {
            return applicationContext != null ? applicationContext.getBean(beanName,clazz) : null;
        }
    
        public static <T> Collection<T> getBeans(Class<T> clazz) {
            return getBeansMap(clazz).values();
        }
    
        public static <T> Map<String,T> getBeansMap(Class<T> clazz) {
            return applicationContext != null ? applicationContext.getBeansOfType(clazz) : null;
        }
    
    }
    
    不积跬步无以至千里
  • 相关阅读:
    Promise.all和Promise.race区别,和使用场景
    使用Promise解决多层异步调用的简单学习【转】
    前端性能优化-缓存
    Node.js机制及原理理解初步【转】
    微信小程序 canvas 字体自动换行(支持换行符)
    百度地图-鼠标悬停样式
    文件I/O相关函数
    获取系统限制信息
    标准C头文件
    数据库系统小结:(不包括详细知识点,更像一个大纲)
  • 原文地址:https://www.cnblogs.com/xiaogblog/p/15439018.html
Copyright © 2020-2023  润新知