# Classe d'outils de contexte Spring Classe d'outils SpringContextUtils

Classe d'outils de contexte Spring Classe d'outils SpringContextUtils

analyse du problème

Récupérez le Bean assemblé à partir du contexte Spring pour faciliter la configuration des informations sur les ressources dans le fichier de configuration. Lorsqu'une classe implémente ApplicationContextAware, cette classe peut facilement obtenir tous les Beans dans ApplicationContext. L'application est initialisée dans la classe d'implémentation d'ApplicationContextAware, donc l'implémentation de cette classe peut obtenir tous les Beans dans le contexte actuel.

Implémentation de classe d'outils
@Component
public class SpringContextUtils  implements ApplicationContextAware {
    
    

    private static ApplicationContext applicationContext = null;

    private static final Logger logger = LoggerFactory.getLogger(SpringContextUtils.class);

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    
    
        if(Objects.isNull(SpringContextUtils.applicationContext)){
    
    
            logger.info("=====>ApplicationUtils初始化...");
            SpringContextUtils.applicationContext = applicationContext;
        }
        if(Objects.nonNull(SpringContextUtils.applicationContext)){
    
    
            logger.info("=====>ApplicationUtils初始化成功!");
        }
    }

    /**
     * 获得当前的ApplicationContext
     *
     * @author LiDong
     * @date 2020/11/20
     * @param '[]'
     * @return org.springframework.context.ApplicationContext
     */
    public static ApplicationContext getApplicationContext(){
    
    
        return applicationContext;
    }

    /**
     * 根据名称拿到Bean
     *
     * @author LiDong
     * @date 2020/11/20
     * @param '[name]'
     * @return java.lang.Object
     */
    public static Object getBean(String name){
    
    
        return getApplicationContext().getBean(name);
    }

    /**
     * 从ApplicationContext中获得Bean并且转型
     *
     * @author LiDong
     * @date 2020/11/20
     * @param '[tClass]'
     * @return T
     */
    public static <T> T getBean(Class<T> tClass){
    
    
        return getApplicationContext().getBean(tClass);
    }
}
Exemple de test
@RequestMapping("/test4")
public void test4(){
    
    
    try {
    
    
        RedissonClient redissonClient = (RedissonClient) SpringContextUtils.getBean("redissonClient");
        redissonClient.getSet("two").add("two");
    }catch (Exception e){
    
    
        logger.error(e.getMessage(),e);
    }
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_37248504/article/details/109861854
conseillé
Classement